2017警告!受け入れられた回答は機能しているようですが、最近のカーネルでは、システムがスワップを開始するとすぐにハングすることを発見しました。暗号化されたスワップファイルを使用する場合は、実際に正しくスワップされることを確認してください。明確な理由なしにシステムがロックし続ける理由を理解するのに長い時間がかかりました。暗号化されたスワップパーティションの使用に戻りましたが、正しく動作します。
Linuxで暗号化されたスワップファイル(パーティションではない)を設定するにはどうすればよいですか?可能ですか?私が見つけたすべてのガイドは暗号化されたスワップパーティションについて話していますが、私にはスワップパーティションがなく、ディスクを再パーティション化する必要はありません。
ディスクへのサスペンドのサポートは必要ないので、起動するたびにランダムなキーを使用したいと思います。
私は既に TrueCrypt ファイルでホストされているボリュームをデータに使用していますが、そのボリュームにスワップを入れたくありません。より良い解決策がある場合、私はスワップファイルにTrueCryptを使用することに固執していません。
必要に応じて、デフォルトのカーネルで Arch Linux を使用しています。
実際、 ページ はパーティションの設定について説明していますが、スワップファイルの場合も同様です。
dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile
結果:
# swapon -s
Filename Type Size Used Priority
/dev/mapper/swap0 partition 4000176 0 -1
/dev/mapper/swap1 partition 2000084 0 -2
/dev/mapper/swapfile partition 65528 0 -3
swap0とswap1は実際のパーティションです。
この構成は、起動時にランダムに生成されたキーを使用し、ハードディスクへのハイバネーションをサポートしません!データの損失を回避するには、尊敬するDE電源管理ユーティリティを使用してハイバネーションを無効にし、[シャットダウン時にクリティカル]に設定する必要があります。
必ず実行してくださいSudo -s
またはsu
以下を実行する前に。
スワップを無効にする:
# 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
#<file system> <mount point> <type> <options> <dump> <pass>
/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
# <name> <device> <password> <options>
cswap /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256
アクティブな暗号化スワップ
# reboot
典型的なスワップ操作の確認
例えば:
# dmsetup -C info
cswap 253 0 L--w 2 1 0 CRYPT-PLAIN-cswap
# lsblk
├─sda3 8:3 0 8G 0 part
│ └─cswap 253:0 0 8G 0 crypt [SWAP]
# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 8385532 0 -1
dd if=/dev/zero of=/swapfile bs=8G count=1
を使用し、その後にmkswap /swapfile
とswapon /swapfile
を使用する場合、ルートファイルシステム上に有効なスワップファイルがあるはずです。 (dd
を使用して、スワップファイルに穴がないことを確認します)
これにより、ループデバイスやcrypttabをいじる必要がなくなり、すでに暗号化されているファイルシステム内にスワップファイルを配置するだけです。 (ここでは、ドライブ全体で暗号化を使用していると想定しています。他の場所にある場合は、暗号化されたディレクトリへのパスを/swapfile
パラメータに追加してください)
詳細については、man mkswap
およびman swapon
を参照してください。