4.20 Шифрование дисков и отдельных файлов

Шифрование дисков с помощью cryptsetup
Шифрование файлов средствами gpg

Шифрование дисков с помощью cryptsetup

Создается файл размером 20 Гб (размер указывается под нужды пользователя) под зашифрованный диск — на примере домашней директории пользователя user:

sudo truncate -s 20G /home/.user
sudo chown user:user /home/.user

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

sudo losetup /dev/loop0 /home/.user

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

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

Обязательно — указать соглашение в верхнем регистре YES

Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase:

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

sudo cryptsetup luksOpen /dev/loop0 user_home

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

sudo mkfs.ext4 /dev/mapper/user_home

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

sudo mount /dev/mapper/user_home /mnt

Измените права на файловой системе:

sudo chown -R user:user /mnt

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

sudo umount /mnt

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

sudo cryptsetup luksClose user_home

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

sudo losetup -d /dev/loop0

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

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

#!/bin/sh
set -e
losetup /dev/loop0 /home/.user
cryptsetup luksOpen /dev/loop0 user_home
mount /dev/mapper/user_home /home/user

Сделайте скрипт исполняемым

chmod +x /home/mount.sh

Выполните скрипт

sudo /home/mount.sh

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

#!/bin/sh
set -e
umount /home/user
cryptsetup luksClose user_home
losetup -d /dev/loop0

Сделайте скрипт исполняемым:

chmod +x /home/umount.sh

Выполните скрипт:

sudo /home/umount.sh

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

cd /home
sudo dd if=/dev/urandom of=./random.tmp bs=10M count=6300
sync
sudo rm random.tmp

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

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

Шифрование файлов средствами gpg

Сгенерируйте свой личный ключ для шифрования файлов:

gpg --gen-key

От вас потребуется ввести имя пользователя, почта и придумать пароль.

Просмотр списка ключей доступен командами:

gpg --list-keys
gpg --list-secret-keys

Проверка отпечатка,что вы правильно сможете обратиться к ключу:

gpg --fingerprint 'user_name'

Зашифровывание содержимого каталога при помощи ключа:

tar -c -f- /home/user/Документы/* | gpg -e -c -r 'user_name'> file.tar.gpg

Расшифровывание — потребуется ввести пароль ключа:

gpg -d -o ./file.tar ./file.tar.gpg

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email