web-dev-qa-db-ja.com

ファイル内に暗号化されたファイルシステムを作成するにはどうすればよいですか?

flossstuffブログのこの興味深いチュートリアル を見つけました。

空のファイルを作成し、ext4としてフォーマットし、デバイスとしてマウントする方法を説明します。

暗号化されたext4ファイルシステムとして作成できるかどうか知りたいのですが。

Palimpsest([システム]メニューにあるディスクユーティリティ)を使用して、作成済みのファイルシステムをフォーマットしようとしましたが、使用中のファイルシステムを検出するため機能しません。

ファイルシステムのマウントを解除しようとしても、デバイスが検出されないため(ハードドライブやUSBドライブのような実際のデバイスではないため)動作しません。

だから私の質問は、最初から暗号化されたファイルシステムを作成するオプションはありますか?私はこれらのコマンドを使用しました:

200Mbサイズの空のファイルを作成します。

dd if=/dev/zero of=/path/to/file bs=1M count=200

Ext4にします。

mkfs -t ext4 file

私の家の中のフォルダーにマウントします:

Sudo mount -o loop file /path/to/mount_point

mkfsコマンドが暗号化されたext4ファイルシステムを作成して復号化パスワードを要求する方法はありますか?

Dropbox内のファイルを暗号化する方法としてこれを使用する予定です。

15

ファイルシステムがファイル上にある場合も、cryptmountを使用してファイルシステムを暗号化できます。

cryptmountマニュアルページには、ここで報告(変更)した非常にシンプルで詳細な説明があり、ファイルベースのファイルシステムについて明示的に言及しています。

  • ステップ1
    次のように、/etc/cryptmount/cmtabにエントリを追加します。

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    ここで、/media/data/mycryptddによって作成されたサポートファイルであり、/home/enzotib/mycryptは目的のマウントポイントです。

  • ステップ2
    秘密の復号化キーを生成します

    Sudo cryptmount --generate-key 32 mycrypt
    
  • ステップ3
    次のコマンドを実行します

    Sudo cryptmount --prepare mycrypt
    

    その後、キーを設定するときに使用するパスワードを求められます

  • ステップ4
    ファイルシステムを作成する

    Sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • ステップ5
    実行

    Sudo cryptmount --release mycrypt
    
  • ステップ6
    今、ファイルシステムをマウントします

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    その後、アンマウントします

    cryptmount -u mycrypt
    

また、ディレクトリを暗号化する必要がある場合は、encfsを考慮する価値があります。

8
enzotib

次の手順に従って、ファイルシステムを内部に含む暗号化されたファイルを作成します。

1。指定されたサイズのファイルを作成するより速い方法は次のとおりです。

fallocate -l 128M /path/to/file

2。LUKS(Linux Unified Key Setup)を使用して、ファイル内にdm-cryptツール:

cryptsetup -y luksFormat /path/to/file

ファイルが暗号化されたコンテナであることを確認できます。

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3。暗号化されたコンテナを開く:

cryptsetup luksOpen /path/to/file data

dataはデバイスマッパーボリューム名です。他の名前を選択できます。

これによりLUKSデバイスが開き、指定された名前にマップされます。この場合、/dev/mapper/dataにファイルを作成します。

4。このデバイスにext4ファイルシステムを作成します。

mkfs.ext4 /dev/mapper/data

5。次にマウントポイントを作成します:

mkdir /path/to/mount

6。そしてそこにデバイスをマウントします:

mount /dev/mapper/data /path/to/mount

7。ファイルシステムをアンマウントしてLUKSデバイスを閉じるには:

umount /path/to/mount
cryptsetup luksClose data

これで、ext4ファイルシステムを内部に含むLUKSコンテナーが暗号化されました。使用する場合は、手順3と6を繰り返します。終了したら、手順7を呼び出します。

この記事 はとても役に立ちました。

また、ある日、コンテナのスペースが不足します。暗号化されたコンテナファイルのサイズが128 MBで、そのサイズを512 MBに増やしたいとします。容量を増やすには、次の手順を実行します。

1。LUKSデバイスをアンマウントして閉じます(上記リストのステップ7を参照)。

2。コンテナファイルのサイズを増やす:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3。LUKSデバイスを開きます。

cryptsetup luksOpen /path/to/file data

4。LUKSデバイスのサイズを変更して、コンテナのファイルサイズに合わせます。 manページから:

--size(セクター単位)が指定されていない場合、基盤となるブロックデバイスのサイズが使用されます。

したがって、次のことができます。

cryptsetup resize data

5。次にext4ファイルシステムのサイズを変更します:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6。これで、ファイルシステムをマウントして戻すことができます:

mount /dev/mapper/data /path/to/mount
5
mixel

Losetupコマンドで-eパラメーターを使用して、暗号化されたループデバイスを作成できます。詳細は http://tldp.org/HOWTO/Cryptoloop-HOWTO/loopdevice-setup.html で入手できます

3
Mathieu