swapのパスワードを要求するcrypttabを停止する


10

リリース時に新しい11.04システムをインストールし、LUKSでフルディスク暗号化をセットアップしました。最初に、暗号化された3つのパーティションのパスワードを要求されました。

/
/home
swap

パスフレーズを3回入力するとイライラしました。/homeとswapをセットアップして、/に保存されているキーファイルから復号化しようとしました。キーファイルを作成し、2つのパーティションで有効にしました。私のcrypttabは次のようになります。

root-root_crypt UUID=13c21bf6-4d92-42a7-877a-87cc31b1aa19 none luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 /root/keyfile luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 none luks
sda3_crypt UUID=e4677895-2114-4054-9f23-d36f6bb0e6a2 /root/keyfile luks,swap

これは、パスワードを要求せずに自動的にマウントされる/ homeで正常に機能します。しかし、cryptsetupは依然としてスワップ空間のパスワードを要求します。スワップスペースにnoautoを追加して、まったくセットアップされないようにしました-システムが起動したら、パスフレーズなしでそれを有効にできるので、実行するために遅延初期化スクリプトを追加するだけだと思いましたそれでも、noauto cryptsetupを使用しても、パスフレーズの入力を求められます。

ありがとう!


4
このため、複数のパーティションがある場合は、LVM + LUKSを使用することをお勧めします。Crypsetupは、LVMレイヤーの上または下(上->ファイルシステム、下->ディスク)で使用できます。LVMの下でcryptsetupを使用すると、暗号化されたパーティションが1つだけ(LVMパーティション)必要になるという利点があります。
Lekensteyn、2011年

回答:


10

同じ質問を持っていた、これは私がubuntu 12.04.1と12.10でどのようにしたかです、

-開始する前に、バックアップがあることと、ubuntu cdまたはusbを使用してシステムを起動できることを確認してください。間違えたように、システムが起動しなくなったり、データが失われたりする可能性があります。LUKSを含む暗号化されたubuntuシステムがあり、LUKS内にSYSTEM-BOOT(暗号化されていない)、SYSTEM-SWAP(暗号化された)、およびSYSTEM-OS(暗号化された)の3つのパーティションがあると仮定します-

u UUID、SYSTEM-SWAP_crypt、SYSTEM-OS_crypt、SYSTEM-SWAP、SYSTEM-OSをシステムで使用されるバリエーションに調整する必要があります。詳細については、ソリューションの下の参照リンクを参照してください。

UUIDを取得します。

blkid

準備>

swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt

ルートファイルシステムを保持しているボリュームの復号化キーからスワップパーティションのパスフレーズを計算するようにcryptsetupに指示します>

/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt

スワップパーティションについてシステムに伝え、crypttabを編集します>

nano /etc/crypttab

=?2行が一致することを確認してください

SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

スワップパーティションについてシステムに通知し、fstab>を編集します

nano /etc/fstab

=?この行があることを確認してください

/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0

スワップパーティションについてシステムに伝え、履歴書を編集>

nano /etc/initramfs-tools/conf.d/resume

=?この行があることを確認してください

RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt

ブートパーティションのinitramfsを更新>

update-initramfs -u -k all

参照

暗号化されたDebianシステムのセットアップ(アーカイブされたリンク)に触発された答え:

暗号化されたDebianシステムを使用している場合は、セキュリティ要件を満たす必要がある可能性があります。その場合は、暗号化されたスワップパーティションも使用する必要があります。

スワップパーティションは次の2つの方法で暗号化できます。

  • ランダムパスフレーズを使用して、ブートごとに再作成できます。
  • 他の暗号化されたボリュームと同様に、永続的なパスフレーズで作成できます

ディスクへのサスペンドを使用する場合は、スワップパーティションに格納されているメモリフットプリントを上書きするため、最初の方法は使用できません。さらに、再開プロセスが開始し、復号化されたスワップパーティションを読み取る必要があるときには、ルートファイルシステムがマウントされていないため、他のパーティションのようにキーファイルを使用することはできません。

私がこれを解決した方法は、cryptsetupに、ルートファイルシステムを保持するボリュームの復号化キーからスワップパーティションのパスフレーズを計算するように指示することです。cryptsetupパッケージはこれをで実装し/lib/cryptsetup/scripts/decrypt_derivedます。したがって、スワップパーティションを設定するにはhda2、暗号化されたスワップを保持するパーティションがあり、ルートファイルシステムが次の場所にあると想定して、次のようにしますhda5_crypt

swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
  | cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
  | cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt

このスワップパーティションをシステムに通知するには、それを/etc/crypttaband に追加する必要が あり/etc/fstabます。これらのファイルに次のような行が含まれていることを確認してください。

/etc/crypttab:
  hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

/etc/fstab:
  /dev/mapper/hda2_crypt swap swap sw 0 0

これにより、システムを一時停止してディスクに構成すると同時に、ブートシーケンスの非常に早い段階で、スワップパーティションがルートファイルシステムと一緒に自動的にセットアップされます。その時点で利用できるようにするためにどのスワップパーティションを把握するには、チェックのcryptsetup以下:asfasfafs -ラインのようRESUME=/dev/mapper/hda2_crypt/etc/initramfs-tools/conf.d/resume -に再開デバイスの設定/etc/uswsusp.conf(参照uswsusp.conf(5)) -のエントリ/etc/suspend.conf - resume=/dev/mapper/hda2_cryptカーネルコマンドラインで

/usr/share/initramfs-tools/hooks/cryptrootこれについてもっと知りたいかどうかを調べることができます。


Ask Ubuntuへようこそ!(私がやった)フォーマットを気にせずに単にコピー/貼り付けしない場合は+1していたでしょう。ここでは、「ランダムなパスフレーズを使用して、ブートごとに再作成できる」方法が気に入っています。
gertvdijk 2013年

私が実際に使用したコマンドを回答に追加しました。12.10でもテストします。回答は後で更新されます
プリンス

はい。私はあなたがそれを完全にコピー/貼り付けたと思いました。機能させるために加えた変更を明確にするために変更してください。参考になります、ありがとう!
gertvdijk 2013年

起動を妨げるバグに遭遇したため、12.10で試さないでください。「cryptsetup lvmが利用できません」と表示され、Google検索でバグレポートが返されます。より深く調査する必要がありますが、時間がありません。後でお知らせします。
プリンス

答えを更新しました。私の12.10システムは完全に機能し、パスワードを1つだけ要求するようになりました。前回のコメントで言及した問題を引き起こした最後にupdate-initramfs -u -kをすべて実行しませんでした。@gertcdijkがすべてをフォーマットし、今すぐ幸せになることを願っています
Prince

4

これはおそらくinitramfs、起動プロセスの一部でスワップパーティションにアクセスしていることを示しています。この時点では、ルートファイルシステムはまだマウントされていないため、そこに保存されている構成ファイルは表示されません。

スワップスペースはルートファイルシステムの後にマウントされますが、initramfs初期化プロセスがスワップスペースにアクセスする理由があります。コンピュータを休止状態にすると、メモリの内容とシステム状態がスワップに書き込まれます。休止状態から再開するには、パスフレーズが必要な休止状態イメージがスワップ領域に含まれているかどうかを確認する必要があります。

休止状態から再開する機能を失ってもかまわない場合は/etc/initramfs-tools/conf.d/resume、で始まる行を編集してコメント化することにより、この動作を無効にできますRESUME=。変更後、実行update-initramfs -uしてinitramfsイメージを更新します。


あ、ありがとう!冬眠を犠牲にしたいのかわかりません。あまり使用していませんが、気付かずに電池が消耗すると重宝します。cryptsetupに/の同じパスワードを再利用させる方法があるかどうか知っていますか?
ブラッド

私はそれを行う方法を知りません。また、質問する前に、キーファイルのコピーをに入れないでくださいinitramfs。パスフレーズのプロンプトは表示されなくなりますが、ディスクに物理的にアクセスできる人なら誰でも利用できるようになります。
James Henstridge、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.