web-dev-qa-db-ja.com

Systemd:LUKSパスフレーズをUSBからロードしてキーボードにフォールバックする方法

USBドライブを使用するか、キーボードからパスフレーズを入力してディスクのロックを解除できる、フルディスク暗号化を備えたヘッドレスGNU/Linux(Ubuntu 20.04)PCをセットアップしたいと思います。私の出発点は、インストーラーの基本的なフルディスク暗号化オプションを使用したフレッシュインストールです。これは、/ boot以外のすべてをLUKS暗号化論理ボリュームグループとして管理し、キーボードオプションを提供します。

ディスクのロックを解除するパスフレーズを含む小さなUSBスティックを用意できれば理想的です。これはサーバーにとって便利なだけでなく(USBスティックをサーバーに残しておくことができます-機密データを気にすることなく壊れたハードディスクを返却できるようにすることが目標です)、それは私のラップトップにとっても素晴らしいでしょう:起動時にUSBスティックを使用し、暗号ディスクのロックを解除してから取り外します。 USBディスクが壊れた場合は、キーボードを使用してください。

これは、systemdを実行するシステムで機能する方法で実行できますか?

(そして、この質問がおなじみのようである場合、それは次の原因によるものです https://stackoverflow.com/a/23451824/363028 -これは問題を解決しましたが、systemdと互換性がありません。)

背景

システム化されていないシステムでは、このパッチを使用します https://gitlab.com/ole.tange/tangetools/tree/master/decrypt-root-with-usb

すべてのデバイスのルートディレクトリで「cryptkey.txt」ファイルを検索し、各行をキーとして復号化を試みます。それが失敗した場合:パスフレーズの入力に戻ります。

そしてそれは私が望むように正確に機能しますが、systemdはこれを壊しますので、これを(少なくとも直接は)使用することはできません。

4
Ole Tange

実際のブートプロセスをより深く掘り下げるには、systemdも必要ありませんが、いくつかの変更を加えるだけでパッチを使用できます。したがって、ここにUbuntu 20.04 LTSの更新バージョンがあります。 https://gitlab.com/ole.tange/tangetools/-/tree/master/decrypt-root-with-usb/ubuntu-20.04

0
Ole Tange