Предыдущая статья → ← Следующая статья
Перенос /home на зашифрованный раздел.
Mon 14 May 2012
Администрирование .
Нашли опечатку? Отредактируйте статью на Github
Этот пост не столько инструкция, сколько заметка.
Итак, нам нужно: немного свободного места:
$ sudo vgdisplay
--- Volume group ---
VG Name vg
Free PE / Size 2976 / 11,62 GiB
Установленый пакет cryptsetup:
$ sudo aptitude install cryptsetup
Я использую luks шифрование из-за того, что оно работает примерно так:
- Вводим ключевую фразу.
- Фраза расшифровывает ключ.
- Ключом расшифровываем диск.
Соответственно, если появится необходимость, мы можем легко поменять ключевую фразу и нам не понадобится перешифровывать диск целиком.
Итак, приступим:
1. Создадим раздел который будем шифровать:
sudo lvcreate -n crypthome -L11G
2. Установим luks на раздел:
$ sudo cryptsetup luksFormat /dev/mapper/vg-crypthome
WARNING!
========
This will overwrite data on /dev/mapper/vg-crypthome irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
3. Создадим специальное, расшифрованное устройсво, чтобы система могла писать:
$ sudo cryptsetup luksOpen /dev/mapper/vg-crypthome crypto
Enter passphrase for /dev/mapper/vg-crypthome:
4. Создадим файловую систему:
$ sudo mkfs.ext4 /dev/mapper/crypto
5. Создадим запись в /etc/crypttab:
crypto /dev/mapper/vg-crypthome none luks
6. Создадим запись в /etc/fstab (закоментировав старую):
/dev/mapper/crypto /home ext4 defaults 0 2
7. Создаём точку монтирования для переноса данных с нешифрованного раздела на зашифрованный:
$ sudo mkdir /mnt/home
$ sudo mount /dev/mapper/crypto /mnt/home
8. Перенесём данные:
$ sudo rsync -av /home/* /mnt/home
9. Ещё раз запустим rsync. Выключим все приложения, сделаем rsync ещё раз.
10.1. Перед перезагрузкой обновим initramfs, чтобы включить туда модули необходимые для работы с шифрованными разделами (aes, dm-crypt):
$ sudo update-initramfs -u -k all
10.2. Перезагружаем машину. Убеждаемся, что всё работает, благодаря тому, то появляется приглашение с вводом ключевой фразы. Когда появится окно логина в систему, переключаемся на первую консоль, логинимся под рутом. Монтируем старый /home.
# mount /dev/mapper/vg-home /mnt/home
11. Выполняем последнее копирование данных со старого домика:
# rsync -av /mnt/home/* /home
12. Отмонтируем старый домик, переключаемся на 7 консоль (Иксовую). Логинимся. Вуаля, теперь наш домик зашифрован.
В принципе можно было произвести подмену /home и без перезагрузки, но так проще.
Если производить такую подмену, то нужно будет завершить все процессы пользователя, проверить не использует ли кто /home/$USER при помощи lsof, завершить и эти процессы. Затем выйти в 1 терминал, произвести финальный rsync, отмонтировать разделы, перемонтировать их и запустить X-сервер с уже новым разделом.
В следующей заметке я опишу алгоритм ресайза зашифрованного раздела. У меня под /home на нетбуке было выделено 100Гб места, однако файлов там было всего 9Гб. В общем диску простаивать зря не стоит, поэтому буду увеличивать диск.
Если у вас остались вопросы, напишите мне письмо .