Повне шифрування диска LUKS: Посібник з налаштування сервера Linux
15 хв читання - 5 червня 2026 р.

LUKS - повне шифрування диска для серверів Linux, що охоплює налаштування LUKS2, розкладку LVM, керування ключами, віддалене розблокування за допомогою Tang і TPM, а також зміцнення.
Посібник із сервера повного шифрування диска LUKS
LUKS (Linux Unified Key Setup) шифрує весь блоковий пристрій Linux, тому його вміст неможливо прочитати без головного ключа. Вкрадений диск, виведений з експлуатації корпус, забутий резервний диск: жоден з них не розкриє ваші дані, якщо LUKS налаштовано правильно. Ця публікація присвячена тому, як розгорнути повне шифрування диска LUKS на сервері, включаючи структуру LVM, управління ключами, віддалене розблокування та режими відмови, які блокують доступ користувачів до їхніх власних даних.
Референтною реалізацією тут є LUKS2 з LVM всередині зашифрованого контейнера на сервері Linux з AES-NI в процесорі. Ця комбінація справляється з будь-яким сучасним навантаженням, працює добре та відповідає вимогам щодо даних у стані спокою в HIPAA, PCI-DSS, GDPR та SOC 2.
Чому LUKS2 і що перевірити в першу чергу
LUKS шифрує на рівні блокових пристроїв за допомогою dm-crypt, а головний ключ зберігається у слотах для ключів у заголовку LUKS. Це розділення має значення: ви можете змінювати паролі або додавати нові ключі без повторного шифрування диска.
LUKS2 є поточним стандартом. Він підтримує до 32 слотів для ключів, метадані у форматі JSON, повторне шифрування в режимі онлайн та аутентифіковане шифрування за допомогою прапора --integrity . LUKS1 підтримує 8 слотів для ключів і підходить для старих систем, але нові розгортання слід починати з LUKS2.
Накладні витрати на продуктивність з AES-NI зазвичай не перевищують 5% на сучасному обладнанні. Перевірте перед початком:
grep -o aes /proc/cpuinfo | head -1
cryptsetup benchmarkЯкщо grep не повертає нічого, ваш процесор не підтримує AES-NI, і шифрування буде залежати від процесора при інтенсивних операціях вводу-виводу. cryptsetup benchmark показує пропускну здатність для кожного шифру, тож ви можете вибрати найшвидший із тих, що підтримує ваше обладнання. Також переконайтеся, що встановлено cryptsetup і що доступний модуль ядра dm-crypt модуль ядра доступний. Обидва поставляються за замовчуванням в Ubuntu, Debian, RHEL та Arch.
Розташування дисків
Два розділи залишаються незашифрованими: системний розділ EFI (512 МБ, FAT32) та /boot (від 1 до 2 ГБ, ext4 або xfs). GRUB повинен прочитати обидва розділи, перш ніж зможе запросити пароль. Все інше знаходиться всередині контейнера LUKS.
Рекомендована схема — LVM усередині LUKS: один контейнер LUKS, що містить групу томів LVM, з логічними томами для кореневого розділу, підкачки та будь-яких розділів даних. Це забезпечує шифрування метаданих LVM і дозволяє змінювати розмір або створювати знімки томів, не зачіпаючи рівень LUKS. LUKS-on-LVM також працює, але він відкриває структуру групи томів.
| Розділ | Розмір | Файлова система | Зашифрована |
|---|---|---|---|
| Система EFI | Від 512 МБ до 1 ГБ | FAT32 | Ні |
/boot | Від 1 до 2 ГБ | ext4 / xfs | Ні |
| Контейнер LUKS | Вільний простір | LUKS2 | Так |
| Кореневий каталог LVM | Від 20 до 100 ГБ+ | ext4 / xfs | Так (всередині LUKS) |
| LVM swap | Дорівнює обсягу оперативної пам'яті | swap | Так (всередині LUKS) |
ext4 є безпечним варіантом за замовчуванням для кореневого тома. xfs краще обробляє великі файли та паралельні записи, що має значення для медіа-, ML- та баз даних серверів. Для SSD та NVMe додайте опцію discard опцію /etc/crypttab , щоб увімкнути TRIM. TRIM показує, які сектори використовуються, що є невеликим витоком інформації. Для більшості робочих навантажень це вартує переваги вирівнювання зносу. Якщо ваша модель загроз включає криміналістичний аналіз пристрою, залиште цю опцію вимкненою.
Налаштування LUKS з LVM
Визначте цільовий диск за допомогою lsblk та очистіть усі наявні метадані:
wipefs -a /dev/sdXЗа бажанням перезапишіть його випадковими даними, щоб зашифровані блоки не відрізнялися від порожнього простору:
dd if=/dev/urandom of=/dev/sdX bs=1M status=progressІніціалізуйте контейнер LUKS2. Використовуйте --sector-size 4096 для NVMe та сучасних SSD з фізичними секторами розміром 4 КБ:
cryptsetup luksFormat --type luks2 --sector-size 4096 /dev/sdX
cryptsetup luksOpen /dev/sdX cryptdataНегайно створіть резервну копію заголовка, перш ніж записувати будь-які дані на диск:
cryptsetup luksHeaderBackup /dev/sdX --header-backup-file luks-header-backup.imgСтворіть LVM поверх розблокованого контейнера, а потім відформатуйте логічні томи:
pvcreate /dev/mapper/cryptdata
vgcreate vg_secure /dev/mapper/cryptdata
lvcreate -L 50G -n lv_root vg_secure
lvcreate -L 8G -n lv_swap vg_secure
mkfs.xfs /dev/vg_secure/lv_root
mkswap /dev/vg_secure/lv_swapДодайте запис до /etc/crypttab використовуючи UUID, а не /dev/sdX, який може змінюватися між перезавантаженнями. Отримайте його за допомогою blkid /dev/sdX:
cryptdata UUID=<your-uuid> none luks,discardПотім змонтуйте за допомогою /etc/fstab:
/dev/vg_secure/lv_root / xfs defaults,noatime 0 1Перегенеруйте initramfs, щоб хуки шифрування завантажувалися під час запуску:
# Debian/Ubuntu
update-initramfs -u -k all
# RHEL/Fedora
dracut -f --regenerate-allПерезавантажте систему, введіть пароль і підтвердьте налаштування за допомогою cryptsetup status cryptdata та lsblk -f. Останнє повинно показувати crypto_LUKS як FSTYPE на зашифрованому розділі.
Управління ключами та дистанційне розблокування
LUKS2 підтримує 32 слоти для ключів. З самого початку використовуйте принаймні три: пароль адміністратора, ключ відновлення, що зберігається офлайн (роздрукований та замкнений, або на зашифрованому USB-накопичувачі в сейфі), та файл ключів для автоматичного розблокування вторинних томів даних. Дотримуйтесь 95 друкованих символів ASCII, оскільки не-ASCII символи спричиняють проблеми з розкладкою клавіатури у командному рядку завантаження, які дуже важко виправити. Змінюйте пароль адміністратора щоразу, коли хтось із доступом залишає команду.
Переглянути активні слоти можна за допомогою cryptsetup luksDump /dev/sdX, додайте ключ за допомогою cryptsetup luksAddKey, а скасувати — за допомогою cryptsetup luksKillSlot. Захищайте всі файли ключів суворими правами доступу:
chmod 0400 /etc/luks/keyfile.binДля бездисплейних серверів у віддалених дата-центрах запит пароля є проблемою. Три способи її вирішення:
| Метод | Найкраще підходить для | Компроміс |
|---|---|---|
| Dropbear в initramfs | Ручне розблокування через SSH | Все ще вимагає втручання людини під час перезавантаження |
| Clevis + Tang (NBDE) | Автоматичне розблокування в надійній мережі | Сервер повинен підключитися до сервера Tang для завантаження |
| TPM2 через systemd-cryptenroll | Автоматизація, пов'язана з апаратним забезпеченням | Оновлення прошивки можуть змінити значення PCR і заблокувати доступ |
Dropbear запускає мініатюрний SSH-сервер в initramfs. Ви підключаєтеся по SSH після завантаження та вводите пароль вручну. Clevis із Tang використовує мережеве шифрування диска: сервер розблоковується, якщо може зв’язатися із сервером Tang у довіреній мережі. Tang не зберігає ваш ключ, а надає одну половину обміну McCallum-Relyea. Використовуйте кілька серверів Tang із sss pin, щоб розблокування працювало, навіть якщо один із них не в мережі. Прив'язка TPM 2.0 через systemd-cryptenroll прив'язує ключ до PCR 7 (стан Secure Boot), тому сервер розблоковується лише тоді, коли прошивка та завантажувач не були змінені. Завжди зберігайте слот для пароля як запасний варіант при використанні TPM, оскільки оновлення прошивки змінюють значення PCR.
Зміцнення безпеки та запобігання блокуванню
Використовуйте парольні фрази довжиною не менше 20 символів. Увімкніть аутентифіковане шифрування з --integrity у luksFormat , якщо ваша модель загроз передбачає не лише конфіденційність, а й фальсифікацію даних. Це пов'язано з витратами на посилення запису, тому спочатку проведіть тестування.
Не клонуйте контейнер LUKS на інші машини. Ключ тома копіюється разом з ним, тому зміна парольної фрази на одному хості не захистить інший. Переформатуйте кожен диск окремо.
Для безпечного виведення з експлуатації cryptsetup erase /dev/sdX за лічені мілісекунди стирає всі ключові слоти, роблячи диск неможливим для відновлення без фізичного руйнування. Це саме по собі є вагомим аргументом на користь шифрування всього за замовчуванням.
Типові режими відмови:
| Симптом | Ймовірна причина | Виправлення |
|---|---|---|
| Завантаження зависає на запиті пароля | Невідповідність розкладки клавіатури | Змініть розкладку або використовуйте ключ відновлення |
| «Пристрій не є дійсним пристроєм LUKS» | Неправильний шлях до пристрою | Перевірте lsblk розділ чи весь диск |
| Клавіатура не реагує під час завантаження | Порядок запуску хуків Initramfs | Розмістіть keyboard перед encrypt в mkinitcpio.conf |
| GRUB пропускає запит пароля | GRUB_ENABLE_CRYPTODISK не встановлено | Встановити GRUB_ENABLE_CRYPTODISK=y в /etc/default/grub, переінсталюйте GRUB |
| «Не вдалося знайти кореневий пристрій» | Відсутній lvm2 або encrypt хуки | Додайте хуки та запустіть mkinitcpio -P |
Найбільш важливим режимом збою є пошкодження заголовка. Якщо заголовок LUKS втрачено або пошкоджено, дані втрачено. Відновлення неможливе, окрім як з резервної копії заголовка. Зберігайте копію на окремому носії, бажано у двох місцях, і ніколи не на самому зашифрованому диску. Для некритичних вторинних томів додайте nofail до /etc/crypttab щоб невдалий монтування не заблокувало завантаження.
Виділені сервери FDC постачаються з апаратним забезпеченням, яке підтримує AES-NI та повне шифрування диска з самого початку. Налаштуйте виділений сервер, коли будете готові до розгортання.

Втомилися від повільного розгортання або обмежень пропускної здатності? FDC Servers пропонує миттєве виділення потужності, глобальне охоплення та гнучкі плани, створені для будь-якого масштабу. Готові до оновлення?
Розблокувати продуктивність зараз
Керування трафіком у Linux: практичний посібник
Контролюйте пропускну здатність, визначайте пріоритети трафіку та формуйте вхід і вихід у Linux за допомогою tc. Робочі конфіги HTB, IFB, DSCP та fq_codel для реальних серверів.
12 хв читання - 5 червня 2026 р.
Чому важливо мати потужний і нелімітований VPS
7 хв читання - 9 травня 2025 р.

Маєте запитання або потребуєте індивідуального рішення?
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання