root以外のユーザーとしてLUKSボリュームを開きますか?

root以外のユーザーとしてLUKSボリュームを開きますか?

cryptsetup情報を保存するためにLUKSファイルベースのデバイスを作成しています。

# create a file as a container
dd if=/dev/zero of=zulu.bin bs=1024 count=102400
# create a key
dd if=/dev/urandom bs=1 count=8192 2>/dev/null | \
  base64 | \
  cut -b 1-8192 | \
  tr -d '\n' | \
  gpg2 --output zulu-key.gpg -aser DEADBEEF
# format the file-based "device"
gpg2 --decrypt zulu-key.gpg | \
  cryptsetup luksFormat --iter-time=10000 --hash sha256 \
    --cipher aes-cbc-essiv:sha256 --key-size 256 --key-file - \
    zulu.bin

ここには理想的ではないものがたくさんあります。つまり、ブロックデバイス暗号化は暗号化認証などを提供しない。

とにかく、root以外のユーザーではデバイスを開くことはできません。

$ gpg2 --decrypt zulu-key.gpg | \
    cryptsetup open -d - zulu.bin zulu
Cannot initialize device-mapper, running as non-root user.

私にとって本質的に必要なのは暗号化されていますが、ファイルに保存されるファイルシステム全体です。権限を高めることなく、この暗号化されたファイルシステムを自由に開閉できなければなりません。

私は単にtmpfsまたはramfsを生成し、単にdd「デバイス」をGnuPGに直接接続することを検討しました。その後、GnuPGの暗号化、認証、否認防止機能を得ることができましたが、それが可能かどうかはわかりません。

任意のサイズのファイルシステムをGnuPGを介して暗号化されたファイルに割り当てるためのよく知られた方法はありますか? RAMで開いた後、暗号化のためにGnuPGに再度パイプしてデバイスをオフラインに戻すことはできますか?一般ユーザーとしてFUSEを使用してこれを実行できますか?


マイユースケースでは、ファイルシステムにファイルを書き込むプログラムが暗号化について全く知る必要がないように、任意のサイズの暗号化されたファイルシステムが必要であり、デバイスが「閉じて」いてパスワードテキストがディスクにファイルとして書き込まれるときに暗号化を処理します.することです。 。

ベストアンサー1

ホームフォルダに空の画像とフォルダを作成します。

cd
dd if=/dev/zero of=zulu.bin bs=1024 count=102400
mkdir myvault

以下を追加してください/etc/cryptmount/cmtab

LUKS {
    keyformat=luks
    dev=/home/user/zulu.bin  keyfile=/home/user/zulu.bin
    dir=/home/user/myvault/       fstype=ext2
}

root次のコマンドを実行します。

cryptmount --generate-key 32 LUKS
cryptmount --prepare LUKS
mke2fs /dev/mapper/LUKS
cryptmount --release LUKS

これで、ユーザーは次のように入力してイメージをインストールできます。

cryptmount LUKS

入力して削除します。

cryptmount -u LUKS

chown//を使用すると、他のユーザーをブロックできますchgrpchmodmyvault

GPG2をここにインポートする方法はわかりませんが、cryptmountマンページによれば、cmtabキーファイルとパスワードをファイルに割り当てることができます。

おすすめ記事