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


16

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内のファイルを暗号化する方法としてこれを使用する予定です。



ファイルのバックアップ時に適切な暗号化が必要な場合は、代わりにSpiderOakを検討することをお勧めします。セキュリティを強化し、手間を省きます。
ランドローニ

回答:


8

使用できます 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/mycryptによって作成されたサポートファイルはどこですかdd/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価値があるかもしれません。


ご回答いただきありがとうございます。ファイルシステムを作成し、暗号化し、Dropboxにアップロードしました。後で、そのファイルを他のPCにマウントしようとします。一つだけ、それはsudoなしで行うことができますか?ファイルやファイルシステムを自宅(usbやhardriveなどのメディアではなく)にマウントしたままにしたい場合、コマンドはsudoなしで同じになりますか、cryptmountには常にルート権限が必要ですか?
animaletdesequia

1
@darent:コマンドはファイルシステムのセットアップ時にのみroot権限を必要とするようですが、イメージファイルとマウントポイントがユーザーによって所有されている場合、マウント/アンマウントはユーザーのアクションです。同じイメージファイルを別のマシンにセットアップ/etc/cryptmount/mycrypt.keyするには--generate-key、ステップをコピーしてスキップする必要があると思います。
-enzotib

最後の手順でこのエラーが発生します: .. fsck.ext4:スーパーブロック内の不正なマジック番号en intentar obrir / dev / mapper / encriptat
animaletdesequia

1
@darent:手順4に示すようにファイルシステムを作成しましたか?「mycrypt」という名前を「encriptat」に置き換えることに一貫性がありますか?
-enzotib

申し訳ありませんが、エラーは(sudo mkfs.ext4 / dev / mapper / mycrypt)の代わりに(sudo mkfs.ext4 mycript)と入力していたためです。デバイスではなく、直接ファイルにアクセスしていました。今では完璧に動作します。このメッセージの形式については申し訳ありませんが、なぜ行を分離できないのかわかりません(Enterキーを押すと、新しい行を作成する代わりにコメントが公開されます。編集:今、私はあなたの答えを読みました、暗号名は問題ではありませんでした(あなたの投稿を修正し、カタラン名でファイルを置くだけですが、それはすべて一貫しています)。Everithingは今、大丈夫です、もう一度ありがとう:)
animaletdesequia

7

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

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

fallocate -l 128M /path/to/file

2. dm-cryptツールを使用して、ファイル内にLUKS(Linux Unified Key Setup)パーティションを作成します。

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

1
この答えは、最良かつ最新の答えだと思います。正解として選択する必要があります!
ユルテセン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.