marcomc.macos_filevault2

Build Status

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:

  1. Erstellen Sie einen FileVault-Master-Schlüsselbund
  2. 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:

  1. Erstellen Sie einen FileVault-Master-Schlüsselbund
  2. Entfernen Sie den privaten Schlüssel aus dem Master-Schlüsselbund
  3. 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.

  1. Starten Sie von macOS Recovery, indem Sie während des Starts die Tasten Command-R gedrückt halten.

  2. Schließen Sie das externe Laufwerk an, das den private-recovery-key oder den ursprünglichen FileVaultMaster.keychain, der den privaten Schlüssel enthält, enthält.

  3. Wählen Sie Dienstprogramme > Terminal aus der Menüleiste in macOS Recovery.

  4. Entsperren Sie den FileVault-Master-Schlüsselbund.

     security unlock-keychain /pfad/zur/FileVaultMaster.keychain
    
  5. 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

MIT

Autor: Marco Massari Calderone (c) 2020 - marco@marcomc.com

Über das Projekt

Ansible role to configure FileVault2 on macOS. Also used in Splinter provisioning tool.

Installieren
ansible-galaxy install marcomc.macos_filevault2
GitHub Repository
Lizenz
mit
Downloads
117
Besitzer
Biker, tinkerer, Dev Ops something...