Поиск по сайту:

Зашифруйте свои данные с помощью EncFS в Ubuntu 15.10


Это руководство существует для этих версий ОС

  • Ubuntu 12.10 (квантовый кетцаль)

На этой странице

  1. 1 Предварительное примечание
    1. Информация о безопасности Encfs

    EncFS предоставляет зашифрованную файловую систему в пользовательском пространстве. Он работает без каких-либо специальных разрешений и использует библиотеку FUSE и модуль ядра Linux для предоставления интерфейса файловой системы. Это сквозная файловая система, а не зашифрованное блочное устройство, что означает, что оно создается поверх существующей файловой системы. В этом руководстве показано, как вы можете использовать EncFS в Ubuntu 15.10 (Wiley Werewolf) для шифрования ваших данных.

    1 Предварительное примечание

    В этом руководстве я использую имя пользователя falko в своей системе Ubuntu 15.10. Аудит безопасности выявил некоторые проблемы в текущей реализации encfs. Ознакомьтесь с предупреждением о безопасности ниже, чтобы решить, влияют ли эти проблемы на то, как вы хотите использовать encfs. Альтернативой encfs является ecryptfs (https://launchpad.net/ecryptfs), о которой я расскажу в другом руководстве.

    Информация о безопасности Encfs

    \Согласно аудиту безопасности, проведенному Тейлором Хорнби (Defuse Security), текущая реализация Encfs уязвима или потенциально уязвима для нескольких типов атак. Например, злоумышленник с доступом для чтения/записи к зашифрованным данным может снизить сложность расшифровки впоследствии зашифрованных данных, которые законный пользователь не заметит, или может использоваться временной анализ для получения информации. Пока эти проблемы не будут устранены, encfs не следует считать безопасным хранилищем для конфиденциальных данных в сценариях где такие атаки возможны.\

    2 Установка EncFS

    EncFS можно установить следующим образом (нужны права root, поэтому используем sudo):

    sudo apt-get install encfs

    Теперь вам следует взглянуть на справочную страницу EncFS, чтобы ознакомиться с ее параметрами:

    man encfs

    3 Использование EncFS

    Теперь я создам зашифрованные и расшифрованные каталоги в своем домашнем каталоге:

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

    Расшифрованный каталог действует как точка монтирования для зашифрованного каталога. Чтобы смонтировать ~/encrypted в ~/decrypted, просто запустите:

    encfs ~/encrypted ~/decrypted

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

    :~$ 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: <-- Enter a secure password here
    Verify Encfs Password: <-- Enter the secure password a second time

    Убедитесь, что вы помните пароль, потому что нет никакого способа восстановить ваши зашифрованные данные, если вы забудете пароль!

    Теперь вы должны найти том EncFS в выходных данных

    mount
    :~$ 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/falko/decrypted type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)

    и

    df -h
    :~$ 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/falko/decrypted

    Чтобы сохранить данные в зашифрованном виде, поместите их в расшифрованный каталог, как если бы вы делали это в обычном каталоге:

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

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

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

    ... в то время как в зашифрованном каталоге он зашифрован:

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

    Чтобы размонтировать зашифрованный том, запустите:

    cd
    fusermount -u ~/decrypted

    Проверьте выходы...

    mount

    ... и...

    df -h

    ... и вы увидите, что тома EncFS больше нет в списке.

    Чтобы смонтировать его снова, запустите

    encfs ~/encrypted ~/decrypted

    Вам будет предложено ввести пароль, который вы определили ранее:

    [электронная почта защищена]:~$encfs ~/encrypted ~/decrypted
    Пароль EncFS: <-- yoursecretpassword

    Если вы укажете правильный пароль, это смонтирует каталог ~/encrypted в ~/decrypted, откуда вы сможете получить доступ к своим зашифрованным данным в незашифрованном виде. Если вы забудете пароль, ваши зашифрованные данные будут потеряны!

    Если вы хотите изменить пароль, вы можете сделать это с помощью

    encfsctl passwd ~/encrypted

    команда.

    [электронная почта защищена]:~$encfsctl passwd ~/encrypted
    Введите текущий пароль Encfs
    Пароль EncFS: <-- yoursecretpassword
    Введите новый пароль Encfs
    Новый пароль Encfs: <-- newsecretpassword
    Подтвердите пароль Encfs: <-- newsecretpassword
    Ключ тома успешно обновлен.

    4 ссылки

    • EncFS: http://www.arg0.net/encfs
    • Убунту: http://www.ubuntu.com/