1. Утилита Cryptsetup.
Утилита Cryptsetup позволят облегчить шифрование раздела Linux с помощью модуля dm-crypt. Давайте сначала ее установим.
В Debian или Ubuntu, для этого используйте такую команду:
# apt install cryptsetup
В дистрибутивах, основанных на Red Hat это будет выглядеть так:
# yum install cryptsetup-luks
Синтаксис запуска команды такой:
$ cryptsetup опции операция параметры_операции
Рассмотрим основные операции, которые можно сделать с помощью этой утилиты:
- luksFormat — создать зашифрованный раздел luks linux;
- luksOpen — подключить виртуальное устройство (нужен ключ);
- luksClose — закрыть виртуальное устройство luks linux;
- luksAddKey — добавить ключ шифрования;
- luksRemoveKey — удалить ключ шифрования;
- luksUUID — показать UUID раздела;
- luksDump — создать резервную копию заголовков LUKS.
Параметры операции зависят от самой операции, обычно это либо физическое устройство, с которым нужно произвести действие, либо виртуальное или и то и другое. Еще не все понятно, но на практике, я думаю, вы со всем разберетесь.
2. Шифрование диска Linux.
Теория пройдена, все инструменты готовы. Теперь рассмотрим шифрование раздела Linux. Перейдем к настройке жесткого диска. Обратите внимание, что это удалит все данные из диска или раздела, который вы собираетесь зашифровать. Так что если там есть важные данные, лучше скопируйте их в более надежное место.
2.1. Создание раздела.
В этом примере мы будем шифровать раздел /dev/sda6, но вместо него вы можете использовать целый жесткий диск или просто один файл, заполненный нулями. Создаем шифрованный раздел:
# cryptsetup -y -v luksFormat /dev/sdb1
Эта команда выполнит инициализацию раздела, установит ключ инициализации и пароль. Сначала надо подтвердить создание виртуального шифрованного диска набрав YES, затем нужно указать пароль. Указывайте такой пароль, чтобы его потом не забыть.
Теперь вы можете увидеть новое виртуальное устройство /dev/mapper/backup2 созданное с помощью команды luksFormat:
# ls -l /dev/mapper/backup2
Чтобы посмотреть состояние устройства выполните:
# cryptsetup -v status backup2
А с помощью следующей команды вы можете сделать резервную копию заголовков LUKS на всякий случай:
# cryptsetup luksDump /dev/sdb1
Ну, можно сказать, раздел готов. И что самое интересное, теперь вы можете им пользоваться так же, как и любым другим обычным разделом в каталоге /dev. Его можно форматировать с помощью стандартных утилит, записывать на него данные, изменять или проверять файловую систему и т д. Нельзя только изменить размер. То есть все полностью прозрачно, как и сказано в начале статьи.
2.2. Форматирование раздела.
Давайте для начала отформатируем диск. Для надежности, чтобы стереть все данные, которые были в этом месте раньше, перезапишем наш шифрованный раздел linux нулями. Это уменьшит вероятность взлома шифрования, через увеличение количества случайной информации. Для этого выполните:
# dd if=/dev/zero of=/dev/mapper/backup2
Работа утилиты может занять несколько часов, чтобы иметь возможность наблюдать за процессом, используйте pv:
# pv -tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M
Когда процесс завершится мы можем отформатировать устройство в любую файловую систему. Например, отформатируем в ext4:
# mkfs.ext4 /dev/mapper/backup2
Как видите, все команды cryptsetup применяются к физическому разделу, в то время как остальные команды для работы с дисками — к нашему виртуальному.
2.3. Монтирование раздела.
Теперь можно примонтировать только, что созданную файловую систему:
# mkdir /backup2
# mount /dev/mapper/backup2 /backup2
# ls -l /backup2
2.4. Отключение раздела.
Все работает, но как отключить устройство и защитить данные. Для этого выполните:
# umount /backup2
# cryptsetup luksClose backup2
2.5. Повторное монтирование.
Чтобы снова получить возможность работать с зашифрованным разделом с помощью LUKS linux необходимо опять его открыть:
# cryptsetup luksOpen /dev/sdb1 backup2
Теперь можем монтировать:
# mount /dev/mapper/backup2 /backup2
2.6. Проверить файловую систему luks.
Поскольку после открытия раздела с помощью luks linux, этот раздел воспринимается системой, как и все другие, вы можете просто использовать утилиту fsck:
# umount /backup2
# fsck -vy /dev/mapper/backup2
# mount /dev/mapper/backup2 /backu2
2.7. Изменить парольную фразу luks.
Шифрование дисков Linux выполняется с определенной парольной фразой, но вы можете ее изменить. Даже больше, вы можете создать до восьми разных парольных фраз. Для изменения выполнив следующие команды. Сначала сделаем резервную копию заголовков LUKS:
# cryptsetup luksDump /dev/sdb1
Затем создадим новый ключ:
# cryptsetup luksAddKey /dev/sdb1
И удалим старый:
# cryptsetup luksRemoveKey /dev/sdb1
Сейчас вам придется ввести еще старый пароль.