Домены
Интересные статьи
Домены

Шифрование данных с помощью EncFS в Ubuntu 15.10

EncFS предоставляет собой зашифрованную файловую систему. Она работает без каких-либо специальных прав и использует ядро Linux вместе с библиотекой FUSE для предоставления интерфейса файловой системы.
Это файловая система, а не шифрованный контейнер, она работает поверх существующей файловой системы.

В данной статье я расскажу как реализовать шифрование данных с помощью EncFS в Ubuntu 15.10

Исходные данные:

  • Ubuntu 15.10
  • Пользователь cyber01 с sudo правами

Установим EncFS с помощью команды:

sudo apt-get install encfs

После установки вы можете посмотреть страницы manпо EncFS

man encfs

Настройка EncFS

Я создам две директории encrypted и decrypted в домашней директории пользователя

mkdir -p ~/encrypted
mkdir -p ~/decrypted

Директория decrypted это точка монтирования директории encrypted.
Для того, чтобы примонтировать ~/encrypted в ~/decrypted выполните:

encfs ~/encrypted ~/decrypted

Если вы выполните эту команду первый раз, это создаст первичную конфигурацию EncFS и вам потребуется задать пароль к шифрованной папке.

cyber01@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 4:0:2
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: <— Введите здесь ваш пароль
Verify Encfs Password: <— Введите ваш пароль еще раз

Запомните пароль т.к. восстановить данные в случае его утраты будет невозможно!

Посмотрим, как выглядит точка монтирования EncFS в mount:

mount

cyber01@desktop:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1006420k,nr_inodes=251605,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204480k,mode=755)
/dev/mapper/server1—vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=21,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type ext2 (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204480k,mode=700,uid=1000,gid=1000)
encfs on /home/cyber01/decrypted type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)

и 

df -h

cyber01@desktop:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 983M 0 983M 0% /dev
tmpfs 200M 4.9M 195M 3% /run
/dev/dm-0 28G 1.7G 25G 7% /
tmpfs 999M 0 999M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 999M 0 999M 0% /sys/fs/cgroup
/dev/sda1 236M 51M 173M 23% /boot
tmpfs 200M 0 200M 0% /run/user/1000
encfs 28G 1.7G 25G 7% /home/cyber01/decrypted

Для шифрования данных поместим их в директорию decrypted (сейчас она выглядит как обычная директория):

cd ~/decrypted
echo "hello foo" > foo
echo "hello bar" > bar
ln -s foo foo2

Если посмотреть содержимое директории, увидим, что там лежат незашифрованные данные:

ls -l

cyber01@desktop:~/decrypted$ ls -l
total 8
-rw-rw-r— 1 cyber01 cyber01 10 Nov 10 14:57 bar
-rw-rw-r— 1 cyber01 cyber01 10 Nov 10 14:57 foo
lrwxrwxrwx 1 cyber01 cyber01 3 Nov 10 14:57 foo2 -> foo

НО, в директории encrypted это выглядит так:

cd ~/encrypted
ls -l

cyber01@desktop:~/encrypted$ ls -l
total 8
lrwxrwxrwx 1 cyber01 cyber01 24 Nov 10 14:57 gIKlbEtIpTfiGOCy,wKFpMFd -> nZgFI3s62v5LtaHOu-V4lUSy
-rw-rw-r— 1 cyber01 cyber01 26 Nov 10 14:57 mEqwt,ssEJhGYpN8HfJMoVxk
-rw-rw-r— 1 cyber01 cyber01 26 Nov 10 14:57 nZgFI3s62v5LtaHOu-V4lUSy

Чтобы отмонтировать директорию, выполните:

fusermount -u ~/decrypted

Проверим вывод mount и df -h и увидим, что там больше нет раздела EncFS.

Для повторного монтирования директории выполним ту же команду:

encfs ~/encrypted ~/decrypted

У вас спросят пароль, который вы указали раньше:

cyber01@desktop:~$ encfs ~/encrypted ~/decrypted
EncFS Password: <— Введите ваш пароль

Если вы указали корректный пароль, то вы увидите расшированные данные в директории ~/decrypted
Если вы хотите изменить пароль, выполните:

encfsctl passwd ~/encrypted

cyber01@desktop:~$ encfsctl passwd ~/encrypted
Enter current Encfs password
EncFS Password: <— Введите ваш старый пароль
Enter new Encfs password
New Encfs Password: <— Введите ваш новый пароль
Verify Encfs Password: <— Введите ваш новый пароль
Volume Key successfully updated.

Вот и всё 🙂
 

Обо мне cyber01

Прочитайте также

Как установить Java с помощью apt в Ubuntu 20.04

Java один из самых популярных языков программирования, а JVM (Java’s virtual machine) используется в качестве окружения для запуска …

Как сделать дамп только нужных записей из базы данных

Бывало такое, что из всей таблицы нужно сделать дамп только определенных строк? Например, результата какого-либо …

Как установить Zend Framework на Ubuntu 18.04

Zend Framework 3 это последняя версия фреймворка. Новая версия отличается большей производительностью. Zend это фреймворк …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *