Шифрование на Linux: что использовать и когда
Один из клиентов обратился после того, как у него украли ноутбук с незашифрованным диском. Там были договоры, клиентская база, финансовые документы. Диск вытащили и прочитали за пять минут. После этого разговора я написал себе заметку: объяснить нормально, какие инструменты есть и когда их использовать.
Шифрование на Linux — не сложно. Сложно понять, что именно нужно в конкретной ситуации.
Четыре инструмента — четыре задачи
Коротко о том, что существует:
- LUKS — шифрует целый раздел или диск
- eCryptfs — шифрует домашний каталог пользователя
- GPG — шифрует отдельные файлы
- VeraCrypt — создаёт зашифрованный контейнер-файл
Это не взаимозаменяемые вещи. Выбор зависит от того, что именно ты защищаешь.
LUKS: шифруем весь раздел
Подходит для серверов, рабочих станций, внешних дисков. Если диск вытащат физически — без пароля данные не читаются.
sudo apt install cryptsetup
sudo cryptsetup luksFormat /dev/sdX # форматируем раздел
sudo cryptsetup open /dev/sdX encrypted_volume # открываем
sudo mkfs.ext4 /dev/mapper/encrypted_volume # создаём файловую систему
/dev/sdX — замени на свой раздел, например /dev/sdb1.
Это нужно делать до того, как на раздел попадут данные, или при первоначальной настройке сервера. Постфактум — сложнее.
eCryptfs: шифруем домашний каталог
Когда нужно защитить данные конкретного пользователя, а не весь диск. Хорошо работает на многопользовательских системах.
Важный момент: перед миграцией нужно выйти из учётной записи пользователя, которого шифруешь. Делай это из другой сессии.
sudo apt install ecryptfs-utils -y
sudo ecryptfs-migrate-home -u user_name
После миграции зайди под этим пользователем, убедись что данные на месте, и смени пароль:
passwd
ecryptfs-unwrap-passphrase
Перед запуском — сделай бэкап. Всегда. Если процесс прервётся в середине, без бэкапа данные можно потерять.
GPG: шифруем отдельные файлы
Нужно передать файл с договором или зашифровать конкретный документ перед отправкой — это GPG. Минимальный набор команд:
gpg -c file.txt # зашифровать, создаст file.txt.gpg
gpg file.txt.gpg # расшифровать
Простой симметричный режим с паролем. Для регулярного обмена файлами между системами можно настроить ключи, но это уже отдельная история.
VeraCrypt: зашифрованный контейнер
Создаёт файл-контейнер, который монтируется как обычный диск. Удобно для переносного хранилища с чувствительными данными — контейнер можно копировать, перемещать, делать бэкап.
sudo apt install veracrypt
veracrypt -c /path/to/container
Дальше интерактивный мастер: размер, алгоритм шифрования, пароль. VeraCrypt кроссплатформенный — контейнер откроется и на Windows, и на macOS.
Что выбрать
| Задача | Инструмент |
|---|---|
| Защитить весь диск или сервер | LUKS |
| Защитить данные одного пользователя | eCryptfs |
| Зашифровать конкретный файл | GPG |
| Переносное зашифрованное хранилище | VeraCrypt |
Чаще всего на сервере ставят LUKS на этапе установки системы и больше не думают об этом. GPG добавляют по мере необходимости — для скриптов, которые передают файлы между системами. VeraCrypt — для бэкапов, которые уходят на внешний носитель или в облако.
Главное правило: шифрование не заменяет бэкап. Если забудешь пароль от LUKS-раздела — данные не восстановить. Пароли нужно хранить отдельно, в менеджере паролей.
Если нужно выстроить нормальную защиту данных на серверах или настроить шифрование в инфраструктуре — пиши на [email protected] или заходи на 1it.pro.