復号化されたデータはいつでもクリアテキストでスワップに書き込まれる可能性があるため、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 をご覧ください
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
/ etc/crypttabには、
# <target name> <source device> <key file> <options>
swap /dev/mapper/cswap /dev/random swap
ここで、/ dev/mapper/cswapはLVMによって作成された論理ボリュームで、ドライブ文字名に関係なく、論理ボリューム名を正しく割り当てます。また、スワップパーティションのサイズを簡単に変更できます。
Initファイルを無視して、残りのソリューションを実装してみてください。ちょっとしたinitスクリプトはあなたを保護するためだけにあるようです。 Debianはそのような方法であなたを保護していないか、それを使って起動しようとするとエラーメッセージが表示され、適切な場所に移動できると思われます。
また、IIRC DebianとArchLinuxは/ etc/crypttabの形式が異なることに注意してください(クレイジーですが、数年前にUbuntuからArchに移行し、最終的にcrypttabsをいじるのではなく、ストレートbashを使用することにしました)。
ecryptfs-setup-swapまたは手動で実行:
この構成は、起動時にランダムに生成されたキーを使用し、ハードディスクへのハイバネーションをサポートしません!データの損失を回避するには、尊敬するDE電源管理ユーティリティを使用してハイバネーションを無効にし、[シャットダウン時にクリティカル]に設定する必要があります。
コマンドごとに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
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