web-dev-qa-db-ja.com

luks上のlvmを使用したUefiおよびフルディスク暗号化

古いBIOSと新しいUEFIのどちらかを選択できるASUSマシンを持っています。私は常に古いBIOSシステムを使用しており、次の構成で完全に暗号化されたDebianを実行しています。

  1. /bootにマウントされた暗号化されていないブートパーティション

  2. LUKSで暗号化され、その上にすべてのLVM論理ボリューム(/、swap、/home)がある残りのすべてのスペース。

すべてがうまく機能し、問題はありません。しかし、UEFIを使用して最初から新しいインストールを作成したい場合(変換したくない場合)、/boot/efiにマウントされたFAT32EFIパーティションを作成する必要がありますが、暗号化されていないものが必要ですか? /bootパーティション、それともEFIパーティションだけで、残りはすべて暗号化されていますか?

言い換えれば、どの構成が正しいでしょうか?

  • /boot/efi
  • /boot
  • 暗号化されたLUKSボリューム

または

  • /boot/efi
  • 暗号化されたLUKSボリューム?
4
Egidio Docile

ええ、私はそれがかなり遅い答えであることを知っていますが、決して遅くなるよりはましです...

Debianにそれを行うためのツールがあるかどうかはわかりませんが、Arch Linuxを使用すると、次のようにできます ディスクレイアウトを作成

  • EFIパーティション(マウントされた/boot/efi)と grub EFIブートローダー 、フォーマットされたfat32EFIタイプのパーティションEF00。あなたの/dev/sda1かもしれません。このパーティションは、ブートパーティションをマウントするためのパスワードを要求するために、grubスタブのみを保持します。
  • luks暗号化デバイスであるブートパーティション(マウントされた/boot)。このパーティションを暗号でロック解除した後、grubがサポートしている任意のファイルシステム(ext4など)を使用してフォーマットできます。これがあなたの/dev/sda2になります
  • 残りのすべてのパーティションを論理ボリュームとして格納する暗号化デバイス。 LVMとその論理ボリューム(3層)を備えた暗号化デバイス。これがあなたの/dev/sda3。になります
    • ここでは、必要な数の論理ボリュームを作成できます。このパーティションのロックを解除するキーは、すべての論理ボリューム上のデータにアクセスするために使用されます。

Arch Wikiから借用すると、ディスクレイアウトは次のようになります。

+---------------+----------------+----------------+----------------+----------------+
|ESP partition: |Boot partition: |Volume 1:       |Volume 2:       |Volume 3:       |
|               |                |                |                |                |
|/boot/efi      |/boot           |root            |swap            |home            |
|               |                |                |                |                |
|               |                |/dev/store/root |/dev/store/swap |/dev/store/home |
|/dev/sdaX      |/dev/sdaY       +----------------+----------------+----------------+
|unencrypted    |LUKS encrypted  |/dev/sdaZ encrypted using LVM on LUKS             |
+---------------+----------------+--------------------------------------------------+ 

警告

  • Grubは/bootのロックを解除するためのパスワードを要求し、最初のramディスクは再びパスワードを要求します(彼の場合、/bootはロックされています)。おそらく、rootパーティションのマウント中にこれがもう一度発生します。ここでの秘訣は、 マスターキーを内部に/boot(およびinitrd内でmkinitcpioFILES=オプションを使用して、luksAddKeyを追加することです。ブートパーティションは暗号化されています)したがって、キーが暗号化されたパーティション内にあるため、心配する必要はありません。chmod 000 keyfile.binはあなたの友達です。
  • encrypt lvm2mkinitcpioフックに追加します。
  • 何らかの理由でシステムがキーを使用できない場合は、パスワードが再度要求されます。
  • あなたはまだ 悪意あるメイド 探索する攻撃 コールドブート 失敗に対して脆弱です。ここでできる最善のことは:
    • セキュアブートを有効にします。
    • GrubEFIに署名します。
    • マザーボードでMicrosoftCAを取り消します(誰も信用できません)。
    • grub-efiパッケージの更新があるときはいつでも、grubefiに署名することを忘れないでください。

参考資料:

ブートパーティションをlvmの外部に保持する必要性について調査した後(私が知る限り、grub-pc/biosにはlvmモジュールとluksモジュールがありました)、Arch Forumsで この男 必要がないことを確認しました/bootを予備の暗号パーティションに保持します。

ESPにgrubをインストールし、espから構成ファイルを読み取るように指示することもできます このように

# grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=grub --boot-directory=esp

その後、confを再生成します。

# grub-mkconfig -o esp/grub/grub.cfg

そして、grubは、分離された/ bootパーティションなしでlvm + cryptoを起動することをサポートしている唯一のブートローダーのようです。

2
user210242