Шифрование дисков в Debian Linux
Posted on Май 17th, 2009 in Linux, Инструмент аудитора, Нестандартности | 4 Comments »
В последнее время начал активно использовать на служебном ноутбуке Linux Debian 5 версии. Удобно и поэкспериментировать иногда, и для работы достаточно хорошо подходит – Gnome, Office 2007 запускается под wine, jdk для Cisco ASDM, VMWare Workstation и много другого необходимого софта.
Так как ноутбук вещь такая что украсть ее не так сложно как настольный ПК, озаботился я шифрованием жесткого диска, так как куча приватной информации хранится на ноутбуке – приватные ключи для доступа к корпоративной сети, служебная переписка, личная переписка и мало ли еще какой приватной информации которую очень не хотелось бы отдавать в чужие руки. Приступим.
Шаг 1.
Для начала необходимо установить ПО для обеспечения возможности шифрования:
apt-get install cryptsetup
apt-get install mdadm
apt-get install lvm2
В ядре должна быть включена поддержка LVM – в ядре из дистрибутива дело обстоит именно так.
Моя таблица разделов выглядит так:
/dev/sda1 * 1 26 204800 7 HPFS/NTFS
/dev/sda2 26 10077 80737678+ 83 Linux
/dev/sda3 10078 19457 75344850 83 Linux
/dev/sda3 – мой корневой раздел, его я шифровать небуду, ни к чему, поэтому я зашифрую /dev/sda2 и буду монтировать как /home. Т.е. шифроваться будут пользовательские данные а все остальное – нет, ноутбук все-таки, и тратить в дороге батарею понапрасну на мой взгляд излишество. Да и за производительность тоже хочется побороться – все таки шифрование хоть и незначительно но снижает скорость записи/чтения на жесткий диск.
Шаг 2.
Зашифруем намеченое, файловую систему (ФС):
cryptsetup luksFormat /dev/sda2
И команда выполнится с ошибкой. Не знаю почему, но в Debian по-умолчанию нет команды /sbin/udevsettle.
Поэтому делаем симлинк и выполняем команду:
ln -s /sbin/udevadm /sbin/udevsettle
cryptsetup luksFormat /dev/sda2
WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.
Are you sure? (Type uppercase yes):
Система прости набрать в верхнем регистре слово YES. Набираем и создаем.
Далее, проверим, как и что создалось.
cryptsetup luksDump /dev/sda2
LUKS header information for /dev/sda2
Version: 1
Cipher name: aes
Cipher mode: cbc-essiv:sha256
Hash spec: sha1
Payload offset: 1032
MK bits: 128
MK digest: 10 77 b5 0a 9a 92 d2 e1 73 5f c8 49 ad e0 f9 4c 8d d5 38 8a
MK salt: 08 9b 01 2e 0a f3 f0 12 22 69 3e 0b 0e cd 8f 58
aa a2 ce bf 5a c8 bb b1 97 e2 fc 2f da d6 93 bb
MK iterations: 10
UUID: 776317fc-a9b9-454e-8d8f-f9e168e0ad9a
Копируем куда-либо UUID: 776317fc-a9b9-454e-8d8f-f9e168e0ad9a, он нам еще пригодится.
Подключаем зашифрованый раздел и создаем на нем ФС:
cryptsetup luksOpen /dev/sda2 luks
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Там где появляется запрос “Enter LUKS passphrase:” вводим пароль который воодили при создании зашифрованого раздела.
Создаем ФС:
mke2fs -j /dev/mapper/luks
Правим конфигурационные файлы, для того что бы при загрузке системы зашифрованый раздел подключался автоматически и спрашивал пароль.
nano /etc/crypttab
Добавляем строчку типа:
luks /dev/disk/by-uuid/776317fc-a9b9-454e-8d8f-f9e168e0ad9a none luks
где 776317fc-a9b9-454e-8d8f-f9e168e0ad9a - ваш UUID, который я рекомендовал запомнить чуть выше по тексту.
nano /etc/fstab
Добавляем строчку
/dev/mapper/luks /home ext3 defaults 0 0
Указываем что монтируем раздел в /home
Осталось примонтировать этот раздел во временную точку, убедится что работает и можно переносить данные и перезагружаться:
/etc/init.d/cryptdisks start
mount /dev/mapper/luks /mnt
После перезагрузки система спросит пароль на этапе монтирования дисков и если введенный пароль окажется правильным то будет доступна домашняя директория.
4 Responses
В CentOS можно оставить не зашифрованным только раздел boot, прямо во время установки системы
кстати да,
apt-get install cryptsetup mdadm lvm2
так будет лаконичней
а еще мне пришлось в ядре в device driver>multiply devices driver support>
помимо включения device mapper support (это как я понял и есть lvm) включить доп. опции, в частности crypt target, иначе “cryptsetup luksFormat /dev/sda2″ выдавало ошибку, причем ругаясь на возможно неподдерживаемый тип шифрования aes
и еще у меня при загрузке теперь вылетает сообщение Assembling MD arrays… failed (failed to load MD subsystem).
но работе это не мешает. кстати initramfs у меня отключен, так что можно этим пользоваться и без initrd (это если кому интересно)
это был я