web-dev-qa-db-ja.com

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

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

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

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

この例では、スワップデバイスは従来のdevパス、つまり/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には存在しないようです。

ありがとう!

[〜#〜] edit [〜#〜]ecryptfsを使用して同じ目的を達成できます(暗号化されたスワップスペース)コマンドを使用:ecryptfs-setup-swapデバイスの暗号化をブロックする問題を引き起こさない。 this AskUbuntu query をご覧ください

8
Geeb

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
6
Jun_in_Jeju

/ etc/crypttabには、

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

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

3
Andrew Schulman

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

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

0
idupree

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、デフォルトは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部品
│└─cswap253:0 0 8G 0 crypt [SWAP]

猫/ proc/swaps

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

0