marcomc.macos_filevault2
FileVault2 Ansible Rolle für macOS
Diese Ansible-Rolle implementiert eine Teilmenge von Befehlen, um FileVault2 über fdesetup
auf macOS Version 10.7 oder neuer zu aktivieren
(nur).
Verwendet in Splinter, einem bevorzugten Bereitstellungstool für macOS.
Beispiel Playbook
- vars:
filevault_additional_users_and_passwords:
- { username: "testuser", password: "test_password" }
filevault_certificate: yes
filevault_certificate_file: "/path/to/my/DER.cer"
filevault_showrecoverykey: yes
filevault_user_password: "Passwort des Benutzers, für den FileVault aktiviert wird"
- hosts: localhost
roles:
- marcomc.macos_filevault2
Variablen
Die Teilmenge der aktivieren
Optionen, die implementiert wird:
fdesetup enable
[-outputplist]
[-forcerestart]
[-authrestart]
[-keychain | [-certificate pfad_zur_cer_datei]]
[
[-defer dateipfad]
[-forceatlogin max_stornierungsversuche]
[-dontaskatlogout]
[-showrecoverykey]
]
[-norecoverykey]
[-verbose]
Jede Option wurde auf eine Ansible-Variable abgebildet (und es gibt einige zusätzliche Variablen für mehr Funktionen).
verbose: no
filevault_user: "{{ ansible_user_id }}"
filevault_user_password: "{{ ansible_become_pass }}"
filevault_additional_users_and_passwords: []
# - { username: "testuser6", password: "testest" }
# - { username: "testuser7", password: "testest2" }
filevault_input_plist: '' # nützlich, wenn Sie eine statische plist-Datei bereitstellen möchten
filevault_keychain: no
filevault_keychain_file: no # wird ignoriert, wenn institutional_type 'certificate' ist
filevault_keychain_file_override: no # Überschreibt eine vorhandene Kopie '/Library/Keychains/FileVaultMaster.keychain'
filevault_certificate: no
filevault_certificate_file: "" # wird ignoriert, wenn institutional_type 'keychain' ist
filevault_norecoverykey: no # 'ja' bedeutet, dass nur die FileVaultMaster-Schlüsselbund als Wiederherstellungsschlüssel verwendet wird
# 'nein' wird einen persönlichen Wiederherstellungsschlüssel generieren
filevault_recovery_key_output_file: "~/Desktop/{{ ansible_hostname }}-persönlicher-wiederherstellungsschlüssel.txt" # der Pfad, um den von FileVault2 generierten persönlichen Wiederherstellungsschlüssel zu speichern
filevault_outputplist: no
filevault_defer: no
filevault_defer_file: "/dev/null"
filevault_showrecoverykey: no
filevault_dontaskatlogout: no
filevault_forcerestart: no
filevault_authrestart: no
filevault_forceatlogin: no
filevault_max_cancel_attempts: '-1' # (-1: ignorieren Sie diese Option, 0=nächste Zeit, 9999=nur anfordern, nicht erzwingen).
filevault_forcerestart: no
Sie können Ihre bevorzugte Installationsmethode auswählen, indem Sie die Optionen so umschalten, als ob Sie das Befehlszeilentool direkt verwenden:
# Beispiel: FileVault2 mit einem Zertifikat aktivieren, ohne einen persönlichen Wiederherstellungsschlüssel zu generieren
filevault_user: "{{ ansible_user_id }}"
filevault_user_password: "{{ ansible_become_pass }}"
filevault_additional_users_and_passwords:
- { username: "testuser6", password: "testest" }
filevault_certificate: yes
filevault_certificate_file: "~/Documents/certificate.cer"
filevault_norecoverykey: yes
Das entspricht:
fdesetup enable -certificate ~/Documents/certificate.cer -norecoverykey -inputplist < imput_plist
Eingabeliste
Sie können Ihre eigene Eingabe-plist angeben, um Ihre Installation weiter anzupassen oder wenn Sie einen anderen Prozess benötigen, um eine solche Datei zu generieren.
Wenn Sie Ihre eigene Eingabe-plist nicht angeben (was das Standardverhalten sein soll), wird eine plist dynamisch erstellt, die filevault_user
und filevault_user_password
sowie die Liste der filevault_additional_users_and_passwords
zusammenstellt.
Legen Sie einen institutionellen
Wiederherstellungsschlüssel für Computer in Ihrer Organisation fest
Sie können wählen:
- einen vorgefertigten Schlüsselbund-Wiederherstellungsschlüssel bereitzustellen
- ein DER-Zertifikat bereitstellen, das zu Schlüsselbund als Wiederherstellungsschlüssel hinzugefügt wird und der On-the-fly generiert wird
Zertifikat
Automatisch den institutionellen Wiederherstellungsschlüssel mit der bereitgestellten Zertifikatsdatei erstellen.
Das ist meine bevorzugte Option, da die Vorbereitungsarbeiten minimal sind und das Ergebnis dasselbe wie bei der
Keychain
-Option ist.
Der gemeinsame Name des Zertifikats muss "FileVault Recovery Key" sein.
Sie können ein DER-Zertifikat manuell erstellen:
- Erstellen Sie einen FileVault-Master-Schlüsselbund
- Exportieren Sie NUR das öffentliche Zertifikatelement in FileVaultRecoveryKey.cer.
Alternativ können Sie das splinter-tools/filevault-recovery-key-generator.sh Skript verwenden.
Stellen Sie sicher, dass Sie sowohl den Schlüsselbund als auch sein Passwort an einem sicheren Ort (Bitwarden, LastPass, 1Password) aufbewahren.
Das generierte selbstsignierte Zertifikat wird FileVault Recovery Key (<ihr_hostname?>)
genannt.
Ihr Hostname wird als Zertifikatsbeschreibung festgelegt und kann nicht geändert werden.
Wenn Sie möchten, dass die Beschreibung in Klammern etwas anderes als Ihr Hostname ist, müssen Sie den Schlüsselbund täuschen und vorübergehend Ihren Computernamen auf die gewünschte Zertifikats beschreibung
ändern und dann Ihren Hostname auf den ursprünglichen Wert zurücksetzen.
#!/usr/bin/env bash
# Speichern Sie den ursprünglichen Hostnamen
ORIGINAL_HOSTNAME=$(eval hostname)
# Ändern Sie den Hostnamen in die gewünschte Beschreibung
sudo scutil --set HostName "Institutional"
# Erstellen Sie den Schlüsselbund mit dem Zertifikat
sh filevault-recovery-key-generator.sh FileVaultMaster
# Stellen Sie den ursprünglichen Hostnamen wieder her
sudo scutil --set HostName "${ORIGINAL_HOSTNAME}"
Schlüsselbund
Wenn Sie den institutionellen Wiederherstellungsschlüssel im Schlüsselbund auswählen, stellen Sie sicher, dass Sie zuvor die Schlüsselbund-Datei FileVaultMaster.keychain
erstellen, die Ihren Wiederherstellungsschlüssel enthält, entfernen Sie den privaten Schlüssel und stellen Sie ihn auf Ihrem Computer bereit:
- Erstellen Sie einen FileVault-Master-Schlüsselbund
- Entfernen Sie den privaten Schlüssel aus dem Master-Schlüsselbund
- Stellen Sie den aktualisierten Master-Schlüsselbund auf jedem Mac bereit
Entsperren Sie die Startfestplatte eines Benutzers
Wenn ein Benutzer sein macOS-Benutzerkonto-Passwort vergisst und sich nicht bei seinem Mac anmelden kann, können Sie den privaten Schlüssel verwenden, der in der ursprünglichen FileVaultMaster.key
-Datei enthalten war, um die Festplatte zu entsperren.
Starten Sie von macOS Recovery, indem Sie während des Starts die Tasten Command-R gedrückt halten.
Schließen Sie das externe Laufwerk an, das den
private-recovery-key
oder den ursprünglichenFileVaultMaster.keychain
, der den privaten Schlüssel enthält, enthält.Wählen Sie
Dienstprogramme > Terminal
aus der Menüleiste in macOS Recovery.Entsperren Sie den FileVault-Master-Schlüsselbund.
security unlock-keychain /pfad/zur/FileVaultMaster.keychain
Entsperren Sie die verschlüsselte Startfestplatte.
# APFS-Laufwerke diskutil ap unlockVolume "Name des verschlüsselten Laufwerks" -recoveryKeychain /pfad/zur/FileVaultMaster.keychain # Mac OS Extended (HFS Plus) Laufwerke diskutil cs list # UUID finden diskutil cs unlockVolume {UUID} -recoveryKeychain /pfad/zur/FileVaultMaster.keychain
Lizenz
Autor: Marco Massari Calderone (c) 2020 - marco@marcomc.com
Ansible role to configure FileVault2 on macOS. Also used in Splinter provisioning tool.
ansible-galaxy install marcomc.macos_filevault2