私はブートパーティション(暗号化パーティション)に格納されているキーファイルを使用してDebianのルートディレクトリの復号化を試みます。これはセキュリティを侵害しますが、今は大丈夫です。私はこれをうまくやらなかったら死ななければなりませんでした。
フックが作成され、initramfs
キーファイルはファイル/boot
内のディレクトリにありますinitrd.img-*
。キーファイルのパス()はこのファイル/boot/keyfile
にあります。/etc/crypttab
更新しましたが、次のメッセージが表示されますinitramfs
。sudo update-initramfs -u
cryptsetup: WARNING: target sdaX_crypt uses a key file, skipped.
このメッセージを無視して再起動すると、ディスクを起動できなくなります。このメッセージが表示され、シェルGave up waiting for root device.
に削除されます。initramfs
initramfs
環境には存在しませんcryptsetup
。(存在すべきでしょうか?)
デバイスが異なる方法でマウントされ、キーファイルの復号化を使用するように設定されていないupdate-initramfs -u
「考え方」を参照してください。sdaX_crypt
どうすればいいですか?
答え1
Debianのcryptsetupドキュメントによると、KEYFILE_PATTERNで定義されているシェルスタイル(ワイルドカード)パターンと一致するキーファイルは/etc/cryptsetup-initramfs/conf-hook
initramfsに含まれていますが、他のキーファイルは含まれていません。
- Debian 9 の場合:
/usr/share/doc/cryptsetup/README.{initramfs,Debian}.gz
- Debian 10 の場合
/usr/share/doc/cryptsetup{-initramfs/README.initramfs,-run/README.Debian}.gz
:.
以前のバージョンのDebianについてはよくわかりません。
これらのファイルはで読むことができますが、zless filename.gz
便宜と将来の参照のために関連する部分は次のとおりです。
12. initrd に直接キーファイルを保存します。
通常、キーファイルを使用するデバイスは無視され(大きなビープ音とともに)、initramfsイメージは通常暗号化されていない/ bootパーティションにあるため、キーファイル自体はinitrdに含まれません。ただし、場合によっては、initrdにキーファイルを含める必要があります。たとえば、最新バージョンのGRUBは暗号化されたブロックデバイスからの起動をサポートし、暗号化された/bootパーティションを許可します。
crypttab(5)によってリストされたキーファイルのうち、環境変数KEYFILE_PATTERN(シェルモードとして解釈されます)の値と一致するファイルは、initramfsイメージに含まれています。たとえば、/etc/crypttab に 2 つのキーファイル /etc/keys/{root,swap}.key がリストされている場合は、/etc/cryptsetup-initramfs/conf-hook に以下を追加して initrd に追加できます。 。
KEYFILE_PATTERN="/etc/keys/*.key"
また、initramfs イメージに秘密鍵データを含める必要がある場合は、権限のないユーザーをブロックするには、制限付き umask を使用してイメージを作成する必要があります。これは、/etc/initramfs-tools/initramfs.conf に以下を追加することで実現できます。
ウマスク=0077
答え2
keyscript
代わりに、crypttabのオプションを使用できます(man crypttab)。キースクリプトを反映するスクリプトを生成し、それをキースクリプトパラメータに設定してramfsを再生成します。フックは必要なく、/boot/にスクリプトを置く必要もありません。
vg1-root_crypt UUID=94a3b301-123-12-a3-ea0403 none luks,keyscript=/etc/echo-root-luks-pass
私はcryptsetupのinitramfsフックがなぜcrypttabにキーファイルをリストできないのかわかりません。そのような行動を容認したくないかもしれません。
PS私はそれがセキュリティを破るとは思わない。 / bootパーティションがどれだけ安全かによって、セキュリティはやや弱くなります。たとえば、USBドライブの電源を切り、USBを靴下などに入れることができます。
答え3
実際にメッセージを無視してパーティションをスキップしたくない場合は、エラーメッセージが書き込まれた行(約274行 - 使用されているcryptsetupバージョンによって異なります)の後に続くreturn 1
内容をコメントアウト/削除する必要があります(少なくとも)。/usr/share/initramfs-tools/hooks/cryptroot
このファイルはデフォルトでパッケージマネージャによって管理されているため、cryptsetupパッケージの更新時に上書きされます。
また読んでくださいhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776409 この問題に関する追加情報。
私はこれをまだテストしておらず、言及されたキーファイルの場合を考慮していない以外に他の理由があるかもしれません。
答え4
initramfs
@ignisの回答に同意しますが、機能するにはファイルに次のオプションが必要であることを追加したいと思います/etc/crypttab
。
# <target name> <source device> <key file> <options>
mapper-name /etc/disk/by-id/scsi_xxxxx /etc/keys/luks.key luks,initramfs
Obs:答えについて言及しているはずですが、まだ評判が足りません。