GNU/Linux >> Linux の 問題 >  >> Debian

Debian 8(Jessie)でeCryptfsを使用してディレクトリ/パーティションを暗号化する方法

eCryptfsは、Linux用のPOSIX準拠のエンタープライズクラスのスタック暗号化ファイルシステムです。これを使用して、基盤となるファイルシステムやパーティションタイプなどに関係なく、パーティションや独自のパーティションを使用しないディレクトリを暗号化できます。このチュートリアルでは、eCryptfsを使用してDebianJessieのディレクトリを暗号化する方法を示します。

>

1予備メモ

このチュートリアルでは、/パーティションにあるホームディレクトリ/ home / falko /を暗号化します(つまり、/ home / falko /は通常のディレクトリであり、独自のパーティションを使用しません)。

>

2eCryptfsのインストール

eCryptfsは、次のように簡単にインストールできます。

 apt-get -y install ecryptfs-utils 

3ディレクトリの暗号化

ここで、ホームディレクトリ/ home /falko/を暗号化します。そのディレクトリにはすでに(暗号化されていない)ファイルがあるので、後で暗号化された/ home / falko /ディレクトリに復元できるように、それらのバックアップを作成する必要があります(そうしないと、ディレクトリが暗号化):

 cp -pfr / home / falko / / tmp / 

これで、ディレクトリ/ home / falko /をファイルシステムタイプecryptfsでマウントすることで暗号化できます:

 mount -t ecryptfs / home / falko / home / falko 

これを初めて行うときは、いくつかの質問に答える必要があります:

 [email protected]:/ tmp#mount -t ecryptfs / home / falko / home / falko 
新しく作成されたファイルに使用するキータイプを選択します:
1)tspi
2)パスフレーズ
選択:<-2
パスフレーズ:<-安全なパスワードを入力してください
暗号を選択してください:
1)aes:blocksize =16;最小キーサイズ=16;最大キーサイズ=32
2)ブローフィッシュ:ブロックサイズ=8;最小キーサイズ=16;最大キーサイズ=56
3)des3_ede:ブロックサイズ=8;最小キーサイズ=24;最大キーサイズ=24
4)twofish:ブロックサイズ=16;最小キーサイズ=16;最大キーサイズ=32
5)cast6:ブロックサイズ=16;最小キーサイズ=16;最大キーサイズ=32
6)cast5:ブロックサイズ=8;最小キーサイズ=5; max keysize =16
Selection [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 =bd28c38da9fc938b
警告:に基づく[/root/.ecryptfs/sig-cache.txt]の内容、
これまでこのキーを使用してマウントしたことがないようです。
これは、
パスフレーズを間違って入力したことを意味している可能性があります。
マウントを続行しますか(はい/いいえ)? :<-はい
今後この警告を回避するために、
[/root/.ecryptfs/sig-cache.txt]
にsig[bd28c38da9fc938b]を追加しますか(はい・いいえ)? :<-はい
ユーザーのsigキャッシュファイルに新しいsigが正常に追加されました
マウントされたeCryptfs
[メールで保護]:/ home / managerator#

の出力を見てください
マウント

/ home /falko/が暗号化されていることがわかります。

バックアップを暗号化されたディレクトリ/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 

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 
sysfs on / sys type sysfs(rw、nosuid、nodev、noexec、relatime)
proc on / proc type proc(rw、nosuid、nodev、noexec 、relatime)
udev on / dev type devtmpfs(rw、relatime、size =10240k、nr_inodes =124251、mode =755)
devpts on / dev / pts type devpts(rw、nosuid、noexec、relatime 、gid =5、mode =620、ptmxmode =000)
tmpfs on / run type tmpfs(rw、nosuid、relatime、size =202132k、mode =755)
/ dev / sda1 on / type ext4 (rw、relatime、errors =remount-ro、data =ordered)
/ sys / kernel / securityタイプのsecurityfsのsecurityfs(rw、nosuid、nodev、noexec、relatime)
/ dev/shmのtmpfsタイプtmpfs(rw、nosuid、nodev)
tmpfs on / run / lockタイプtmpfs(rw、nosuid、nodev、noexec、relatime、size =5120k)
tmpfs on / sys / fs / cgroup type tmpfs (ro、nosuid、nodev、noexec、mode =755)
cgroup on / sys / fs / cgroup / systemd type cgroup(rw、nosuid、nodev、noexec、relatime、xattr、release_agent =/ lib / systemd / systemd -cgroups-agent、name =systemd)
pstore on / sys / fs / pstore type pstore(rw、nosuid、nodev、noexec、rel atime)
cgroup on / sys / fs / cgroup / cpuset type cgroup(rw、nosuid、nodev、noexec、relatime、cpuset)
cgroup on / sys / fs / cgroup / cpu、cpuacct type cgroup( rw、nosuid、nodev、noexec、relatime、cpu、cpuacct)
cgroup on / sys / fs / cgroup / devices type cgroup(rw、nosuid、nodev、noexec、relatime、devices)
cgroup on / sys / fs / cgroup / freezer type cgroup(rw、nosuid、nodev、noexec、relatime、freezer)
cgroup on / sys / fs / cgroup / net_cls、net_prio type cgroup(rw、nosuid、nodev、noexec、relatime 、net_cls、net_prio)
cgroup on / sys / fs / cgroup / blkio type cgroup(rw、nosuid、nodev、noexec、relatime、blkio)
cgroup on / sys / fs / cgroup / perf_event type cgroup (rw、nosuid、nodev、noexec、relatime、perf_event)
systemd-1 on / proc / sys / fs / binfmt_misc type autofs(rw、relatime、fd =23、pgrp =1、timeout =300、minproto =5、maxproto =5、direct)
mqueue on / dev / mqueue type mqueue(rw、relatime)
debugfs on / sys / kernel / debug type debugfs(rw、relatime)
hugetlbfs on / dev / hugepagesタイプhugetlbfs(rw、relatime)
rpc_pipefs on / run / rpc_pipefs type rpc_pipefs(rw、relatime)
/ dev / sdb1 on / mnt / usb type vfat(rw)
[email protected]:〜#

/root/.ecryptfs/sig-cache.txtの内容を見てみましょう:

 cat /root/.ecryptfs/sig-cache.txt 
 bd28c38da9fc938b 

次のように作成するファイル/root/.ecryptfsrcにこの署名が必要です。

 nano /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_crypto =n 

次に、USBキーにパスフレーズファイルを作成します。

 nano /mnt/usb/passwd_file.txt 
 passphrase_passwd =some_passphrase 

正しいパスフレーズ、つまり、ディレクトリを手動でマウントした場合に使用するパスフレーズを使用していることを確認してください。

次に/etc/fstabを開きます...

 nano / etc / fstab 

...そして次の2行を追加します(USBキーに正しいファイルシステムタイプを使用していることを確認してください-私の場合はvfat):

 [...] / dev / sdb1 / mnt / usb vfat ro 0 0 / home / falko / home /falkoecryptfsデフォルト00

(暗号化されたパーティションをマウントする前にUSBキーをマウントする必要があるため、USBキーの行が暗号化されたパーティションの行の前に来ることが重要です!)

次に、システムを再起動します。

再起動

すべてがうまくいけば、再起動後に暗号化されたパーティションが自動的にマウントされます。ただし、システムが起動中にUSBキーをマウントできない可能性があります。つまり、暗号化されたパーティションもマウントできません。これが発生した場合は、/ etc / rc.localを編集します(このスクリプトはブートプロセスの最後に実行されます)...

 nano /etc/rc.local 

...そしてexit0行の前に行/bin/ mount -aを追加します:

#!/ bin / sh -e ## rc.local ##このスクリプトは、各マルチユーザーランレベルの最後に実行されます。#スクリプトが成功した場合は「exit0」、エラーの場合はその他の#値を確認してください。 ##このスクリプトを有効または無効にするには、execution#ビットを変更するだけです。##デフォルトでは、このスクリプトは何もしません。/bin/mount -aexit 0 

これにより、起動プロセスの最後にすべてのパーティション(USBキーと暗号化されたパーティションを含む)が(再)マウントされます。

  • eCryptfs:https://launchpad.net/ecryptfs
  • Debian:http://www.debian.org/

Debian
  1. Debian – / var、/ homeを別のパーティションに移動しますか?

  2. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  3. プロセスが実行されているフォルダーを見つける方法は?

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Bash =〜正規表現とHttps://regex101.com/?

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?

  1. マウントポイントを変更するには?

  2. 「キャッシュディレクトリ/home//.composer/cache/repo/https—packagist.org/を作成できません。または、ディレクトリが書き込み可能ではありません。キャッシュなしで続行しますか?」

  3. CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法