Managing macOS Profiles with Configuration Management in 2020

macOS 11 has brought two, small on their own, but significant changes to how we are able to manage macOS. Today we’ll talk about the first: Profiles. Background Back in macOS 10.11 El Capitan, Apple introduced System Integrity Protection. This was the first time the root user wasn’t able to do whatever it wanted on macOS - certain files and directories could only be modified by Apple blessed methods (or by disabling or bypassing the protection, but I digress). ...

July 16, 2020

Go for endpoint management

For Mac admins using Python to perform scripting duties, the impending departure of Python 2 from the default install of macOS should be encouraging them to look at alternatives. One option that is probably the easiest, is shipping your own installation of Python 3. This however isn’t without it’s drawbacks. You need to deploy and maintain an entire Python 3 runtime. Tools such as Greg Neagle’s Relocatable Python have made this easier, but it still remains a dependency for any tool you write. Shell and zsh are options for very basic scripts. What about for scripts that need a more advanced language? ...

June 1, 2020

My Perfect VS Code Setup

The role of the traditional Systems Administrator is slowly but surely dying. Clicking on buttons in GUI’s is making way for configuration as code. As such, you text editor is more important than ever. I’ve had several discussions about various setups, so here is mine. For conxtext on my choices, my day to day activities in a text editor are mainly: Terraform Python Puppet Go Configuration file editing (yaml, json etc) Preamble There are a few things that need to be installed before VS Code is functional for me. Firstly, you obviously need VS Code. I also need the following: ...

May 28, 2020

Restricting access to the Crypt GUI in AWS

Crypt is a client secret escrow tool (primarily FileVault, but other secret types too). Because it holds secrets, it is common to want to restrict access to retrieving secrets to certain locations. If you are running one node, you can simply add something like the following to your Nginx configuration: upstream crypt { server 127.0.0.1:8000 fail_timeout=0; } server { listen 443 ssl ; server_name crypt.company.com; expires 1h; ssl on; ssl_certificate /etc/nginx/ssl/crypt.company.com.pem; ssl_certificate_key /etc/nginx/ssl/crypt.company.com.key; add_header X-Frame-Options "SAMEORIGIN"; access_log /var/log/nginx/crypt.access.log; location ~ ^/(checkin) { proxy_pass http://crypt; # your proxy settings here } location / { proxy_redirect http:// https://; proxy_pass http://crypt; # your proxy settings here allow 10.0.0.0/8; # Office network allow 172.16.0.0/12; #VPC deny all; } } The above will allow everyone access to the /checkin endpoint (so keys continue to be escrowed), but restrict any other page to the subnets listed. ...

January 13, 2020

Introducing MDMDirector

At work, we’re great fans of MicroMDM. It’s lightweight, it’s all driven via an API so we can configure it with code - it has nearly everything we want. But unfortunately, it doesn’t have everything - as Groob himself says, “it’s not a product” - this means it purposely doesn’t include some of the things you may need from an MDM. This is where MDMDirector comes in. MDMDirector is able to receive the data from MicroMDM from it’s webhook feature and then take action based on the data it receives. Perhaps you need to ensure a profile is of a certain version on all of your devices? MDMDirector has you covered. What about via a REST API? We definitely do that too. Would you like to retrieve SecurityInfo or CertificateList from the machines regularly? Yep, can do that as well. ...

December 19, 2019

Here's the deal

Up until now Movember has been pretty light hearted - I’m guessing this is why a lot of you haven’t donated yet. Time for some numbers. Testicular cancer is the most common cancer in young men, with nearly 700,000 people getting it each year. There is a 50% chance that I will get testicular cancer again. If my cancer does come back, there is 5-10% chance it will kill me. ...

November 27, 2019

Imaging is dead (RIP Imagr)

When I released Imagr back in 2015, it was a different time. We didn’t have T2 Macs, NetBoot was still around and DEP was just something most of us scoffed at using. In 2019, things have changed. MDM is no longer optional. DEP is the only automated method to deploy modern macOS devices. The NetBoot ship has well and truly sailed. No devices have been “imaged” in my organization for around two years. ...

September 20, 2019

MacAD.UK 2019 Resources

The links to all of the code used in my talk at MacAD.UK are below. Movember Movember on Facebook London Apple Admins @ Jigsaw 24 grahamgilbert/macaduck19-supershell grahamgilbert/macaduck19-powerfulpython grahamgilbert/macaduck19-autopkg_overrides grahamgilbert/macaduck19-munki_repo

March 27, 2019

MacAD.UK 2019

MacAD.UK is just a few weeks away, and I’m rather excited about the whole thing. I will be speaking on the second day about Practical CI/CD workflows for Mac Admins - a topic that I’ve wanted to speak about for quite some time. And of course I am hoping we will all be able to go for the now traditional curry one evening (I’m sure we can all agree, curry is the height of British cuisine).

March 4, 2019

Movember

Earlier this year I was diagnosed with testicular cancer. I’m one of the lucky ones, I caught it early, was fortunate enough to have excellent treatment and am now in remission. Testicular cancer is the most common form of cancer in men under 40 years old - chances are either you will get it or you will know someone who will. This year, I’m raising money for Movember. I’ve already raised an amazing amount mostly due to the generosity of the Apple admin community. I’ve had to raise my target several times until I went big and set it at $10,000. I blasted though that before November even started, so thank you to everyone who donated! ...

November 1, 2018