{"id":323,"date":"2025-07-28T20:00:10","date_gmt":"2025-07-29T02:00:10","guid":{"rendered":"https:\/\/rasulnazriev.tech\/?p=323"},"modified":"2025-07-28T20:00:10","modified_gmt":"2025-07-29T02:00:10","slug":"compliance-benchmark-with-jamf","status":"publish","type":"post","link":"https:\/\/rasulnazriev.tech\/?p=323","title":{"rendered":"Compliance Benchmark with Jamf"},"content":{"rendered":"\n<p>As I finished Jamf 100, I started my journey towards Jamf 170 and hopefully Jamf 200 which I am asking my IT job to pay for me.  Before I go to the topic, I would like to briefly recap what I learned in Jamf 100. <\/p>\n\n\n\n<p>The first section was a general and basic overview of macOS and mobile devices such as storage, file system and app management which I mostly knew. The only new thing for me was that there are 5 volumes by default in macOS: data, system, preboot, virtual memory and recovery. The second section moved into introduction to Jamf Pro which I was familiar with from my Computer Support Specialist role as I had to do a lot of tasks with Jamf Pro. I learned that Apple School or Business Manager plays important role in device management. I also learned that Jamf Pro send commands through Apple Push Notification. I got a good glance at automatic enrollment vs user-initiated enrollment. This leads me to section three where I grasped groups, advanced searches and configuration policies while section four focused mainly on policies. The key difference between a policy and configuration profile is that policy uses binary stored on user&#8217;s machine to execute a payload instead of APN (Apple Push Notification). Ok, let&#8217;s get started into Compliance Benchmark for macOS!<\/p>\n\n\n\n<p>Compliance benchmarks are specific recommendation or rules concerning security of a device. In this simple lab, I would like to use Jamf Compliance Editor to import them into Jamf Pro. The compliance pdf is in CIS website ready for download in case I need to review that.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"416\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-1024x416.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-1024x416.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-300x122.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-768x312.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-1536x624.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.11.17-PM-2048x832.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Next, I am going to get Jamf Compliance Editor. Suppose my supervisor said to comply all devices with Level 1 compliance of CIS. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-1024x620.png\" alt=\"\" class=\"wp-image-329\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-1024x620.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-300x182.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-768x465.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-1536x930.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.24.58-PM-1-2048x1240.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And I have got them here<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-1024x619.png\" alt=\"\" class=\"wp-image-331\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-1024x619.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-300x181.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-768x464.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-1536x929.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.32.09-PM-2048x1238.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If I go to password policy, I see<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-1024x620.png\" alt=\"\" class=\"wp-image-332\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-1024x620.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-300x182.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-768x465.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-1536x930.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.40.00-PM-2048x1240.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>There are $ODV which means they are Organizational Defined Values and need to be set by me. Here, I can configure some of the policies <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"1024\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.46.29-PM-717x1024.png\" alt=\"\" class=\"wp-image-333\" style=\"width:310px;height:auto\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.46.29-PM-717x1024.png 717w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.46.29-PM-210x300.png 210w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-8.46.29-PM.png 742w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p>Above I am defining account lockout time to 3 from 5 which was default. Jamf recommends to keep default values perhaps because Level 1 are essential, practical security tips. It makes sense what jamf is telling; however, organization&#8217;s security baseline can differ significantly. In the Jamf Editor, it is possible to include Level 2 security guidelines by clicking &#8220;showing all&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-1024x620.png\" alt=\"\" class=\"wp-image-337\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-1024x620.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-300x182.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-768x465.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-1536x930.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-25-at-9.45.55-PM-2048x1240.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, I can customize benchmark for our organization and get a security guideline from Level 2. After choosing my policies for my organization I create the security baseline. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"479\" src=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM-1024x479.png\" alt=\"\" class=\"wp-image-340\" srcset=\"https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM-1024x479.png 1024w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM-300x140.png 300w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM-768x359.png 768w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM-1536x718.png 1536w, https:\/\/rasulnazriev.tech\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-26-at-4.51.56-PM.png 1848w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>There is a pdf file containing my chosen security rules. To upload this security guideline to Jamf Pro, I simply need to click &#8220;Upload to Jamf Pro&#8221; button. As for other device management solution, I need to do it manually. In Jamf Pro, it would under Computers -&gt; Configuration Files. The scripts are now ready to be scoped and deployed. In Jamf Protect, this would be under Compliance -&gt; Baseline. The access to Jamf Pro and Jamf Protect are given by an employer and are not available for me at the time of writing. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I finished Jamf 100, I started my journey towards Jamf 170 and hopefully Jamf 200 which I am asking my IT job to pay for me. Before I go to the topic, I would like to briefly recap what I learned in Jamf 100. The first section was a general and basic overview of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-323","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/posts\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323"}],"version-history":[{"count":8,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/posts\/323\/revisions"}],"predecessor-version":[{"id":342,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=\/wp\/v2\/posts\/323\/revisions\/342"}],"wp:attachment":[{"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rasulnazriev.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}