eCryptfs je skládaný kryptografický souborový systém podnikové třídy pro Linux kompatibilní s POSIX. Můžete jej použít k šifrování oddílů a také adresářů, které nepoužívají vlastní oddíl, bez ohledu na základní souborový systém, typ oddílu atd. Tento tutoriál ukazuje, jak používat eCryptfs k šifrování adresáře v Debianu Jessie.
1 předběžná poznámka
V tomto tutoriálu zašifruji svůj domovský adresář /home/falko/, který se nachází na oddílu / (tj. /home/falko/ je obyčejný adresář a nepoužívá vlastní oddíl).
2 Instalace eCryptfs
eCryptfs lze snadno nainstalovat následovně:
apt-get -y install ecryptfs-utils
3 Šifrování adresáře
Nyní zašifruji svůj domovský adresář /home/falko/. Protože v tomto adresáři již jsou (nešifrované) soubory, musím si je udělat zálohu, abych je mohl později obnovit do tehdy zašifrovaného adresáře /home/falko/ (jinak tyto soubory nelze přistupovat/číst, když je adresář zašifrované):
cp -pfr /home/falko/ /tmp/
Nyní mohu zašifrovat adresář /home/falko/ jeho připojením pomocí souborového systému typu ecryptfs:
mount -t ecryptfs /home/falko /home/falko
Když to uděláte poprvé, budete muset odpovědět na několik otázek:
[e-mail chráněný]:/tmp# mount -t ecryptfs /home/falko /home/falko
Vyberte typ klíče, který chcete použít pro nově vytvořené soubory:
1) tspi
2) přístupová fráze
Výběr:<-- 2
Přístupová fráze:<-- Zadejte bezpečné heslo
Vyberte šifru:
1) aes:blockize =16; minimální velikost klíče =16; max. velikost klíče =32
2) blowfish:blockize =8; minimální velikost klíče =16; max. velikost klíčů =56
3) des3_ede:velikost bloků =8; minimální velikost klíče =24; max. velikost klíče =24
4) twofish:blockize =16; minimální velikost klíče =16; max velikost klíče =32
5) cast6:velikost bloku =16; minimální velikost klíče =16; max. velikost klíče =32
6) cast5:velikost bloku =8; minimální velikost klíče =5; max. velikost klíče =16
Výběr [aes]:<-- Stiskněte ENTER
Vyberte bajty klíče:
1) 16
2) 32
3) 24
Výběr [16]: <-- Stiskněte ENTER
Povolit průchod ve formátu prostého textu (y/n) [n]: <-- Stiskněte ENTER
Povolit šifrování názvu souboru (y/n) [n]: <- - Stiskněte ENTER
Při pokusu o připojení s následujícími možnostmi:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=bd28c38da9fc938b
Na základě WARNING obsah [/root/.ecryptfs/sig-cache.txt],
zdá se, že jste s tímto klíčem nikdy
nepřipojili. Může to znamenat, že jste
heslo zadali špatně.
Přejete si pokračovat v montáži (ano/ne)? : <-- yes
Chcete připojit sig [bd28c38da9fc938b] k
[/root/.ecryptfs/sig-cache.txt]
abyste se v budoucnu vyhnuli tomuto varování ( Ano ne)? :<-- yes
Úspěšně připojen nový sig k souboru mezipaměti sig uživatele
Připojený eCryptfs
[e-mail chráněný]:/home/administrator#
Podívejte se na výstup
mount
a měli byste vidět, že /home/falko/ je nyní zašifrováno:
Obnovme naši zálohu do nyní zašifrovaného adresáře /home/falko/ a poté zálohu smažte:
cp -pfr /tmp/falko/ /home/
rm -fr /tmp/falko/
Pro účely testování zkopírujme nějaký jiný soubor, např. /etc/hosts, do /home/falko/, abyste zkontrolovali, zda je skutečně zašifrován:
cp /etc/hosts /home/falko
Zatímco /home/falko/ je připojeno s typem souborového systému ecryptfs, mělo by být možné číst obsah /home/falko/hosts:
cat /home/falko/hosts
Nyní odpojte /home/falko/...
umount /home/falko
... a zkuste znovu přečíst /home/falko/hosts a měli byste získat nějaké záhadné věci:
cat /home/falko/hosts
4 Jak automaticky připojit šifrovaný oddíl při spouštění
Samozřejmě nechceme /home/falko/ připojovat pokaždé ručně - bylo by hezčí, kdyby bylo možné připojovat automaticky při bootování. K tomu potřebujeme soubor s přístupovou frází a z bezpečnostních důvodů chci, aby byl tento soubor s přístupovou frází umístěn na USB klíči.
Zapojte USB klíč a spusťte
fdisk -l
zjistit název zařízení a typ systému souborů:
[e-mail chráněno]:~# fdisk -l
Disk /dev/sda: 32,2 GB, 32212254720 bajtů
255 hlav, 63 sektorů/stopa, 3916 cylindrů
Jednotky = cylindry 16065 * 512 = 8225280 bajtů
Velikost sektoru (logická/fyzická): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální):> 512 1 2 bajtů / 5 Identifikátor disku:0x00035E35
Systém startovacího konce zařízení
/dev /sda1*1 3793 30461952 83 Linux
/dev /sda2 3793 3917 992257 5
/dev/sda5 3793 3917 992256 82 Linux swap / Solaris
Disk /dev/sdb:8086 MB/609s cylindr <6 MB /29580 bytů cylindr 8086 MB /295 380 cylindr = cylindry 16065 * 512 = 8225280 bajtů
Velikost sektoru (logická/fyzická): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / brisk /512 bajtů identifikátor: 0x000e439f
Zařízení Boot Začátek Konec Bloky I d Systém
/dev/sdb1 983 7895916 b W95 FAT32
[e-mail chráněný]:~#
V mém případě je název zařízení /dev/sdb1 a používá systém souborů FAT32.
Připojíme USB klíč k /mnt/usb:
mkdir /mnt/usb
připojit /dev/sdb1 /mnt/usb
Podívejte se na výstup
mount
... a měli byste vidět, že se připojil pomocí souborového systému typu vfat (FAT32) - tyto informace budeme později potřebovat pro náš soubor /etc/fstab:
[e-mail chráněný]:~# připojení
sysfs na /sys typu sysfs (rw,nosuid,nodev,noexec,relatime)
proc na /proc typu proc (rw,nosuid,nodev,noexec ,relatime)
udev na /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=124251,mode=755)
devpts na /dev/pts typu devpts (rw,nosuid,noexec,relatime ,gid=5,mode=620,ptmxmode=000)
tmpfs na /spustit typ tmpfs (rw,nosuid,relatime,size=202132k,mode=755)
/dev/sda1 on / typ ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs na /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs na /dev/shm zadejte tmpfs (rw,nosuid,nodev)
tmpfs na /run/lock typ tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs na /sys/fs/cgroup typ tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup na /sys/fs/cgroup/systemd typu cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd -cgroups-agent,name=systemd)
pstore na /sys/fs/pstore typu pstore (rw,nosuid,nodev,noexec,rel atime)
cgroup na /sys/fs/cgroup/cpuset typu cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup na /sys/fs/cgroup/cpu,cpuacct typu cgroup ( rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup na /sys/fs/cgroup/devices typu cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup na / cgroup typu sys/fs/cgroup/freezer (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup na /sys/fs/cgroup/net_cls,net_prio typ cgroup (rw,nosuid,nodev,noexec,relatime ,net_cls,net_prio)
cgroup na /sys/fs/cgroup/blkio typu cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup na /sys/fs/cgroup/perf_event typ cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 na /proc/sys/fs/binfmt_misc typu autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue na /dev/mqueue typu mqueue (rw,relatime)
debugfs na /sys/kernel/debug typu debugfs (rw,relatime)
hugetlbfs na /dev/hugepages typ hugetlbfs (rw,relatime)
rpc_pipefs na /run/ rpc_pipefs typ rpc_pipefs (rw,relatime)
/dev/sdb1 na /mnt/usb typ vfat (rw)
[e-mail chráněný]:~#
Nyní se podívejte na obsah /root/.ecryptfs/sig-cache.txt:
cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b
Tento podpis potřebujeme pro soubor /root/.ecryptfsrc, který vytvoříme následovně:
nano /root/.ecryptfsrc
Ujistěte se prosím, že používáte podpis ze souboru /root/.ecryptfs/sig-cache.txt v řádku ecryptfs_sig:
key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txtecryptfs_sig=bd28c38da9fc938becryptfs_cipher=aesecryptfs_key_bytes=16ecryptfs_passthrough=necryptfs_crypto_file>Nyní vytvoříme soubor přístupového hesla na našem USB klíči:
nano /mnt/usb/passwd_file.txtpassphrase_passwd=some_passphraseUjistěte se, že používáte správnou přístupovou frázi, tj. přístupovou frázi, kterou byste použili, kdybyste adresář připojili ručně.
Dále otevřete /etc/fstab...
nano /etc/fstab... a přidejte následující dva řádky (ujistěte se, že používáte správný typ systému souborů pro váš USB klíč – v mém případě vfat):
[...]/dev/sdb1 /mnt/usb vfat ro 0 0/home/falko /home/falko výchozí nastavení ecryptfs 0 0(Je důležité, aby řádek pro klíč USB předcházel řádku pro šifrovaný oddíl, protože před připojením šifrovaného oddílu je třeba připojit klíč USB!)
Poté restartujte systém:
restartovatPokud vše půjde dobře, váš šifrovaný oddíl by měl být po restartu automaticky připojen. Je však možné, že váš systém nemůže připojit váš USB klíč během spouštění, což znamená, že nelze připojit ani váš šifrovaný oddíl. Pokud k tomu dojde, upravte /etc/rc.local (tento skript se spustí na konci procesu spouštění)...
nano /etc/rc.local... a přidejte řádek /bin/mount -a před výstupní řádek 0:
#!/bin/sh -e## rc.local## Tento skript se spustí na konci každé úrovně běhu pro více uživatelů.# Ujistěte se, že skript "ukončí 0" při úspěchu nebo jakoukoli jinou# hodnotu při chybě. ## Chcete-li povolit nebo zakázat tento skript, stačí změnit provádění# bitů.## Ve výchozím nastavení tento skript nedělá nic./bin/mount -aexit 0Tím se (znovu) připojí všechny oddíly (včetně vašeho USB klíče a šifrovaného oddílu) na konci procesu spouštění.
5 odkazů
- eCryptfs:https://launchpad.net/ecryptfs
- Debian:http://www.debian.org/