Наши партнеры

UnixForum





Библиотека сайта 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