Шифрование разделов dm-crypt, ключ шифрования на другом сервере на HTTP
Установка dm-crypt на Linux
Содержание
Устанавливаем Linux. Я ставил Ubuntu 9.10
Для начала нам нужен пустой раздел, пусть у нас есть диск HDD на 300Gb
При установке Ubuntu 9.10 разбиваем жесткий диск. Я лично разбил:
Первый раздел - 30Gb - смонтировал на "/"
Второй раздел - 8Gb - SWAP
Третий раздел - все остальное - при установке указал - . Все разделы делал первичными.
Ну и далее ставим Ubuntu как обычно, без каких либо изменений.
После установки у меня получилось вот так:
root@server:~# ls -al /dev/sda* brw-rw---- 1 root disk 8, 0 2010-03-11 02:13 /dev/sda brw-rw---- 1 root disk 8, 1 2010-03-11 02:13 /dev/sda1 brw-rw---- 1 root disk 8, 2 2010-03-11 02:13 /dev/sda2 brw-rw---- 1 root disk 8, 3 2010-03-11 02:13 /dev/sda3
Устанавливаем dm-crypt
Все действия необходимо делать из под пользователя root
Установка:
apt-get install cryptsetup
Загружаем модуль:
modprobe dm-crypt
Добавляем его в автозагрузку
echo "dm-crypt" >> /etc/modules
Шифруем раздел
cryptsetup luksFormat /dev/sda3
Нам зададут вопрос:
Are you sure? (Type uppercase yes):
Правильный ответ: "YES" - именно большими буквами.
После чего нас спросят ключ для раздела
Enter LUKS passphrase:
Вводим ключ (лучше всего 20-30 символов)
Command successful.
Обязательно запомните этот ключ.
Для просмотра информации о разделе
cryptsetup luksDump /dev/sda3
Подключение раздела
Ручной режим Открываем раздел с именем data
cryptsetup luksOpen /dev/sda3 data
При этом создастся устройство /dev/mapper/data
root@server:~# ls -al /dev/mapper/* crw-rw---- 1 root root 10, 60 2010-03-14 15:27 /dev/mapper/control brw-rw---- 1 root disk 252, 0 2010-03-14 15:29 /dev/mapper/data
Информация о подключенном разделе
dmsetup info data
Это устройство в 'расшифрованном виде', работать с data можно как с обычным блочным устройством.
А следовательно для начала форматируем его
mkfs.ext4 /dev/mapper/data
И примонтируем
mount /dev/mapper/data /data
Монтирование с ключом по HTTP
Делаем скрип
#!/bin/sh keydisk=`/usr/bin/wget -q -O- http://website.ru/key.txt` /bin/echo $keydisk | /sbin/cryptsetup luksOpen /dev/sda3 data /bin/mount /dev/mapper/data /data
Заставить его работать через crontab у меня не получилось скрипт, не работает. Но в принципе если это сервер который стоит в датацентре - то перезагружаться он не будет.
Размонтирование
Отключить устройство от ФС
umount /data
Закрыть раздел
cryptsetup luksClose /dev/mapper/data
Смена пароля
Добавим еще один ключ для доступа
cryptsetup luksAddKey /dev/sda3
Вводим текущий пароль (или их может быть несколько)
Enter any LUKS passphrase:
Далее вводим новый пароль.
Enter new passphrase for key slot:
Смотрим на результат
cryptsetup luksDump /dev/sda3
Теперь когда у нас
Key Slot 0: ENABLED Key Slot 1: ENABLED
Можно удалить первый - он же нулевой
cryptsetup luksDelKey 0 /dev/sda3