私はRAID-1システム暗号化デバイス(LUKSのLVM)にDebian Linuxシステム(amd64)をインストールし、データ(LUKS、おそらくLVM)を配置する4つ以上のディスクで構成されたRAID-6を持っています。
デフォルトのアイデアは、システム暗号化パーティションのロックを解除し(ローカルで起動したりSSH経由で起動したり)、RAID-6暗号化パーティションのキーファイルを/ etc / crypttabに保存することです。これはセキュリティリスクをもたらしますか?私は...誰もが自分のシステムにローカル/リモートでアクセスできる場合は役に立たず、「root」攻撃(SSHなど)に脆弱なサーバーで実行されるサービスがたくさんあるとします。他のオプションはあります(SSHを介してパーティションのロックを解除することに加えて、たとえばデータパーティションがマウントされる前にバックアップジョブが開始されるため、問題になる可能性があります)。
他のマシンでは、バックアップにLUKS +グレーホール(RAID-6なし)を含む複数のディスクを使用する予定です。同じパスワードを10回入力して10個のディスクをロック解除するのは本当に痛いでしょう.... ..
答え1
/lib/cryptsetup/scripts/decrypt_derived
あるディスクからcrypttab
別のディスクにキーを自動的に使用できます。
このdecrypt_derived
スクリプトは Debian の cryptsetup パッケージの一部です。
sda6cryptからsda5にキーを追加する小さな例:
/lib/cryptsetup/scripts/decrypt_derived sda6crypt > /path/to/mykeyfile
cryptsetup luksAddKey /dev/sda5 /path/to/mykeyfile
ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab
shred -u /path/to/mykeyfile # remove the keyfile
今は実際にファイルを削除するのが非常に難しいので、/path/to/mykeyfileが暗号化されたドライブにあることを確認してください(sda6crypt
私の例では良い解決策になります)。
通常、ユーザー空間ファイルシステム暗号化を使用してこれを実行できますencfs
。
答え2
decrypt_keyctl
次の理由で代わりに使用を検討してください。
- LUKS2互換性。
decrypt_derived
新規インストール時に盲目的に使用しないでください。これにより、以下が発生する可能性があります。静的エラーメッセージこれはキースロットから安全に派生したパスワードに置き換えられます。 - デフォルトでは、パスワードは60秒後に期限切れになります。ルートは常に派生したパスワードを使用できます。
decrypt_derived
キーファイルが提供するほとんどすべての利点があります。欠点は、後でシステムに接続されているディスクでは使用できないことです。
答え3
jofelsの答えに基づいて同じ例がありますが、キーをファイルに保存しません。キーは、ディスクに何も保存しない名前付きパイプに渡されます。
crypttabを使用すると、/lib/cryptsetup/scripts/decrypt_derived
あるディスクのキーを自動的に別のディスクのキーとして使用できます。このdecrypt_derived
スクリプトは Debian の cryptsetup パッケージの一部です。
変更された例では、sda6cryptのキーをsda5に追加します。
mkfifo fifo
/lib/cryptsetup/scripts/decrypt_derived sda6crypt > fifo &
cryptsetup luksAddKey /dev/sda5 fifo
rm fifo
ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,initramfs,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab
このkeyscript
オプションは、crypttab
Debianの元のcryptsetupツールで処理する場合にのみ機能し、systemdの再実装では現在これをサポートしていません。システムがsystemd(ほとんどのシステム)を使用している場合は、initramfs
systemdが起動する前にcryptsetupツールを介してinitrdで強制的に処理するように選択する必要があります。