見出し画像

Appendix eCryptfsによるディレクトリの暗号化



環境

  • RockyLinux 9

  • ecryptfs-utils-111 @ELRpoリポジトリ


やること

  • "/root/ecryptfs-dir" を暗号化する

  • パスフレーズは "eCryptfspassword" とする


手順

1. ディレクトリを作成する

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# mkdir ecryptfs-dir
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -lF
合計 52
  :
drwxr-xr-x.  2 root root     6  25 21:13 ecryptfs-dir/
  :
[root@lpic303-rocky34 ~]#

2. マウントする

mount -t ecryptfs <dirname> <dirname>

以下の例では暗号化は AES で、鍵の長さを 16Byte とデフォルト値を採用しています。

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# mount -t ecryptfs ecryptfs-dir ecryptfs-dir
Select key type to use for newly created files:
 1) passphrase
 2) pkcs11-helper
 3) tspi
Selection: 1
Passphrase:   <---★"eCryptfspassword" を入力
Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; 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
Selection [aes]:
Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [afdd919416f6e233]:
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=afdd919416f6e233
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=afdd919416f6e233
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key
before. This could mean that you have typed your
passphrase wrong.

Would you like to proceed with the mount (yes/no)? : yes
Would you like to append sig [afdd919416f6e233] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? : yes
Successfully appended new sig to user sig cache file
Mounted eCryptfs
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cat /root/.ecryptfs/sig-cache.txt
afdd919416f6e233
[root@lpic303-rocky34 ~]#

★マウントされていることを確認する★
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              4.0M     0  4.0M    0% /dev
tmpfs                 882M     0  882M    0% /dev/shm
tmpfs                 353M  5.7M  348M    2% /run
/dev/mapper/rl-root    46G  2.3G   43G    5% /
/dev/sda1            1014M  388M  627M   39% /boot
tmpfs                 177M     0  177M    0% /run/user/1000
/root/ecryptfs-dir     46G  2.3G   43G    5% /root/ecryptfs-dir
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# mount | grep ecryptfs
/root/ecryptfs-dir on /root/ecryptfs-dir type ecryptfs (rw,relatime,ecryptfs_fnek_sig=afdd919416f6e233,ecryptfs_sig=afdd919416f6e233,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
[root@lpic303-rocky34 ~]#

3. ファイルを作成する

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# echo "secret data" > ecryptfs-dir/encrypted.txt
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l ecryptfs-dir/
合計 12
-rw-r--r--. 1 root root 12  25 21:17 encrypted.txt
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cat ecryptfs-dir/encrypted.txt
secret data
[root@lpic303-rocky34 ~]#

4. マウントを解除する

マウントを解除するとファイル名が隠蔽され、中身も暗号化されて閲覧できなくなる。

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# umount /root/ecryptfs-dir
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l /root/ecryptfs-dir/
合計 12
-rw-r--r--. 1 root root 12288  25 21:17 ECRYPTFS_FNEK_ENCRYPTED.FWajrN4I3jPWAkQLJWVIK2vUlvCCA.xGP0OoZskmyO2nOI0Iu8nESi6T0k--
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cat /root/ecryptfs-dir/ECRYPTFS_FNEK_ENCRYPTED.FWajrN4I3jPWAkQLJWVIK2vUlvCCA.xGP0OoZskmyO2nOI0Iu8nESi6T0k--
\��>.�����UF��M��@��u�@3��
 :
���,o�[�7_��2C�W��uᖭ^r��9���n��F�H�����E�Z��`"S�!�
 :
[root@lpic303-rocky34 ~]#

5. 再度マウントする

暗号化が解除されてファイルが閲覧できる

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# mount -t ecryptfs ecryptfs-dir ecryptfs-dir
Select key type to use for newly created files:
 1) passphrase
 2) pkcs11-helper
 3) tspi
Selection: 
Passphrase:   <---★"eCryptfspassword" を入力
Select cipher:
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; 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
Selection [aes]: 1
Select key bytes:
 1) 16
 2) 32
 3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [afdd919416f6e233]:
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=afdd919416f6e233
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=afdd919416f6e233
Mounted eCryptfs
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              4.0M     0  4.0M    0% /dev
tmpfs                 882M     0  882M    0% /dev/shm
tmpfs                 353M  5.7M  348M    2% /run
/dev/mapper/rl-root    46G  2.3G   43G    5% /
/dev/sda1            1014M  388M  627M   39% /boot
tmpfs                 177M     0  177M    0% /run/user/1000
/root/ecryptfs-dir     46G  2.3G   43G    5% /root/ecryptfs-dir
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# ls -l /root/ecryptfs-dir/
合計 12
-rw-r--r--. 1 root root 12  25 21:17 encrypted.txt
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# cat /root/ecryptfs-dir/encrypted.txt
secret data
[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]#

参考


この記事が気に入ったらサポートをしてみませんか?