marcomc.macos_filevault2

Status budowy

Rola Ansible dla FileVault2 na macOS

Ta rola Ansible implementuje zestaw poleceń do włączenia (tylko) FileVault2 za pomocą fdesetup dostępnego w systemach macOS wersja 10.7 lub nowszych.

Jest używana w Splinter, narzędziu do provisioning opartym na opiniach dla macOS.

Przykład Playbooka


    - vars:
        filevault_additional_users_and_passwords:
        - { username: "testuser", password: "test_password" }
        filevault_certificate: yes
        filevault_certificate_file: "/ścieżka/do/mojego/DER.cer"
        filevault_showrecoverykey: yes
        filevault_user_password: "hasło użytkownika, dla którego aktywujesz FileVault"

    - hosts: localhost
      roles:
      - marcomc.macos_filevault2

Zmienne

Zestaw opcji włączenia jest:

     fdesetup enable
        [-outputplist]
        [-forcerestart]
        [-authrestart]
        [-keychain | [-certificate path_do_pliku_cer]]
        [
          [-defer file_path]
          [-forceatlogin maksymalna_ilość_prób_anulowania]
          [-dontaskatlogout]
          [-showrecoverykey]
        ]
        [-norecoverykey]
        [-verbose]

Każda opcja została odwzorowana na zmienną ansible (a następnie są kilka dodatkowych zmiennych dla dodatkowych funkcji):

    verbose: no
    filevault_user: "{{ ansible_user_id }}"
    filevault_user_password: "{{ ansible_become_pass }}"
    filevault_additional_users_and_passwords: []
    filevault_input_plist: ''                 
    filevault_keychain: no
    filevault_keychain_file: no               
    filevault_keychain_file_override: no      
    filevault_certificate: no
    filevault_certificate_file: ""            
    filevault_norecoverykey: no               
    filevault_recovery_key_output_file: "~/Desktop/{{ ansible_hostname }}-klucz-odzyskiwania.txt" 
    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' 

Możesz uzyskać preferowaną metodę instalacji, przełączając opcje, tak jakbyś używał narzędzia wiersza poleceń:

    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

co odpowiada:

    fdesetup enable -certificate ~/Documents/certificate.cer -norecoverykey -inputplist < input_plist

Lista wejściowa

Możesz określić własny plik plist, aby dostosować swoją instalację lub jeśli potrzebujesz innego procesu do jego wygenerowania.

Jeśli nie określisz własnego pliku plist (co jest domyślnym zachowaniem), plik plist zostanie wygenerowany dynamicznie, łącząc filevault_user i filevault_user_password, oraz listę filevault_additional_users_and_passwords.

Ustawienie klucza odzyskiwania instytucjonalnego dla komputerów w twojej organizacji

Możesz wybrać:

  • wdrożenie uprzednio wygenerowanego klucza odzyskiwania Keychain
  • wdrożenie certyfikatu DER, który zostanie dodany do Keychain z kluczem odzyskiwania generowanym na bieżąco

Certyfikat

Automatycznie stwórz instytucjonalny klucz odzyskiwania z dostarczonym plikiem certyfikatu.

To moja ulubiona opcja, ponieważ przygotowanie jest minimalne, a wynik jest taki sam jak w opcji Keychain.

Wspólna nazwa certyfikatu musi brzmieć "FileVault Recovery Key".

Możesz ręcznie wygenerować certyfikat DER:

  1. Utwórz klucz główny FileVault
  2. wyeksportuj tylko publiczny element certyfikatu do FileVaultRecoveryKey.cer

Alternatywnie możesz użyć skryptu splinter-tools/filevault-recovery-key-generator.sh.

Upewnij się, że obie, zarówno klucz, jak i jego hasło, są przechowywane w bezpiecznym miejscu (Bitwarden, LastPass, 1Password).

Wygenerowany certyfikat samopodpisany będzie nosił nazwę FileVault Recovery Key (<twoja_nazwa_hosta>). Nazwa hosta jest ustawiana jako opis certyfikatu i nie można jej zmienić.

Jeśli chcesz, aby opis w nawiasach był inny niż twoja nazwa hosta, musisz oszukać Keychain i tymczasowo ustawić nazwę swojego komputera na pożądany opis, a następnie przywrócić pierwotną wartość.

Keychain

Jeśli wybierzesz instytucjonalny klucz odzyskiwania Keychain, upewnij się, że wcześniej wygenerowałeś plik klucza FileVaultMaster.keychain zawierający twój klucz odzyskiwania, usuń klucz prywatny i wdroż go na swoim komputerze:

  1. Utwórz klucz główny FileVault
  2. Usuń klucz prywatny z klucza głównego
  3. Wdroż zaktualizowany klucz główny na każdym Macu

Odblokowanie dysku startowego użytkownika

Jeśli użytkownik zapomni hasła do swojego konta macOS i nie może zalogować się do swojego Maca, możesz użyć klucza prywatnego, który zawierał oryginalny plik FileVaultMaster.key, aby odblokować dysk.

  1. Uruchom z macOS Recovery, przytrzymując Command-R podczas uruchamiania.

  2. Podłącz zewnętrzny dysk zawierający private-recovery-key lub oryginalny FileVaultMaster.keychain, który zawiera klucz prywatny.

  3. Wybierz Narzędzia > Terminal w pasku menu w macOS Recovery.

  4. odblokuj klucz główny FileVault

    security unlock-keychain /ścieżka/do/FileVaultMaster.keychain
    
  5. Odblokuj zaszyfrowany dysk startowy

    # Dyski APFS
    diskutil ap unlockVolume "Nazwa szyfrowanego dysku" -recoveryKeychain /ścieżka/do/FileVaultMaster.keychain
    
    # Dyski Mac OS Extended (HFS Plus)
    diskutil cs list # znajdź UUID
    diskutil cs unlockVolume {UUID} -recoveryKeychain /ścieżka/do/FileVaultMaster.keychain
    

Licencja

MIT

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

O projekcie

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

Zainstaluj
ansible-galaxy install marcomc.macos_filevault2
Licencja
mit
Pobrania
117
Właściciel
Biker, tinkerer, Dev Ops something...