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 Debian Squeeze.
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
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 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:
[email protected]:~# mount -t ecryptfs /home/falko /home/falko
Přístupové heslo: <-- some_passphrase
Vyberte šifru:
1) aes: velikost bloku = 16; min velikost klíče = 16; max keysize = 32 (nenačteno)
2) blowfish: blocksize = 16; min velikost klíče = 16; max keysize = 56 (nenačteno)
3) des3_ede: blocksize = 8; minimální velikost klíče = 24; max keysize = 24 (nenačteno)
4) twofish: blocksize = 16; min velikost klíče = 16; max keysize = 32 (nenačteno)
5) cast6: bloksize = 16; min velikost klíče = 16; max keysize = 32 (nenačteno)
6) cast5: bloksize = 8; min velikost klíče = 5; max keysize = 16 (nenačteno)
Výběr [aes]: <-- ENTER
Vyberte bajty klíče:
1) 16
2) 32
3) 24
Výběr [16]: <-- ENTER
Povolit průchozí prostý text (y/n) [n]: <-- ENTER
Povolit šifrování názvů souboru (y/n) [n]: <-- ENTER
Pokus o připojení pomocí následujících možností:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig/8daRNbthec Basedon /8 330099c Based obsah [/root/.ecryptfs/sig-cache.txt],
vypadá , jako byste s tímto klíčem
nikdy nepřipojili. To může značit , že jste zadali svou
přístupovou frázi špatně.
Chcete pokračovat s připojením (ano/ne)? : <-- yes
Chcete připojit sig [bd28c38da9fc938b] k
[/root/.ecryptfs/sig-cache.txt]
abyste se tomuto varování v budoucnu vyhnuli Ano ne)? : <-- yes
Úspěšně připojeno nové sig do souboru sig mezipaměti uživatele
Připojené eCryptfs
[e-mail chráněn]:~#
Podívejte se na výstup
mount
a měli byste vidět, že /home/falko/ je nyní zašifrováno:
[e-mail chráněný]:~# mount
/dev/sda1 na / zadejte ext3 (rw,errors=remount-ro)
tmpfs na /lib/init/rw typ tmpfs (rw,nosuid ,mode=0755)
proc na /proc typu proc (rw,noexec,nosuid,nodev)
sysfs na /sys typu sysfs (rw,noexec,nosuid,nodev)
udev na / dev typ tmpfs (rw,mode=0755)
tmpfs na /dev/shm typ tmpfs (rw,nosuid,nodev)
devpts na /dev/pts typ devpts (rw,noexec,nosuid,gid=5,mode=620)
/home/falko na /home/falko typu ecryptfs (rw,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink /mail[protected] ) /před>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/falkoZatí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/hostsNyní 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
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6 ÷¨Y-]«é²ùô |
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ý]:~# mount
/dev/sda1 na / zadejte ext3 (rw,errors=remount-ro)
tmpfs na /lib/init/rw typ tmpfs (rw,nosuid ,mode=0755)
proc na /proc typu proc (rw,noexec,nosuid,nodev)
sysfs na /sys typu sysfs (rw,noexec,nosuid,nodev)
udev na / dev typ tmpfs (rw,mode=0755)
tmpfs na /dev/shm typ tmpfs (rw,nosuid,nodev)
devpts na /dev/pts typ devpts (rw,noexec,nosuid,gid=5,mode=620)
/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ě:
vi /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_file>precryptenfs_key_bytes_file>precryptenfly=passn |
Nyní vytvoříme soubor přístupového hesla na našem USB klíči:
vi /mnt/usb/passwd_file.txt
passphrase_passwd=some_passphrase |
Ujistě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...
vi /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:
restartovat
Pokud 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 zavádění)...
vi /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 jakákoli jiná # hodnota 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 0 |
Tí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/