Debianで「by-uuid」を参照して、ランダムにキーを付けて暗号化されたスワップパーティションを作成する方法は?


8

復号化されたデータはいつでもクリアテキストでスワップに書き込まれる可能性があるため、GNU / Linuxシステムにブロックデバイス暗号化を実装している場合は、スワップパーティションも暗号化するのが賢明です。

「crypttab」のdebian manページを見ると、起動時にランダムにキー設定されたスワップパーティションを作成する例が表示されます。これにより、起動時にキーがランダムに設定され、システム自体にのみ認識されます。

# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap

この例では、スワップデバイスは従来の開発パスによって参照されます。 /dev/sda6

たとえば、USBドライブが接続されている場合、絶対デバイスパスは変更される可能性があり、起動時に再割り当てされます。/dev/sda6たまたま予想とは異なるパーティションになっていて、その後ランダムスワップデータで上書きされてしまうと、ユーザーは非常に不満になります。

交換、使用UUIDの代わりに、デバイスパス(UUIDは変更されないよう):ソリューションがあるように見えるでしょうだから/dev/sda6/dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>

しかし、ここに問題があります。cryptsetupがブート時に暗号化されたスワップパーティションを再作成するたびに、新しいUUIDが生成されます。どー!

したがって、この暗号化されたファイルシステムのUUIDを何らかの方法で保存する必要があります。cryptsetupはその--offsetスイッチでこれを行うことができ、LUKSヘッダー、つまりUUIDを保持できると思います。

私はこのURLを見つけました:https : //wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions

Arch Linuxで説明されているソリューションをDebian OSに実装する方法を知っている人はいますか?この文書で言及されているinitスクリプトは、Debian OSには存在しないようです。

ありがとう!

編集 1つは、コマンドを使用して同じ目的(暗号化されたスワップスペース)を達成するためにecryptfsを使用することができます: ecryptfs-setup-swap デバイス暗号化を妨げる問題なし。このAskUbuntuクエリを見てください


「ecryptfsを使用して、同じ目的を達成することができます[...]デバイスの暗号化を妨げる問題がなければ。」いいえ、それecryptfs-setup-swapdm-crypt/ crypttabを構成するヘルパーにすぎないからです。ecryptfsファイルレベルのドライバである、それはへのオフを農場ので、それは、全体のパーティションを処理しませんdm-crypt。この方法の方がユーザーフレンドリーであると思うかもしれませんが、最終的には何も異なることはありません。どちらかと言えば、このメソッドの癖(UUIDを含む)は、第一原理から自分で行ったばかりの場合よりも、おそらく私をより混乱させました...
underscore_d

回答:


6

cryptsetupは、ブート時に暗号化されたスワップパーティションを再作成するたびに、新しいUUIDを生成します。どー!

/ etc / crypttabで、/ dev / disk / by-UUIDの代わりに/ dev / disk / by- idを使用してスワップパーティションを参照します。たとえば、スワップの/ etc / fstabエントリは次のようになります。

#<file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/cswap none swap sw 0 0

次に、/ etc / crypttabの対応する正しいエントリは次のようになります。

# <name> <device> <password> <options>
cswap /dev/disk/by-id/ata-SAMSUNG_SSD_830_Series_S0XYNEAC762041-part5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256

上記のデバイスは/ dev / disk / by-idによって参照されていることに注意してください。これは、CLIで次のように入力することにより、ドライブで確認できます。

ls -lF /dev/disk/by-id

バイ・ID名は、モデルとあなたがプラグイン可能性のある他のデバイスと重複する可能性は極めて低いですシリアル番号、両方を意味することに注意してください。
cscracker

...これは、疑問に思う読者のために、非常に良いことです。暗号化されたスワップを構成したくないので、/dev/sdaNいつか別のディスクを接続すると、カーネルの命名順序が変更され、非スワップパーティションの1つが破棄されたことがわかります。UUIDもいいですが、重要な問題は、パーティションの最初の数バイトに格納されるため、ここで説明する不溶性のニワトリと卵のシナリオが発生することです。
underscore_d

3

/ etc / crypttabには、

# <target name>  <source device>        <key file>   <options>
swap             /dev/mapper/cswap      /dev/random  swap

ここで、/ dev / mapper / cswapはLVMによって作成された論理ボリュームで、ドライブ文字名に関係なく、論理ボリューム名を正しく割り当てます。また、スワップパーティションのサイズを簡単に変更できます。


0

initファイルを無視して、残りのソリューションを実装してみてください。ちょっとしたinitスクリプトはあなたを保護するためだけにあるようです。Debianはそのような方法であなたを保護していないか、それを使って起動しようとするとエラーメッセージが表示され、適切な場所に移動できると思われます。

また、IIRC DebianとArchLinuxで/ etc / crypttabの形式が異なることにも注意してください(奇妙なことですが、数年前にUbuntuからArchに移行し、結局、crypttabsをいじるのではなく、ストレートbashを使用することにしました)。


お返事をありがとうございます。はい、Archスクリプトは、パーティションがスワップパーティションのように見えることを確認するための健全性チェックであることに同意します。しかし、使用されている非スワップパーティションを見つけるために、USBドライブを接続したままにして再起動したことを想像しています。私は本当の涙を泣くと思います...私が得ることができるすべての健全性チェックに感謝しています!
Geeb、2011年

そもそもUUIDを使用してそれを見つけているので、それは起こりません。そのため、スワップパーティションが検出されるか、何も検出されません。
idupree '18年

0

ecryptfs-setup-swapまたは手動で実行:

この構成は、起動時にランダムに生成されたキーを使用し、ハードディスクへのハイバネーションをサポートしません!データの損失を回避するには、尊敬するDE電源管理ユーティリティを使用してハイバネーションを無効にし、[シャットダウン時にクリティカル]に設定する必要があります。

admin / rootアカウントに切り替えます

コマンドごとにsu rootまたはsudo

スワップを無効にする

swapoff -a

既存のスワップパーティションを見つける

lsblk

例:sda3 8:3 0 8G 0 part [SWAP]

古いスワップを上書き

dd if = / dev / zero bs = 1024000 of = / dev / sda <#>

例:dd if = / dev / zero bs = 1024000 of = / dev / sda3

FSTABセットアップ

vim / etc / fstab

古いSWAPデバイスをcrypttabマッパー名に置き換えます:/ dev / mapper / cswap

OLD UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdcスワップスワップのデフォルト0 0

新着

/ dev / mapper / cswap none swap pri = 1、defaults 0 0

暗号のセットアップ

ls -lF / dev / disk / by-id

例:ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3-> ../../sda3

vim / etc / crypttab

cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 / dev / urandom swap、cipher = aes-cbc-essiv:sha256、size = 256

アクティブな暗号化スワップ

コンピュータを再起動します

典型的なスワップ操作の確認

dmsetup -C info

例:cswap 253 0 L--w 2 1 0 CRYPT-PLAIN-cswap

lsblk

例├─sda38:3 0 8G 0
part│└─cswap253:0 0 8G 0 crypt [SWAP]

猫/ proc / swaps

例:ファイル名タイプサイズ使用優先度/ dev / dm-0パーティション8385532 0 -1

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.