Tutorial ini menunjukkan cara menggunakan eCryptfs untuk mengenkripsi direktori di Ubuntu 16.04 (Xenial Xerus). eCryptfs adalah sistem file kriptografi bertumpuk kelas perusahaan yang sesuai dengan POSIX untuk Linux. Anda dapat menggunakannya untuk mengenkripsi partisi dan juga direktori yang tidak menggunakan partisinya sendiri, tidak peduli sistem file yang mendasarinya, jenis partisi, dll.
1 Catatan Awal
Dalam tutorial ini, saya akan mengenkripsi direktori baru /home/secure. ini adalah direktori biasa dan tidak menggunakan partisinya sendiri.
2 Memasang eCryptfs
eCryptfs dapat dengan mudah diinstal sebagai berikut:
apt-get -y install ecryptfs-utils
3 Mengenkripsi direktori dengan eCryptfs
Sekarang saya akan mengenkripsi direktori baru /home/secure/. Buat direktori dengan perintah mkdir:
mkdir /home/secure
Jika Anda menggunakan direktori yang ada maka mungkin sudah ada file (tidak terenkripsi) di direktori tersebut. Dalam hal ini Anda harus mengambil cadangannya sehingga Anda dapat mengembalikannya ke direktori /home/secure/ yang kemudian dienkripsi (jika tidak, file ini tidak dapat diakses/dibaca saat direktori dienkripsi):
cp -pfr /home/secure/ /tmp/
Sekarang saya dapat mengenkripsi direktori /home/secure/ dengan memasangnya dengan jenis sistem file ecryptfs:
mount -t ecryptfs /home/secure /home/secure
Ketika Anda melakukan ini untuk pertama kalinya, Anda harus menjawab beberapa pertanyaan:
[email protected]:~# mount -t ecryptfs /home/secure /home/secure
Passphrase: <-- Enter a secure password
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]: <-- Press ENTER
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: <-- 32
Enable plaintext passthrough (y/n) [n]: <-- Press ENTER
Enable filename encryption (y/n) [n]: <-- Press ENTER
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=bd28c38da9fc938b
Mounted eCryptfs
[email protected]:~#
Pengaturan default yang saya pilih di sini mengenkripsi konten file tetapi bukan nama file. Jika Anda juga ingin mengamankan nama file, harap aktifkan opsi enkripsi nama file selama penyiapan di atas.
Lihatlah output dari
mount
dan Anda akan melihat bahwa /home/secure/ sekarang dienkripsi:
[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,nosuid,relatime,size=1002992k,nr_inodes=250748,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,noexec,relatime,size=204440k,mode=755)
/dev/mapper/server1--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered,jqfmt=vfsv0,usrjquota=quota.user,grpjquota=quota.group)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type 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,nsroot=/)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids,nsroot=/)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer,nsroot=/)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio,nsroot=/)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,nsroot=/)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,nsroot=/)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct,nsroot=/)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio,nsroot=/)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory,nsroot=/)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event,nsroot=/)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices,nsroot=/)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type ext2 (rw,relatime,block_validity,barrier,user_xattr,acl)
tmpfs on /run/lxcfs/controllers type tmpfs (rw,relatime,size=100k,mode=700)
devices on /run/lxcfs/controllers/devices type cgroup (rw,relatime,devices,nsroot=/)
perf_event on /run/lxcfs/controllers/perf_event type cgroup (rw,relatime,perf_event,nsroot=/)
memory on /run/lxcfs/controllers/memory type cgroup (rw,relatime,memory,nsroot=/)
net_cls,net_prio on /run/lxcfs/controllers/net_cls,net_prio type cgroup (rw,relatime,net_cls,net_prio,nsroot=/)
cpu,cpuacct on /run/lxcfs/controllers/cpu,cpuacct type cgroup (rw,relatime,cpu,cpuacct,nsroot=/)
cpuset on /run/lxcfs/controllers/cpuset type cgroup (rw,relatime,cpuset,nsroot=/)
hugetlb on /run/lxcfs/controllers/hugetlb type cgroup (rw,relatime,hugetlb,nsroot=/)
blkio on /run/lxcfs/controllers/blkio type cgroup (rw,relatime,blkio,nsroot=/)
freezer on /run/lxcfs/controllers/freezer type cgroup (rw,relatime,freezer,nsroot=/)
pids on /run/lxcfs/controllers/pids type cgroup (rw,relatime,pids,nsroot=/)
name=systemd on /run/lxcfs/controllers/name=systemd type cgroup (rw,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd,nsroot=/)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204440k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=204440k,mode=700)
/home/secure on /home/secure type ecryptfs (rw,relatime,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs)
[email protected]:~#
Saat menggunakan direktori yang ada:Mari pulihkan cadangan kita ke direktori /home/secure/ yang sekarang terenkripsi dan hapus cadangan setelahnya:
cp -pfr /tmp/secure/ /home/
rm -fr /tmp/secure/
Untuk tujuan pengujian, mari salin beberapa file lain, mis. /etc/hosts, ke /home/secure/ untuk memeriksa apakah itu benar-benar dienkripsi:
cp /etc/hosts /home/secure
Saat /home/secure/ dipasang dengan jenis sistem file ecryptfs, konten /home/secure/hosts seharusnya dapat dibaca:
cat /home/secure/hosts
Sekarang unmount /home/secure/...
umount /home/secure
... dan coba lagi untuk membaca /home/secure/hosts, dan Anda akan mendapatkan beberapa hal samar:
cat /home/secure/hosts
4 Tautan
- eCryptfs:https://launchpad.net/ecryptfs
- Debian:http://www.debian.org/