LUKS (Linux Unified Key Setup) – стандарт для шифрування жорсткого диска в Linux. Забезпечуючи стандартний формат даних на диску, він не тільки сприяє сумісності між дистрибутивами, але й забезпечує безпечне управління декількома паролями користувачів. На відміну від існуючого рішення, LUKS зберігає всю необхідну інформацію про налаштування у заголовку розділу, що дозволяє користувачеві безперешкодно переносити або мігрувати свої дані. (джерело: http://code.google.com/p/cryptsetup/)
Для налаштування LUKS на CentOS вам потрібен пакет cryptsetup
, який встановлений за замовчуванням у CentOS 7 з мінімальною установкою. Ви можете використовувати cryptsetup
для шифрування конкретного диска або розділу та захищення всіх збережених на ньому даних. Ваші дані захищені однією або декількома захищеними паролями – шифруванням диска. Ви можете розшифрувати свій розділ вручну під час завантаження (automount – потребує додаткової конфігурації та файлу ключів), або ви можете вручну ввести свій пароль під час завантаження системи. У такому випадку, неможливо прочитати / отримати дані з диску, не знаючи захищеної парольної фрази. Далі я поясню, як зашифрувати та налаштувати автоматичне монтування зашифрованого диска / розділу.
Якщо ви не хочете автоматично монтувати зашифрований диск / розділ при запуску операційної системи, не виконуйте кроки 4, 5, 9 та монтуйте свій диск / розділ вручну.
1. Додайте новий диск
Додайте новий диск або розділ, який ви хочете зашифрувати.
2. Відформатуйте диск з використанням LUKS
Відформатуйте свій диск / розділ за допомогою cryptsetup
та введіть захищену парольну фразу (саме цю парольну фразу вам доведеться ввести, щоб розблокувати диск / розділ, завдяки чому він стане доступним для монтування!)
1 2 3 4 5 6 7 |
[root@foo ~]# cryptsetup luksFormat /dev/sdb WARNING! ======== This will overwrite data on /dev/sdb irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: |
3. Відкрийте диск з використанням LUKS
Відкрийте диск / розділ за допомогою cryptsetup
та введіть назву фізичного пристрою та назву віртуального пристрою монтування (це /dev/mapper/ім’я, під яким ви хочете мати свій диск / розділ) та введіть пароль, який ви використовували на кроці 1.
1 2 |
[root@foo ~]# cryptsetup luksOpen /dev/sdb CryptedPart1 Enter passphrase for /dev/sdb: |
4. Автомонтування при завантаженні системи: створення ключа
Створіть файл ключів для automount. Файл ключів повинен знаходитися в /root директорії та мати дозволи 0400 – цей файл може читати лише користувач root. Ви можете додати до цього файлу будь-який вміст, навіть сам пароль, але я вирішив заповнити його випадковими даними за допомогою утиліти dd.
1 2 3 4 5 6 7 |
[root@foo ~]# dd if=/dev/urandom of=/root/keyfile1 bs=1024 count=4 4+0 records in 4+0 records out 4096 bytes (4.1 kB) copied, 0.00143526 s, 2.9 MB/s [root@foo ~]# chmod 0400 /root/keyfile1 [root@foo ~]# ll /root/keyfile1 -r--------. 1 root root 4096 Jun 11 21:24 /root/keyfile1 |
5. Автомонтування при завантаженні системи: додавання ключа у cryptsetup
Додайте ваш ключ та пароль у cryptsetup
, підставивши шлях до пристрою та шлях до ключа у якості аргументів. Вам буде запропоновано ввести пароль, який ви використовували на кроці 1.
1 2 |
[root@foo ~]# cryptsetup luksAddKey /dev/sdb /root/keyfile1 Enter any passphrase: |
6. Створення файлової системи
Створіть файлову систему на віртуальному розділі.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@foo ~]# mkfs.xfs /dev/mapper/CryptedPart1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65408 inodes, 261632 blocks 13081 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 22 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. |
7. Створіть теку монтування
Створіть теку, куди буде монтуватися зашифрований розділ.
1 |
[root@foo ~]# mkdir /encryptedfs |
8. Додайте запис до /etc/fstab
Для автоматичного монтування розділу при старті системи додайте відповідний запис до /etc/fstab.
1 |
[root@foo ~]# echo "/dev/mapper/CryptedPart1 /encryptedfs ext4 defaults 1 2" >> /etc/fstab |
9.Додайте запис до /etc/crypttab
Додайте запис до /etc/crypttab для розшифрування вашого розділу. Вкажіть ім’я фізичного пристрою, а також шлях до файла-ключа.
1 |
[root@foo ~]# echo "CryptedPart1 /dev/sdb /root/keyfile1 luks" >> /etc/crypttab |
10. Змонтуйте диск
Тепер ви можете змонтувати ваш зашифрований розділ.
1 |
[root@foo ~]# mount -a |
Перезапустіть систему і перевірте, що зашифрований диск / розділ буде успішно змонтовано при старті операційної системи.
Успіхів!