Image

База знаний → Автоматическое монтирование зашифрованного файла Luks

[Виртуальные сервера]
Дата публикации: 20.01.2024

В статье Создание зашифрованного диска на VDS Linux мы описывали как создать зашифрованный файл и монтировать его как диск. В том примере для подключения мы каждый раз вводим пароль и после работы с файлами мы его отключаем. Такой метод работы дает высокий уровень безопасности работы с данными.

Из минусов - вводимый нами каждый раз пароль может быть перехвачен если на ПК, с которого вводится пароль записываются все действия. (установлен key logger)

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

1. Создадим файл ключа

dd if=/dev/urandom of=/root/random_data_keyfile1 bs=1024 count=4

1.1 Назначим права только для root

chmod 0400 /root/random_data_keyfile1

1.2 Добавим файл ключа к нашему зашифрованному файлу

cryptsetup luksAddKey /root/crypt-drive /root/random_data_keyfile1

Enter any existing passphrase:

2. Добавим конфигурацию для автоматического подключения

2.1 Файл /etc/crypttab

# <target name>	<source device>		<key file>	<options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard

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

2.1.1 Чтобы сервер продолжил грузиться в случае отсутствия файла ключа, добавим опцию timeout

# <target name>	<source device>		<key file>	<options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard,timeout=30

Теперь ввод пароля при отсутствие файла ключа будет ожидаться 30 секунд, после чего сервер продолжит загрузку и будет доступен по сети.

2.2 Файл /etc/fstab

...
/dev/mapper/crypto-my /mnt/crypt-volume ext4 defaults 0 0

Готово, можно перезагрузить сервер и проверить.

df -h

Filesystem             Size  Used Avail Use% Mounted on
udev                   962M     0  962M   0% /dev
tmpfs                  197M  504K  197M   1% /run
/dev/sda1               62G  2.7G   56G   5% /
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
/dev/mapper/crypto-my  974M   72K  908M   1% /mnt/crypt-volume
tmpfs                  197M     0  197M   0% /run/user/0

Данный способ имеет свой минус, так как при получении физического доступа к серверу, появится возможность сбросить root пароль, а так как файл ключа хранится на сервере то и получить доступ к данным в зашифрованном разделе.





Нет комментариев