marcomc.macos_filevault2

macOSのためのFileVault2 Ansibleロール

このAnsibleロールは、macOS v10.7以降のシステムに存在するfdesetupを通じて、FileVault2をenable(のみ)するためのコマンドのサブセットを実装しています。

Splinter, macOSのための意見のあるプロビジョニングツールで使用されています。

例のプレイブック


- 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: "FileVaultを有効にするユーザーのパスワード"

- hosts: localhost
  roles:
  - marcomc.macos_filevault2

変数

実装されているenableオプションのサブセットは次の通りです。

fdesetup enable
    [-outputplist]
    [-forcerestart]
    [-authrestart]
    [-keychain | [-certificate path_to_cer_file]]
    [
      [-defer file_path]
      [-forceatlogin max_cancel_attempts]
      [-dontaskatlogout]
      [-showrecoverykey]
    ]
    [-norecoverykey]
    [-verbose]

各オプションはansible変数に対応しています(さらにいくつかの追加変数もあります)。

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 }}-personal-recovery-key.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'
filevault_forcerestart: no

コマンドラインツール直接同様にオプションを切り替えることで、好みのインストール方法を取得できます。

入力リスト

自分の入力plistを指定して、インストールをさらにカスタマイズしたり、他のプロセスでそのファイルを生成したりできます。

自分の入力plistを指定しない場合(これはデフォルト動作です)、filevault_userfilevault_user_passwordおよびfilevault_additional_users_and_passwordsのリストを組み合わせて動的にplistが生成されます。

組織内のコンピュータ用に「institutional」リカバリキーを設定する

次のいずれかを選択できます:

  • 事前生成されたキーチェーンリカバリキーをデプロイ
  • キーチェーンに追加されるDER証明書をデプロイ(その場で生成されたリカバリキー)

証明書

提供された証明書ファイルで組織のリカバリキーを自動生成します。

これは、準備作業が最小限で、結果が「キーチェーン」オプションと同じであるため、私のお気に入りのオプションです。

証明書の共通名は「FileVault Recovery Key」である必要があります。

自分でDER証明書を手動で生成できます:

  1. FileVaultマスターキーチェーンの作成
  2. FileVaultRecoveryKey.cerに公開証明書要素のみをエクスポート

または、splinter-tools/filevault-recovery-key-generator.shスクリプトを使用することもできます。

キーチェーンとそのパスワードを安全な場所(Bitwarden、LastPass、1Passwordなど)に保存してください。

生成された自己署名証明書はFileVault Recovery Key (<your_hostname?>)という名前になります。ホスト名は証明書の説明として設定され、変更できません。

説明をホスト名とは異なるものにする必要がある場合、キーチェーンを操作し、コンピュータ名を希望の証明書「説明」に一時的に設定し、その後元の値に戻す必要があります。

#!/usr/bin/env bash

# 元のホスト名を保存
ORIGINAL_HOSTNAME=$(eval hostname)

# 希望の説明にホスト名を変更
sudo scutil --set HostName "Institutional"

# 証明書でキーチェーンを作成
sh filevault-recovery-key-generator.sh FileVaultMaster

# 元のホスト名に戻す
sudo scutil --set HostName "${ORIGINAL_HOSTNAME}"

キーチェーン

キーチェーンのリカバリキーを選択する場合は、事前にリカバリキーを含むFileVaultMaster.keychainファイルを生成し、__秘密鍵を削除__して、マシンにデプロイしてください。

  1. FileVaultマスターキーチェーンの作成
  2. マスターキーチェーンから秘密鍵を削除
  3. 各Macに更新されたマスターキーチェーンをデプロイ

ユーザーの起動ディスクのロック解除

ユーザーがmacOSユーザーアカウントのパスワードを忘れ、Macにログインできない場合、元のFileVaultMaster.keyファイルに含まれる秘密鍵を使用してディスクのロックを解除できます。

  1. Command-Rを押しながら起動してmacOSリカバリを起動します。
  2. private-recovery-keyまたは秘密鍵を含む元のFileVaultMaster.keychainを格納している外部ドライブを接続します。
  3. macOSリカバリのメニューバーから「ユーティリティ」>「ターミナル」を選択します。
  4. FileVaultマスターキーチェーンのロックを解除します。
security unlock-keychain /path/to/FileVaultMaster.keychain
  1. 暗号化された起動ディスクのロックを解除します。
# APFSディスク
diskutil ap unlockVolume "暗号化ドライブの名前" -recoveryKeychain /path/to/FileVaultMaster.keychain

# Mac OS Extended (HFS Plus)ディスク
diskutil cs list # UUIDを見つける
diskutil cs unlockVolume {UUID} -recoveryKeychain /path/to/FileVaultMaster.keychain

ライセンス

MIT

著者 : 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
ライセンス
mit
ダウンロード
117
所有者
Biker, tinkerer, Dev Ops something...