eCryptfsは、Linux用のPOSIX準拠のエンタープライズクラスのスタック暗号化ファイルシステムです。これを使用して、基盤となるファイルシステムやパーティションタイプなどに関係なく、パーティションや独自のパーティションを使用しないディレクトリを暗号化できます。このチュートリアルでは、eCryptfsを使用してDebianSqueezeでディレクトリを暗号化する方法を示します。
>これがあなたのために働くという保証はありません!
1予備メモ
このチュートリアルでは、/パーティションにあるホームディレクトリ/ home / falko /を暗号化します(つまり、/ home / falko /は通常のディレクトリであり、独自のパーティションを使用しません)。
2eCryptfsのインストール
eCryptfsは、次のように簡単にインストールできます。
apt-get install ecryptfs-utils
3ディレクトリの暗号化
ここで、ホームディレクトリ/ home /falko/を暗号化します。そのディレクトリにはすでに(暗号化されていない)ファイルがあるので、後で暗号化された/ home / falko /ディレクトリに復元できるように、それらのバックアップを作成する必要があります(そうしないと、ディレクトリが暗号化):
cp -pfr / home / falko / / tmp /
これで、ディレクトリ/ home / falko /をファイルシステムタイプecryptfsでマウントすることで暗号化できます:
mount -t ecryptfs / home / falko / home / falko
これを初めて行うときは、いくつかの質問に答える必要があります:
[メールで保護]:〜#mount -t ecryptfs / home / falko / home / falko
パスフレーズ:<-some_passphrase
暗号を選択:
1)aes:blocksize =16; min keysize =16; max keysize =32(ロードされていません)
2)blowfish:blocksize =16; min keysize =16; max keysize =56(ロードされていません)
3)des3_ede:blocksize =8; min keysize =24; max keysize =24(ロードされていない)
4)twofish:blocksize =16; min keysize =16; max keysize =32(ロードされていません)
5)cast6:blocksize =16; min keysize =16; max keysize =32(ロードされていない)
6)cast5:blocksize =8; min keysize =5; max keysize =16(ロードされていない)
選択[aes]:<-ENTER
キーバイトを選択:
1)16
2)32
3)24
選択[16]:<-ENTER
プレーンテキストパススルーを有効にする(y / n)[n]:<-ENTER
ファイル名の暗号化を有効にする(y / n)[n]:<-ENTER
次のオプションを使用してマウントを試みます:
ecryptfs_unlink_sigs
ecryptfs_key_bytes =16
ecryptfs_cipher =aes
ecryptfs_sig =bd28c38da9fc938 [/root/.ecryptfs/sig-cache.txt]のコンテンツ、
これまで、このキーを使用したことがないようです。
これは、パスフレーズを間違って入力したことを意味している可能性があります。
マウントを続行しますか(はい/いいえ)? :<-はい
将来的にこの警告を回避するために、
[/root/.ecryptfs/sig-cache.txt]
にsig[bd28c38da9fc938b]を追加しますか?はい・いいえ)? :<-はい
新しいsigがユーザーのsigキャッシュファイルに正常に追加されました
マウントされたeCryptfs
[メールで保護]:〜#
の出力を見てください
マウント
/ home /falko/が暗号化されていることがわかります。
[email protected]:〜#mount
/ dev / sda1 on / type ext3(rw、errors =remount-ro)
tmpfs on / lib / init / rw type tmpfs(rw、nosuid 、mode =0755)
proc on / proc type proc(rw、noexec、nosuid、nodev)
sysfs on / sys type sysfs(rw、noexec、nosuid、nodev)
udev on / dev type tmpfs(rw、mode =0755)
tmpfs on / dev / shm type tmpfs(rw、nosuid、nodev)
devpts on / dev / pts type devpts(rw、noexec、nosuid、gid =5、mode =620)
/ home / falko on / home / falko type ecryptfs(rw、ecryptfs_sig =bd28c38da9fc938b、ecryptfs_cipher =aes、ecryptfs_key_bytes =16、ecryptfs_unlink_sigs)
[email protected]:〜#
バックアップを暗号化されたディレクトリ/home/ falko /に復元し、後でバックアップを削除しましょう:
cp -pfr / tmp / falko / / home /
rm -fr / tmp / falko /
テストの目的で、他のファイルをコピーしてみましょう。 / etc / hosts、/ home / falko /に移動して、実際に暗号化されているかどうかを確認します:
cp / etc / hosts / home / falko
/ home / falko /はecryptfsファイルシステムタイプでマウントされていますが、/ home / falko / hostsの内容を読み取ることができるはずです:
cat / home / falko / hosts
/ home / falko / ...
のマウントを解除しますumount / home / falko
...そして/home/ falko / hostsをもう一度読んでみてください。そうすれば、謎めいたものを手に入れるはずです:
cat / home / falko / hosts
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R、`Ëi、0ñ*úÐ%^-']YÑj÷#6 ÷¨Y-]«é²ùô |
4起動時に暗号化されたパーティションを自動的にマウントする方法
もちろん、毎回/ home /falko/を手動でマウントする必要はありません。起動時に自動的にマウントできると便利です。これを行うには、パスフレーズファイルが必要です。セキュリティ上の理由から、このパスフレーズファイルをUSBキーに配置する必要があります。
USBキーを差し込んで実行します
fdisk -l </ pre>デバイス名とファイルシステムタイプを確認するには:
[メール保護]:〜#fdisk -l <br />
ディスク/dev/ sda:32.2 GB、32212254720バイト
255ヘッド、63セクター/トラック、3916シリンダー
単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x00035e35
デバイスのブート開始終了ブロックIDは、システム
は/ dev / sda1を* 1 3793 30461952 83 Linuxの
は/ dev / sda2は3793 3917 992257 5拡張
/ dev / sda5 3793 37939225682Linuxスワップ/Solaris
ディスク/dev/ sdb:8086 MB、8086617600バイト
255ヘッド、63セクター=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x000e439f
デバイスブート開始終了ブロックブロックI dシステム
/dev / sdb1 1 983 7895916 b W95 FAT32
[メール保護]:〜#私の場合、デバイス名は/ dev / sdb1で、FAT32ファイルシステムを使用しています。
USBキーを/mnt/ usbにマウントしましょう:
mkdir / mnt / usb
mount / dev / sdb1 / mnt / usbの出力を見てください
マウント...ファイルシステムタイプvfat(FAT32)でマウントされていることがわかります。後で/ etc/fstabファイルにこの情報が必要になります。
[email protected]:〜#mount
/ dev / sda1 on / type ext3(rw、errors =remount-ro)
tmpfs on / lib / init / rw type tmpfs(rw、nosuid 、mode =0755)
proc on / proc type proc(rw、noexec、nosuid、nodev)
sysfs on / sys type sysfs(rw、noexec、nosuid、nodev)
udev on / dev type tmpfs(rw、mode =0755)
tmpfs on / dev / shm type tmpfs(rw、nosuid、nodev)
devpts on / dev / pts type devpts(rw、noexec、nosuid、gid =5、mode =620)
/ dev / sdb1 on / mnt / usb type vfat(rw)
[email protected]:〜#/root/.ecryptfs/sig-cache.txtの内容を見てみましょう:
cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b |
次のように作成するファイル/root/.ecryptfsrcにこの署名が必要です。
vi /root/.ecryptfsrc
ecryptfs_sig行の/root/.ecryptfs/sig-cache.txtファイルの署名を使用していることを確認してください:
key =passphrase:passphrase_passwd_file =/ mnt / usb / passwd_file.txtecryptfs_sig =bd28c38da9fc938becryptfs_cipher =aesecryptfs_key_bytes =16ecryptfs_passthrough =necryptfs_enable_filename |
次に、USBキーにパスフレーズファイルを作成します。
vi /mnt/usb/passwd_file.txt
passphrase_passwd =some_passphrase |
正しいパスフレーズ、つまり、ディレクトリを手動でマウントした場合に使用するパスフレーズを使用していることを確認してください。
次に/etc/fstabを開きます...
vi / etc / fstab
...そして次の2行を追加します(USBキーに正しいファイルシステムタイプを使用していることを確認してください-私の場合はvfat):
[...] / dev / sdb1 / mnt / usb vfat ro 0 0 / home / falko / home /falkoecryptfsデフォルト00 |
(暗号化されたパーティションをマウントする前にUSBキーをマウントする必要があるため、USBキーの行が暗号化されたパーティションの行の前に来ることが重要です!)
次に、システムを再起動します。
再起動
すべてがうまくいけば、再起動後に暗号化されたパーティションが自動的にマウントされます。ただし、システムが起動中にUSBキーをマウントできない可能性があります。つまり、暗号化されたパーティションもマウントできません。これが発生した場合は、/ etc / rc.localを編集します(このスクリプトはブートプロセスの最後に実行されます)...
vi /etc/rc.local
...そしてexit0行の前に行/bin/ mount -aを追加します:
#!/ bin / sh -e ## rc.local ##このスクリプトは、各マルチユーザーランレベルの最後に実行されます。スクリプトは成功すると「exit0」、エラーになると他の#値になります。##このスクリプトを有効または無効にするには、execution#ビットを変更するだけです。##デフォルトでは、このスクリプトは何もしません。/bin/mount -aexit 0 |
これにより、起動プロセスの最後にすべてのパーティション(USBキーと暗号化されたパーティションを含む)が(再)マウントされます。
5つのリンク
- eCryptfs:https://launchpad.net/ecryptfs
- Debian:http://www.debian.org/