GNU/Linux >> Znalost Linux >  >> Debian

Jak šifrovat adresáře/oddíly pomocí eCryptfs na Debianu 8 (Jessie)

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.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...

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:

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 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 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í.

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

Debian
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. Jak zjistit, ze které složky běží proces?

  1. Debian – Přesunutí /var, /home do samostatného oddílu?

  2. Proč dávat věci jiné než /home do samostatného oddílu?

  3. Jak změnit výchozí /tmp na /home/user/tmp

  1. Jak změnit montážní body?

  2. „Nelze vytvořit adresář mezipaměti /home//.composer/cache/repo/https—packagist.org/, nebo adresář není zapisovatelný. Pokračovat bez mezipaměti“?

  3. Jak systemd-tmpfiles vyčistí /tmp/ nebo /var/tmp (náhrada tmpwatch) v CentOS / RHEL 7