私の友人は、完全に暗号化されたディスク(LVMを使用する/と同じパーティションに/ bootを含む)でsystemdなしでDebianを実行しています。起動時に暗号化パスワードの入力を求めるメッセージが 2 回表示されます。一度は grub 用、一度はカーネル用です。目標は、彼女に一度だけメッセージを表示することです。
私が一つ見つけたこのガイドArchベースのGNU / Linuxの場合、この問題を解決すると主張します。ただし、パッケージの少なくとも1つがわずかに異なるため、DebianベースのGNU / Linuxでは機能しません。このガイドの第11章では、ドライブのロックが解除された後にカーネルで使用できるキーファイルを作成する方法について説明します。これにより、ユーザーにメッセージが一度表示されます。この手順をDebianベースのディストリビューションに変換するにはどうすればよいですか?手順は次のとおりです。
ガイド
起動し、root またはユーザーとしてログインします。次に、キーファイルを生成します。
# dd bs=512 count=4 if=/dev/urandom of=/etc/mykeyfile iflag=fullblock
LUKSボリュームに挿入します。
# cryptsetup luksAddKey /dev/sdX /etc/mykeyfile
...メッセージが表示されたら、LUKSパスワードを入力してください。/etc/mkinitcpio.conf
FILES配列にキーを含めるように編集します。
FILES="/etc/mykeyfile"
initramfs イメージを最初から作成します。
# mkinitcpio -p linux-libre
# mkinitcpio -p linux-libre-lts
# mkinitcpio -p linux-libre-hardened
grub.cfgのカーネル(Linux)行に以下を追加します。今何をすべきか分かります。上を見てください! --たとえば、root=/dev/matrix/rootvol
このガイドに従う場合:
# cryptkey=rootfs:/etc/mykeyfile
最後に、rootユーザーでもキーファイルへの読み取りアクセスを拒否します。
# chmod 000 /etc/mykeyfile
答え1
少なくともDebian 11では、cryptsetup-initramfs
パッケージがインストールされている場合、スクリプトはファイルを/usr/share/initramfs-tools/hooks/cryptroot
解析し、スクリプトを/etc/crypttab
正しく読み取ると、ルートファイルシステムがコンテナのキーファイルにロック解除する必要がある暗号化されているかどうかが自動的に検出されます。キーファイルは initramfs に自動的に含まれます。
そのため、このステップ以降の Debian 11 の同じステップは、パッケージがインストールされていることをcryptsetup luksAddKey
確認し、ルート以外のファイルシステムに LUKS コンテナを設定するのと同じように、ルートファイルシステムの行にキーファイル定義を追加することです。cryptroot-initramfs
/etc/crypttab
例と同じ名前を使用すると、次の行にcrypttab
なります。
sdX_crypt /dev/sdX /etc/mykeyfile luks
または、堅牢性のためにLUKSボリュームのUUIDを使用する必要があります。
sdX_crypt UUID=... /etc/mykeyfile luks
それからupdate-initramfs -u -k all
。
sdX_crypt
暗号化がロック解除されたときに暗号化されたコンテンツにアクセスするために使用されるマッピングされたデバイスの名前。 Debian インストーラは、暗号化されたデバイスのデフォルト名にサフィックスを追加してマッピングされたデバイス名を生成しますが、_crypt
カスタマイズすることもできます。
友達はLVMを使用しているため、ルートとファイルシステムのLVMデバイス列を実行してlsblk
確認する必要があります。これらの名前は形式です。このセクションが必要な次のルートとして実行し、指定されたVGを含むPVの名前を見つけます。それは同様のものでなければなりません。NAME
/boot
VGname-LVname
VGname
pvs
/dev/mapper/sdX_crypt
フックスクリプトが実行されますupdate-initramfs
。ここから情報を取得し、/etc/crypttab
キーファイルと必要なスクリプトを自動的に追加してinitramfsに使用します。
起動オプションを追加する必要はありません。自動的に生成されたinitramfsスクリプトに必要なすべてのパラメータが含まれています。
これコメントに投稿したリンクもちろん動作しますが、実際に使用する必要があります。crypttab(5)
ディストリビューションのマニュアルページ最も正確な情報を得ることができます。
/etc/mykeyfile
保護レベルを〜以下に設定することをお勧めしchmod 600
ます。設定が役に立つかどうかはわかりませんが、chmod 000
試してみることができます。最悪の場合は、次回の起動時に暗号化パスワードを2回入力し、権限を再調整してやり直してupdate-initramfs -u -k all
ください。