Шифрование разделов dm-crypt, ключ шифрования на другом сервере на HTTP

Материал из Домашняя записная книжка (c) Artful
Перейти к: навигация, поиск

Установка 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