Debian ベースのオペレーティングシステムで暗号化パスワードの 2 回のプロンプトが表示されないようにする

Debian ベースのオペレーティングシステムで暗号化パスワードの 2 回のプロンプトが表示されないようにする

私の友人は、完全に暗号化されたディスク(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.confFILES配列にキーを含めるように編集します。

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/bootVGname-LVnameVGnamepvs/dev/mapper/sdX_crypt

フックスクリプトが実行されますupdate-initramfs。ここから情報を取得し、/etc/crypttabキーファイルと必要なスクリプトを自動的に追加してinitramfsに使用します。

起動オプションを追加する必要はありません。自動的に生成されたinitramfsスクリプトに必要なすべてのパラメータが含まれています。

これコメントに投稿したリンクもちろん動作しますが、実際に使用する必要があります。crypttab(5)ディストリビューションのマニュアルページ最も正確な情報を得ることができます。

/etc/mykeyfile保護レベルを〜以下に設定することをお勧めしchmod 600ます。設定が役に立つかどうかはわかりませんが、chmod 000試してみることができます。最悪の場合は、次回の起動時に暗号化パスワードを2回入力し、権限を再調整してやり直してupdate-initramfs -u -k allください。

関連情報