Szyfrowanie katalogu domowego
Za pomocą EncFS i modułu pam_encfs można w stosunkowo prosty sposób utworzyć szyfrowane katalogi domowe użytkowników.
Spis treści |
[edytuj] Ingrediencje
Co będzie potrzebne:
[edytuj] Instrukcja
Instalacja:
- Instalujemy EncFS i pam_encfs.
- Należy aktywować pam_encfs według załączonej dokumentacji; w Debianie, jeśli konfiguracja PAM nie była modyfikowana, wystarczy w pliku etc/pam.d/common-auth umieścić wiersze:
- auth sufficient pam_encfs.so
- auth required pam_unix.so nullok_secure use_first_pass
- Jeśli chcemy, by przy wylogowaniu EncFS próbował odmontować zaszyfrowane konto użytkownika, należy w tym pliku dopisasć jeszcze wiersz:
- session required pam_encfs.so
- Jeśli konto użytkownika, jeszcze nie istnieje, należy je utworzyć (jako root); przyjmijmy, że użytkownik będzie miał login zofia:
- adduser zofia
- Utworzyć katalog, w którym będą przechowywane zaszyfrowane pliki użytkownika:
- mkdir -p /home/.enc/zofia
- chown zofia:zofia /home/.enc/zofia
- chmod og-rwx /home/.enc/zofia
- Utworzyć i zamontować szyfrowany system plików dla użytkownika:
- mkdir /mnt/tmp
- encfs /home/.enc/zofia /mnt/tmp
- (encfs poprosi o hasło)
- Upewnić się, że użytkownik nie jest zalogowany i nie działają żadne jego procesy:
- slay -clean zofia
- Skopiować zawartość katalogu domowego użytkownika do szyfrowanego filesystemu:
- cd /home/zofia
- tar --one-file-system -cf- . | ( cd /mnt/tmp/ && tar -xf- )
- Zachować tymczasowo (na wszelki wypadek) oryginalny katalog domowy użytkownika:
- cd /home/
- mv zofia zofia.bak
- Utworzyć w jego miejsce nowy, pusty katalog:
- mkdir zofia
- chown zofia:zofia zofia
- chmod og-rwx zofia
- Odmontować zaszyfrowany katalog:
- fusermount -u /mnt/tmp
- rmdir /mnt/tmp
- Zmienić uprawnienia zaszyfrowanych plików:
- chown -R zofia:zofia /home/.enc/zofia
- W Debianie konieczne jest też dodanie użytkownika do grupy fuse, gdyż tylko członkowie tej grupy mogą korzystać z FUSE, a co za tym idzie – z EncFS:
- adduser zofia fuse
- Zmienić uniksowe hasło użytkownika zofia na takie, jakie podaliśmy przy tworzeniu zaszyfrowanego systemu plików (oba hasła muszą być identyczne, inaczej to nie zadziała)
- passwd zofia
- (tu podać hasło)
- Jako użytkownik zofia spróbować się zalogować.
[edytuj] Pliki konfiguracyjne
Może okazać się konieczne podkonfigurowanie pewnych opcji. W grę wchodzą następujące pliki konfiguracyjne:
- wspomniany już wcześniej plik konfiguracyjny /etc/pam.d/common-auth, zawierający wspólne wymagania dotyczące autentykacji użytkowników (dotyczy Debiana, w innych dystrybucjach może to być rozwiązane odmiennie);
- plik konfiguracyjny modułu pam_encfs: /etc/security/pam_encfs.conf;
- plik konfiguracyjny FUSE (standardowo nie istnieje): /etc/fuse.conf.
Plik /etc/security/pam_encfs.conf może wyglądać następująco:
#Note that I dont support spaces in params #So if your for example gonna specify idle time use --idle=X not -i X. #If this is specified program will attempt to drop permissions before running encfs. (will not work with --public for example) drop_permissions #This specifies default encfs options encfs_default --idle=1 #Same for fuse, note that allow_root (or allow_other, or --public in encfs) is needed to run gdm/X. fuse_default allow_root,nonempty #- means match all, put any overrides over it. #if - is in username it will take source path + "/$USER", and mount to $HOME #USERNAME SOURCE TARGET PATH ENCFS Options FUSE Options #user /home/.enc/user /home/user -v,--idle=1,-test,-test2 allow_root - /home/.enc - -v allow_root
Należy zwrócić uwagę na opcje allow_root. Pozwalają one rootowi na dostęp do odszyfrowanej zawartości zamontowanego katalogu domowego użytkownika. Ogólne rzecz biorąc jest to niepożądane, ale konieczne, by możliwe było zalogowanie się użytkownika z poziomu display managera, jak xdm, kdm, czy gdm. Jeśli taka możliwość nie jest konieczna, opcję allow_root należy usunąć, przy czym w "tablicy montowania" na końcu pliku kolumna "FUSE Options" nie może być pusta, więc allow_root można zastąpić minusem (-):
#USERNAME SOURCE TARGET PATH ENCFS Options FUSE Options #user /home/.enc/user /home/user -v,--idle=1,-test,-test2 allow_root - /home/.enc - -v -
Jeśli przeciwnie – chcemy udostępnić wszystkim użytkownikom pliki, należy zastąpić allow_root przez allow_other.
Zarówno allow_root jak i allow_other wymagają, by w pliku konfiguracyjnym /etc/fuse.conf znajdował się wiersz:
- user_allow_other
Wiersz:
- encfs_default --idle=1
w pliku /etc/security/pam_encfs specyfikuje, że zaszyfrowany system plików zostanie odmontowany automatycznie, gdy nie będzie używany przez 1 minutę. Jest to przydatne, gdy nie uda się odmontować katalogu domowego przy wylogowywaniu użytkownika (bo np. zostawił jakiś proces działający w tle).
[edytuj] Zobacz też
- Szyfrowanie partycji wymiany
- Artykuły w Linux Journal, opisujące inną metodę szyfrowania katalogów domowych (nieco przestarzałą), jak też głównego systemu plików.
- System encryption on Debian Etch
- How To Boot Encrypted Debian Hard Disk Partitions From USB Stick