LUKSとループデバイス

LUKSとループデバイス

私は、LUKS/dm-crypt/cryptsetup に関するチュートリアル、特に暗号化されたファイル コンテナーを作成する方法について多くのチュートリアルを読みました。

最初のステップは、 を使用してファイルを作成することですdd

次に、いくつかのチュートリアルではファイルを/dev/loop0ループ デバイスにマップしてフォーマットし、他のチュートリアルではファイルをループ デバイスにマップせずに直接フォーマットします。

質問: ループ デバイス ステップは必要ですか? 違いは何ですか?

答え1

ddまたはfallocate(または他のいくつかのツール)を使用してhead、コンテナーとして機能するファイルを作成できます。その後、Vincent Yu が述べたように、cryptsetupループのセットアップ/ティアダウンを処理できます。

fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script

デバッグsudo losetup出力で、エントリAUTOCLEAR = 1の に注意してくださいfilecontainerできた代わりに夢中になるloopdev=$(sudo losetup -f); mount -o loop <etc>が、cryptsetupそれを処理させるのは方法もっといいよ。

重要なのは、まず、デフォルトでcryptsetup luksOpen containerfile mappednameマウントされるようにすること/dev/mapper/mappedname( で始まるフルパスを指定する/と、そこにマウントされると思います) を確認し、次に/dev/mapper/mappednameターゲットをフォーマットして、 に直接触れていないことを確認することですfilecontainer。そうしないと、暗号化エンジンをバイパスし、暗号化されていないループバック ファイルが作成されます。

答え2

ループ デバイスを自分で管理しない場合は、cryptsetup自動的にループ デバイスが設定され、不要になったら閉じられます。したがって、2 つに違いはなく、cryptsetup常にループ デバイスで動作します。参照man cryptsetup:

ループバックデバイスの使用に関する注意事項

Cryptsetup は通常、ブロック デバイス (ディスク パーティションまたは LVM ボリューム) 上で直接使用されます。ただし、デバイス引数がファイルの場合、cryptsetup はループバック デバイスを割り当てて、このファイルにマップしようとします。このモードには、ループ自動クリア フラグ (ループ デバイスは最後のクローズ時に自動的にクリアされます) をサポートする Linux カーネル 2.6.25 以降が必要です。もちろん、ファイルをループ デバイスに手動でマップすることもできます。例については、cryptsetup FAQ を参照してください。

デバイス マッピングがアクティブな場合、ステータス コマンドの出力にループ バッキング ファイルが表示されます。losetup(8) も参照してください。

関連情報