После перехода на Arch Linux у меня возникла проблема выбора решения для шифрования домашнего каталога. Отсутствие шифрования — не вариант, потому что как минимум ноутбук могут украсть. Мне не хочется потом в панике бегать менять пароли и сбрасывать сессии на всех сайтах, от которых утекли куки. Сначала я попробовал encfs. Но это решение быстро потеряло все мои данные (не говоря уже про известную проблему с длинными именами файлов ), поэтому от него пришлось отказаться. На Reddit многие посоветовали dm-crypt, на нем я в итоге и остановился.

Примечание: Если вы читали более раннюю статью Шифрование жесткого диска во FreeBSD с помощью geli , вам может быть интересно узнать, что dm-crypt — решение полностью аналогичное, только команды называются по-другому. Еще из достойных альтернатив, пожалуй, стоит обратить внимание на VeraCrypt , актуальный нынче форк знаменитого TrueCrypt.

Итак, создаем файл размером 200 Гб под зашифрованный диск:

sudo truncate -s 200G / home / .eax
sudo chown eax:eax / home / .eax

Создаем loop-устройство:

sudo losetup / dev / loop0 / home / .eax

Инициализируем зашифрованный диск (потребуется дважды ввести пароль):

sudo cryptsetup -h sha256 -c aes-xts-plain64
-s 512 luksFormat / dev / loop0

Открываем зашифрованный диск:

sudo cryptsetup luksOpen / dev / loop0 eax_home

В результате появится устройсто /dev/mapper/eax_home. Создаем на нем ФС:

sudo mkfs.ext4 / dev / mapper / eax_home

Монтируем зашифрованный диск:

sudo mount / dev / mapper / eax_home / mnt

Меняем права на файловой системе:

sudo chown -R eax:eax / mnt

Копируем содержимое нашего домашнего каталога. Затем отмонтируем зашифрованный диск:

sudo umount / mnt

Закрываем зашифрованный диск:

sudo cryptsetup luksClose eax_home

Отсоединяем loop-устройство:

sudo losetup -d / dev / loop0

Теперь архивируем и удаляем содержимое /home/eax, затем монтируем в него зашифрованный диск. Если все работает нормально — удаляем бэкап.

Скрипт /home/mount.sh для автоматизации монтирования:

#!/bin/sh

set -e

losetup / dev / loop0 / home / .eax
cryptsetup luksOpen / dev / loop0 eax_home
mount / dev / mapper / eax_home / home / eax

Скрипт /home/umount.sh, выполняющие обратные действия:

#!/bin/sh

set -e

umount / home / eax
cryptsetup luksClose eax_home
losetup -d / dev / loop0

Когда оригинальных данных на диске не осталось, можно заполнить свободное место мусором:

cd / home
# наберитесь терпения, это надолго (особенно без rng-tools!)
sudo dd if = / dev / urandom of =. / random.tmp bs =10M count = 6300
sync
sudo rm random.tmp

Наконец, чтобы временные файлы (те же черновики электронных писем, создаваемые Mutt ) писались на зашифрованный раздел, в ~/.bashrc следует дописать:

export TMPDIR = / home / eax / temp
mkdir -p $TMPDIR

Также с помощью dm-crypt можно зашифровать вообще всю файловую систему целиком, но это уже тема для отдельной статьи. Как обычно, куда больше информации о dm-crypt вы найдете в манах, а также в замечательной Arch Wiki .

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago