Библиотека сайта rus-linux.net
Шифрование данных с помощью EncFS (в Ubuntu 12.10)
Оригинал: Encrypt Your Data With EncFS (Ubuntu 12.10)Автор: Falko Timme
Дата публикации: 30 ноября 2012 года
Перевод: А. Кривошей
Дата перевода: январь 2013 г.
EncFS позволяет создать зашифрованную файловую систему в пользовательском пространстве. Она работает без каких-либо специальных разрешений и для обеспечения интерфейса файловой системы использует библиотеку FUSE и модуль ядра Linux. Это сквозная файловая система, а не зашифрованное блочное устройство, то есть она создается поверх уже существующей файловой системы. В данном руководстве описывается, как с ее помощью зашифровать пользовательские данные в Ubuntu 12.10.
Я не даю никакой гарантии, что у вас все будет работать так, как это описано у меня!
1. Предварительное замечание
В данном руководстве я использую имя пользователя falko и систему Debian Squeeze/Ubuntu 12.10.
2. Установка EncFS
EncFS можно установить с помощью следующей команды (требуются привилегии root, поэтому используем sudo):
$ sudo apt-get install encfs
Если теперь вы захотите поближе познакомиться с опциями EncFS, можете почитать man-страницу:
$ man encfs
3. Использование EncFS
Теперь создаем в домашней папке директории encrypted и decrypted:
$ mkdir -p ~/encrypted $ mkdir -p ~/decrypted
Директория decrypted выступает в качестве точки монтирования для директории encrypted. Монтирование ~/encrypted в ~/decrypted выполняется с помощью команды:
$ encfs ~/encrypted ~/decrypted
При первом выполнении этой команды запустится установка EncFS, и необходимо будет задать пароль для зашифрованного тома:
falko@falko-desktop:~$ encfs ~/encrypted ~/decrypted Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. ?> <-- p Paranoia configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 3:0:1 Key Size: 256 bits Block Size: 1024 bytes, including 8 byte MAC header Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File data IV is chained to filename IV. File holes passed through to ciphertext. -------------------------- WARNING -------------------------- The external initialization-vector chaining option has been enabled. This option disables the use of hard links on the filesystem. Without hard links, some programs may not work. The programs 'mutt' and 'procmail' are known to fail. For more information, please see the encfs mailing list. If you would like to choose another configuration setting, please press CTRL-C now to abort and start over. Now you will need to enter a password for your filesystem. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: <-- yoursecretpassword Verify Encfs Password: <-- yoursecretpassword falko@falko-desktop:~$
Убедитесь, что вы запомнили пароль, поскольку если вы его забудете, восстановить зашифрованные данные будет невозможно!
Теперь вы можете найти том EncFS в выводе команды mount:
$ mount falko@falko-desktop:~$ mount /dev/mapper/server1-root on / type ext4 (rw,errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) fusectl on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev) /dev/sda1 on /boot type ext2 (rw) encfs on /home/falko/decrypted type fuse.encfs (rw,nosuid,nodev,default_permissions,user=falko) falko@falko-desktop:~$
и
$ df -h falko@falko-desktop:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/server1-root 29G 1.7G 26G 6% / udev 238M 4.0K 238M 1% /dev tmpfs 99M 272K 99M 1% /run none 5.0M 4.0K 5.0M 1% /run/lock none 247M 0 247M 0% /run/shm /dev/sda1 228M 24M 193M 11% /boot encfs 29G 1.7G 26G 6% /home/falko/decrypted falko@falko-desktop:~$
Чтобы хранить свои данные в зашифрованном виде в директории decrypted, просто поместите их туда, как вы бы делали это с обычной директорией:
$ cd ~/decrypted $ echo "hello foo" > foo $ echo "hello bar" > bar $ ln -s foo foo2
Если вы проверите содержимое директории, то увидите свои данные в незашифрованном виде...
falko@falko-desktop:~/decrypted$ ls -l total 8 -rw-rw-r-- 1 falko falko 10 2012-04-17 17:47 bar -rw-rw-r-- 1 falko falko 10 2012-04-17 17:47 foo lrwxrwxrwx 1 falko falko 3 2012-04-17 17:47 foo2 -> foo falko@falko-desktop:~/decrypted$
... в то время как в директории encrypted они зашифрованы:
$ cd ~/encrypted $ ls -l falko@falko-desktop:~/encrypted$ ls -l total 8 -rw-rw-r-- 1 falko falko 26 2012-04-17 17:47 ,JeO9RDJUL7FBY25KG0zt4uL -rw-rw-r-- 1 falko falko 26 2012-04-17 17:47 KaS26yvbb8Th-J8lUCO8TBwq lrwxrwxrwx 1 falko falko 24 2012-04-17 17:47 ZYBiCw5dUfsaIQmW8RQ9pTGZ -> KaS26yvbb8Th-J8lUCO8TBwq falko@falko-desktop:~/encrypted$
Отмонтируем зашифрованный том:
$ cd $ fusermount -u ~/decrypted
Проверим вывод команды mount и теперь мы не увидим раздел EncFS в списке.
Смонтируем его снова:
$ encfs ~/encrypted ~/decrypted
Смонтируем его снова:
$ encfs ~/encrypted ~/decrypted
Вас попросят ввести пароль:
falko@falko-desktop:~$ encfs ~/encrypted ~/decrypted EncFS Password: <-- yoursecretpassword falko@falko-desktop:~$
Если введенный вами пароль верный, директория ~/encrypted будет смонтирована в ~/decrypted, где вам будут доступны зашифрованные данные. Если вы забыли пароль, можете попрощаться со своими данными!
Сменить пароль можно с помощью команды:
$ encfsctl passwd ~/encrypted