Шифрування linux (частина 3)

Шифрування linux (частина 3)
Тепер мова піде про те, як зашифрувати вже працює операційну систему Linux. Припустимо, що у вас є сервер, на якому вже працює ваш сайт або на якому збережено багато особистої інформації. Звичайно ж ви не хочете, щоб це все потрапило в чужі руки. Також, якщо ви використовуєте сервер як сховище дані - явно не хочеться, щоб ці дані були кимось використані при вилученні жорстких дисків. Ситуацій може бути багато ... З цього нам потрібно захистити наше вміст від чужих очей.

Я встановив свіжу Ubuntu 12.04 на віртуальну машину і додав до неї ще один диск на 1 Гб (/ dev / sdb), на який буде перенесено завантажувальний розділ з / boot папкою. Як я вже писав у попередній статті єдиним незашифрованим елементом повинна бути завантажувальна інформація (тобто. Образ ядра, initramfs і grub), яка потрібна для дешифрування диска ще до монтування рутовий файлової системи.

Для початку потрібно змонтувати диск, який буде в ролі нового boot-a і перенести на нього всі з папки / boot.

На даному етапі ми перенесли завантажувальний папку boot на новий диск. Тепер потрібно прописати необхідні настройки в fstab для правильного монтування.

Тепер можна оновити grub настройки і сміливо перезавантажити систему.

Після перезавантаження - підключаємося і дивимося що у нас твориться в файлової системі.

Як видно, у нас тепер завантажувач, образ ядра і initramfs знаходяться на окремому диску.
Далі нам потрібно перенести всю файлову систему на зашифрований диск, який буде монтуватися в /. Для цього я додав ще один диск (/ dev / SDС) який буде в ролі нового рутовий (системного) диска замість / dev / sda1.
Шифруємо диск SDС і монтуємо для перенесення всіх файлів.

Тепер модифікуємо fstab, crypttab, також оновлюємо initramfs і перекидали на зашифрований диск sdc все зі старого рутовий диска / dev / sda1.

Як бачимо, в рутовий файлову систему змонтований зашифрований диск. І також залишився старий диск / dev / sda, який можна вилучити.

У наступній статті піде мова про шифруванні Centos.

Намагаюся повторити. У вас помилки в тексті. Давайте їх усувати разом.
Ви пишете: «... Тепер можна оновити grub настройки і сміливо перезавантажити систему.» При цьому ви пишіть команду «grub-install / dev / sda», в той час як за логікою, граб потрібно встановити на sdb1 (флешка), а не на sda, на якому вже стоїть базова система. При цьому на флешці спершу треба створити розділ, інакше граб встановиться на нёё, і зробити її завантажувальної.

А перед цим. Після того як внесли зміни в файл fstab (echo "/ dev / sdb / boot ext4 defaults 0 0» >> / etc / fstab) Хіба не треба щоб оновлення вступили в силу? Застосувати команду «mount -a». І лише потім робити оновлення і установку граба?

admin.

> При цьому на флешці спершу треба створити розділ, інакше граб встановиться на нёё, і зробити її завантажувальної.
Ні, нічого не треба створювати. grub може ставитися ТІЛЬКИ на диск, а не розділ (тобто. / dev / sda, / dev / hda).

> А перед цим. Після того як внесли зміни в файл fstab (echo "/ dev / sdb / boot ext4 defaults 0 0" >> / etc / fstab) Хіба не треба щоб оновлення вступили в силу? Застосувати команду "mount -a". І лише потім робити оновлення і установку граба?

Не треба. Измения вступлять в силу після запуску «update-grub». «Mount -a» ніяких змінити не приміняли - тільки намагається монтувати все, що є в fstab

Ніхто і не сперечається, що Grub ставиться на диск, а не на розділ диска. Я написав про те, що grub не ставитиме на диск якщо він не розмічений або на ньому немає файлової ситсеми. Зараз я спеціально перевірив це. Спершу я спробував встановити grub на чистий диск sdb:
# Grub-install / dev / sdb
Installing for i386-pc platform.
grub-install: помилка: не вдалося визначити файлову систему в hostdisk // dev / sdb; неможливо виконати безпечну перевірку.

Потім я зробив файлову систему на дііск sdb, і потім спробував встановити grub. І ось що вийшло:
# Mkfs.ext4 / dev / sdb
...
...
...
# Grub-install / dev / sdb
Installing for i386-pc platform.
grub-install: попередження: Файлова система «ext2» не підтримує вбудовування.
grub-install: помилка: вбудовування неможливо, але воно необхідне для междискових устаноки.

з цього видно, що для установки grub необхідно щоб на диску був хоча б один розділ і щоб цей розділ починався з 2048 сектора. Тому що grub ставиться в ці перші 2048.

admin.

Тільки заради вас виконав все на віртуальній машині з двома дисками (/ dev / sda і / dev / sdb) - все ідеально працює.
Спочатку ми робимо update-grub. Після чого, у нас змінюється grub.cfg, і тепер grub знає, що ядро ​​і initramfs потрібно шукати на іншому диску. АЛЕ в / dev / sda у нас залишилася стара інформація про те, де лежить наш grub-ик, тому нам треба її оновити: «grub-install / dev / sda». Тепер, після ребута MBR знаходить перший диск з оновленим завантажувальним сектором, грузиться граб і бачить, що потрібні файли знаходяться на іншому диску - і вантажить їх.

Ставив на Ubuntu Server 14.04 x64.
Після перезавантаження замість Enter passphrase виплюнув це:
Gave up waiting for root device. Common problems:
- Boot args (cat / proc / cmdline)
- Check rootdelay = (did thesystem wait long enough?)
- Check root- (did the system wait for the right device?)
- Missing modules (cat / proc / modules; ls / dev)
ALERT! / Dev / mapper / encryptroot does not exist. Dropping to a shell!
Підкажіть куди копати?

admin.

Так, для 14.04 в місце кроків:

Потрібно зробити наступні:

Тепер рутовий диском буде наші шифрований диск і initram образ буде знати, що його потрібно дешифрувати.
Тільки що перевірив на виртуалке - все працює. Пробуйте у себе.

вітаю, пробую це зробити на Дебіан 8
після першого ребута отримую просто запрошення груба: grub> _
що я роблю не так?

admin.

В Debian може бути трохи інакше, але по суті має працювати і так.
Перевірте чи все зробили по пунктах

Схожі статті