Перейти к содержимому

Как зашифровать системный диск убунту

  • автор:

Ubuntu 22.04 Включить полное шифрование диска

Лучший способ обеспечить полную безопасность вашей системы и файлов Ubuntu 22.04 в случае кражи — включить полное шифрование диска. Таким образом, если ваше устройство украдено или кто-то сидит за вашим столом и пытается загрузить ваш компьютер, ему потребуется знать ваш пароль, чтобы смонтировать любые разделы. Даже если они получат доступ к содержимому жесткого диска другими способами, все файлы будут зашифрованы, и никто не сможет прочитать их содержимое.

Полное шифрование диска — это то, что необходимо включить во время установки Ubuntu 22.04. Если вы уже установили операционную систему, вам, к сожалению, придется переустановить ее, чтобы включить полное шифрование диска, в противном случае вы сможете шифровать и монтировать только отдельные разделы. Полное шифрование диска охватывает все, включая пространство подкачки и загрузочный раздел, поэтому его необходимо включить с самого начала.

В этом руководстве мы познакомим вас с пошаговыми инструкциями по включению полного шифрования диска в Ubuntu 22.04 Jammy Jellyfish. На самом деле это просто дополнительная опция, которую необходимо выбрать и настроить в процессе установки, как вы увидите ниже. Установка использует LVM и LUKS для обеспечения безопасного шифрования вашего жесткого диска.

В этом уроке вы узнаете:

    Как включить полное шифрование диска в Ubuntu 22.04

Ubuntu 22.04 Включить полное шифрование диска, пошаговые инструкции

ВНИМАНИЕ
Если вы решите продолжить полное шифрование диска, а затем забудете свой пароль в будущем, имейте в виду, что все ваши данные будут безвозвратно восстановлены. Выбирайте только тот пароль, который вы точно запомните, и при необходимости также создайте ключ восстановления (ниже мы покажем вам, как это сделать). Если вы считаете, что можете забыть пароль, запишите его и сохраните в надежном месте.

  1. Для начала вам просто выполните установку Ubuntu 22.04, как обычно. Если вам нужна помощь, прочтите нашу статью об установке Ubuntu 22.04. Та часть, которая нас интересует в этом уроке, начнется с меню «Тип установки», как показано ниже. В этом окне нам нужно выбрать «Дополнительные функции».
  2. В меню «Дополнительные функции» нам нужно выбрать обе опции: «Использовать LVM с новой установкой Ubuntu» и «Зашифровать новую установку Ubuntu в целях безопасности».

ПРИМЕЧАНИЕ
Вы не сможете выбрать полное шифрование диска, если вы настроили разделы вручную или используете систему с двойной загрузкой.

  • Нажмите «ОК», чтобы подтвердить этот выбор, затем нажмите кнопку «Установить сейчас».
  • Теперь пришло время выбрать пароль для нашего шифрования. Убедитесь, что вы выбрали надежный и безопасный пароль. Меню установки сообщит вам, как только оно сочтет надежность вашего пароля «хорошей». У вас также есть возможность создать файл ключа восстановления. Этот файл можно использовать для разблокировки вашей системы вместо необходимости ввода пароля. Это может быть удобно, если вы однажды забудете пароль или захотите пройти аутентификацию, не вводя пароль.
  • Теперь вы можете выполнить остальную часть установки Ubuntu 22.04 как обычно. При загрузке компьютера в будущем вам потребуется ввести пароль для расшифровки жесткого диска. В противном случае никто не сможет загрузить установку Ubuntu 22.04.
  • Заключительные мысли

    В этом уроке вы увидели, как включить полное шифрование диска в Ubuntu 22.04 Jammy Jellyfish Linux. Это обеспечит безопасность ваших файлов и других данных на случай, если ваш компьютер попадет в чужие руки, но имеет свои ограничения, поскольку пароль запрашивается только при загрузке. Во время транспортировки держите компьютер выключенным, чтобы воры столкнулись с запросом пароля, если они попытаются перехватить вашу собственность.

    Перенос работающей системы Ubuntu на зашифрованные диски

    Речь пойдет о том, как зашифровать уже работающею операционную систему Linux. Предположим, что у вас есть сервер, на котором уже работает ваш сайт или на котором сохранено много личной информации. Конечно же вы не хотите, чтобы это все попало в чужие руки. Также, если вы используете сервер как хранилище даны – явно не хочется, чтобы эти данные были кем-то использованы при изъятии жестких дисков. Ситуаций может быть много… По этому нам нужно защитить наше содержимое от чужих глаз.

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

    root@test-winxp-ie7d:~# cat /etc/issue Ubuntu 12.04.1 LTS \n \l root@test-winxp-ie7d:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.0G 1.2G 7.4G 14% / udev 486M 4.0K 486M 1% /dev tmpfs 198M 304K 198M 1% /run none 5.0M 0 5.0M 0% /run/lock none 495M 0 495M 0% /run/shm root@test-winxp-ie7d:~# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000649ec Device Boot Start End Blocks Id System /dev/sda1 * 2048 18874367 9436160 83 Linux /dev/sda2 18876414 20969471 1046529 5 Extended /dev/sda5 18876416 20969471 1046528 82 Linux swap / Solaris Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table root@test-winxp-ie7d:~#

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

    root@test-winxp-ie7d:~# mkfs.ext4 /dev/sdb mke2fs 1.42 (29-Nov-2011) /dev/sdb is entire device, not just one partition! Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done root@test-winxp-ie7d:~# mkdir /mnt/newboot root@test-winxp-ie7d:~# mount /dev/sdb /mnt/newboot/ root@test-winxp-ie7d:~# cp -R /boot/* /mnt/newboot/ root@test-winxp-ie7d:~# mv /boot /boot_old root@test-winxp-ie7d:~# mkdir /boot 

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

    root@test-winxp-ie7d:~# echo "/dev/sdb /boot ext4 defaults 0 0" >> /etc/fstab

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

    root@test-winxp-ie7d:~# update-grub Generating grub.cfg . Found linux image: /boot/vmlinuz-3.2.0-29-generic Found initrd image: /boot/initrd.img-3.2.0-29-generic Found memtest86+ image: /memtest86+.bin done root@test-winxp-ie7d:~# grub-install /dev/sda Installation finished. No error reported. root@test-winxp-ie7d:~# reboot root@test-winxp-ie7d:~# Broadcast message from alex@test-winxp-ie7d (/dev/pts/0) at 6:06 . The system is going down for reboot NOW! 

    После перезагрузки – подключаемся и смотрим что у нас твориться в файловой системе.

    root@test-winxp-ie7d:~# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 9.0G 1.2G 7.4G 14% / udev devtmpfs 486M 4.0K 486M 1% /dev tmpfs tmpfs 198M 304K 198M 1% /run none tmpfs 5.0M 0 5.0M 0% /run/lock none tmpfs 495M 0 495M 0% /run/shm /dev/sdb ext4 1021M 71M 900M 8% /boot root@test-winxp-ie7d:~# ls /boot/ abi-3.2.0-29-generic grub lost+found memtest86+_multiboot.bin vmlinuz-3.2.0-29-generic config-3.2.0-29-generic initrd.img-3.2.0-29-generic memtest86+.bin System.map-3.2.0-29-generic 

    Как видно, у нас теперь загрузчик, образ ядра и initramfs находятся на отдельном диске.
    Далее нам нужно перенести всю файловую систему на зашифрованный диск, который будет монтироваться в /. Для этого я добавил еще один диск (/dev/sdс) который будет в роли нового рутового (системного) диска вместо /dev/sda1.
    Шифруем диск sdс и монтируем для переноса всех файлов.

    root@test-winxp-ie7d:~# mkdir /mnt/newroot root@test-winxp-ie7d:~# cryptsetup luksFormat /dev/sdc WARNING! ======== This will overwrite data on /dev/sdc irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: root@test-winxp-ie7d:~# cryptsetup luksOpen /dev/sdc encryptroot Enter passphrase for /dev/sdc: root@test-winxp-ie7d:~# mkfs -t ext4 /dev/mapper/encryptroot mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 196608 inodes, 785920 blocks 39296 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=805306368 24 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done root@test-winxp-ie7d:~# mount -t ext4 /dev/mapper/encryptroot /mnt/newroot/ 

    Теперь модифицируем fstab, crypttab, также обновляем initramfs и перекидаем на зашифрованный диск sdc все из старого рутового диска /dev/sda1.

    root@test-winxp-ie7d:~# ls -l /dev/disk/by-uuid/ total 0 … lrwxrwxrwx 1 root root 10 Sep 16 06:46 5e5fac1c-080b-437a-96ff-d9e4e3b04759 -> ../../sda1 lrwxrwxrwx 1 root root 9 Sep 16 06:47 d08aab55-a935-4155-aea0-b6fd5da8bed3 -> ../../sdc … root@test-winxp-ie7d:~# cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # proc /proc proc nodev,noexec,nosuid 0 0 # / was on /dev/sda1 during installation #UUID=5e5fac1c-080b-437a-96ff-d9e4e3b04759 / ext4 errors=remount-ro 0 1 /dev/mapper/encryptroot / ext4 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=eae26cf5-303a-4c17-ac63-d7dd82891c09 none swap sw 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 /dev/sdb /boot ext4 defaults 0 0 root@test-winxp-ie7d:~# cat /etc/crypttab # encryptroot UUID=d08aab55-a935-4155-aea0-b6fd5da8bed3 none luks root@test-winxp-ie7d:~# sed -i -e "s|root=UUID=5e5fac1c-080b-437a-96ff-d9e4e3b04759|root=/dev/mapper/encryptroot|" /boot/grub/grub.cfg root@test-winxp-ie7d:~# ln -s /boot/vmlinuz-3.2.0-29-generic /mnt/newroot/vmlinuz root@test-winxp-ie7d:~# update-initramfs -u update-initramfs: Generating /boot/initrd.img-3.2.0-29-generic root@test-winxp-ie7d:~# rsync -aHx / /mnt/newroot root@test-winxp-ie7d:~# rsync -aHx /dev /mnt/newroot/ root@test-winxp-ie7d:~# reboot 

    image

    Если после перезагрузки Вам выдало следующие окно – значит, все получилось. Если получили kernel-panic – пишите в комментах, подскажу в чем может быть проблема и на каком шаге вышел failt.

    После авторизации – посмотрим, что у нас получилось.

    root@test-winxp-ie7d:~# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/encryptroot ext4 3.0G 1.1G 1.8G 38% / udev devtmpfs 485M 4.0K 485M 1% /dev tmpfs tmpfs 198M 312K 198M 1% /run none tmpfs 5.0M 0 5.0M 0% /run/lock none tmpfs 495M 0 495M 0% /run/shm /dev/sdb ext4 1021M 74M 897M 8% /boot root@test-winxp-ie7d:~# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000649ec Device Boot Start End Blocks Id System /dev/sda1 * 2048 18874367 9436160 83 Linux /dev/sda2 18876414 20969471 1046529 5 Extended /dev/sda5 18876416 20969471 1046528 82 Linux swap / Solaris Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders, total 6291456 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x08040000 Disk /dev/sdc doesn't contain a valid partition table Disk /dev/mapper/encryptroot: 3219 MB, 3219128320 bytes 255 heads, 63 sectors/track, 391 cylinders, total 6287360 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/encryptroot doesn't contain a valid partition table root@test-winxp-ie7d:~# 

    Как видим, в рутовую файловую систему смонтирован зашифрованный диск. И также остался старый диск /dev/sda, который можно изъять.
    Если интересует полное шифрование системы от А до Я, начиная с шифрования при установке и заканчивая удаленной разлочкой luks томов — здесь я все детально описал.

    • luks
    • шифрование дисков

    Полное шифрование диска с помощью VeraCrypt в Ubuntu Linux

    VeraCrypt — это кроссплатформенное решение для шифрования. Он может создавать зашифрованные контейнеры для защиты ваших файлов, или вы можете зашифровать весь раздел диска в системе Linux. VeraCrypt использует новейшие стандарты шифрования, поэтому многие пользователи доверяют ему. В этом руководстве вы увидите пошаговые инструкции по шифрованию всего диска в Ubuntu Linux.

    В этом уроке вы узнаете:

    • Как установить VeraCrypt в Ubuntu
    • Как использовать полнодисковое шифрование с VeraCrypt в Ubuntu Linux

    Полное шифрование диска с помощью VeraCrypt в Ubuntu Linux, пошаговые инструкции

    Следуйте пошаговым инструкциям ниже, чтобы загрузить, установить и использовать VeraCrypt для настройки полного шифрования диска в Ubuntu Linux.

    1. Начните с перехода на официальную страницу загрузки VeraCrypt, где вы найдете пакет DEB, доступный для систем на базе Debian, таких как Ubuntu. Загрузите последнюю доступную версию графического интерфейса.
    2. Откройте терминал командной строки и начните установку, используя команду apt в файле DEB.

    $ sudo apt install ~/Downloads/veracrypt-1.25.9-Debian-11-amd64.deb
  • Затем откройте VeraCrypt из меню Activities Ubuntu.
  • Нажмите кнопку «Создать том».
  • Выберите шифрование несистемного раздела/диска, поскольку мы будем шифровать весь диск. Затем нажмите «Далее».
  • Выберите тип тома, который вы предпочитаете. Скрытые тома не будут отображаться в списке, поэтому их будет легче обнаружить любопытным глазам. В нашем примере мы не упростим задачу и воспользуемся стандартным томом VeraCrypt.
  • Выберите раздел или диск, который вы хотите зашифровать. В нашем примере мы выберем /dev/sdb , поскольку это наш дополнительный жесткий диск. Это просто блочное устройство, без установленных на данный момент разделов файловой системы.
  • Если вы уверены, что выбрали правильное устройство, выберите «Да» в следующем запросе подтверждения.
  • Введите пароль администратора, так как для выполнения следующего шага вам необходимы права root.
  • Выберите тип шифрования, который вы хотите использовать. Использование стандартного AES-512 — определенно беспроигрышный вариант, если у вас нет других предпочтений. Нажмите «Далее», чтобы продолжить.
  • Выберите пароль, который вы будете использовать для своего зашифрованного диска или раздела. Будьте осторожны и выбирайте то, что вы запомните, иначе вы потеряете доступ ко всем своим файлам.

  • Выберите, планируете ли вы хранить большие файлы в томе VeraCrypt. Это позволяет программе соответствующим образом оптимизировать ваше хранилище.
  • Для выбора файловой системы мы рекомендуем ext4. Мы также рекомендуем опцию быстрого форматирования, если только у вас ранее не было конфиденциальной информации на диске и у вас нет времени позволить VeraCrypt безопасно удалить все ее следы. Нажмите «Далее», когда закончите.
  • Выберите, нужна ли вам кроссплатформенная поддержка или нет.
  • Вам нужно будет много перемещать мышь в этом окне, чтобы генерировать случайный ввод. Когда полоса заполнится, нажмите «Формат».
  • Через пару секунд создание вашего тома VeraCrypt будет завершено, и вы должны получить сообщение об успехе.
  • Чтобы смонтировать вновь созданный том VeraCrypt, нажмите «Выбрать устройство», затем выберите путь к устройству, который вы только что зашифровали. Затем нажмите «Монтировать».
  • Введите пароль, который вы использовали для шифрования диска.
  • Теперь вы увидите, что ваш том VeraCrypt смонтирован. По умолчанию наш монтируется в /media/veracrypt1 .
  • Заключительные мысли

    В этом уроке мы увидели, как использовать VeraCrypt для полного шифрования диска в системе Ubuntu Linux. Это обеспечит безопасность всех данных на нашем диске с помощью шифрования VeraCrypt AES-512 или любой другой настройки, которую вы выберете. Чтобы получить доступ к тому, вам просто нужно смонтировать его с помощью VeraCrypt и ввести свой пароль.

    Как зашифровать Ubuntu 18.04

    Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.

    Или на телефон +7(928)274-0281.

    Даже небольшая сумма может помочь написанию новых статей 🙂

    Или поделитесь ссылкой на эту статью со своими друзьями.

    Опубликовано: 8.01.2020 Последнее обновление этой статьи: 8.01.2020

    В этой статье инструкция как выполнить шифрование всего диска Ubuntu. То есть как установить Ubuntu с шифрованием всего диска, включая шифрование системного раздела.

    Важно! Эта статья для людей, которые разбираются в компьютерах на уровне выше среднего. Если вы не знаете что такое конфигурационные файлы, разделы диска, как работать с терминалом — тогда обращайтесь к специалисту. Чтобы не тратить свое время и нервы.

    Для шифрования других версий Ubuntu читайте статьи:

    • Шифрование Ubuntu 16.04
    • Шифрование Ubuntu 14.04
    • Шифрование Ubuntu 10.04 и 12.04

    Казалось бы зачем эта статья, ведь Ubuntu 18.04 можно установить на шифрованный системный раздел через мастер установки, там есть такая опция. Опция есть, но она проблемная — нет никаких дополнительных настроек. Мастер установки тупо использует весь указанный диск целиком, создавая на нем три раздела — root, boot и swap. Разделы рут и swap как и положено зашифрованы, а раздел boot остается голый! И это главная проблема — незашифрованный раздел boot на том же самом диске.

    Поэтому, несмотря на наличие опции в мастере установки, все равно приходится делать установку вручную. Эта статья описывает последовательность действий для ручной установки Ubuntu 18.04 на зашифрованный диск. Ручная установка позволяет еще и не шифровать весь диск. Если необходимо, можно оставить открытыми существующие разделы. Для Убунту добавить отдельный раздел и зашифровать только его.

    Но для начала немного теории.

    Для чего нужно шифрование данных на диске

    Это единственный надежный способ защиты информации, в условиях, когда возможен физический доступ посторонних людей к компьютеру. Пароль на запуск любой операционной системы — Windows, Linux или Mac OS, может спасти только от детей. Любой специалист обойдет парольную защиту за пару минут — примерно столько времени нужно для того, чтобы воткнуть в компьютер флешку и загрузить свою операционную систему с нее.

    А вот зашифрованные данные вскрыть уже гораздо труднее. Или вообще невозможно без цифрового ключа или ключевой фразы. Конечно существуют разные алгоритмы шифрования и внутри этих алгоритмов существуют разные параметры — все это влияет на устойчивость к взлому. При использовании нестойких алгоритмов или уязвимых параметров можно получить доступ к зашифрованным фалам и папкам. Но в общем случае можно считать что шифрование это надежная защита данных.

    Наиболее распространенный способ защиты данных это шифрование файлов. На диске создается шифрованная папка, в нее записываются файлы. Теоретически это надежно, если используется алгоритм AES и ключи большой длины. Но остается неочевидная уязвимость данных при таком способе шифрования. Дело в том, что операционная система остается незащищенной. А это дает злоумышленнику возможность установить в систему специальную программу, (кейлогер, руткит) которая будет запускаться при старте ОС и отслеживать действия пользователя и таким образом рано или поздно злоумышленник получит пароль или ключевой файл для доступа к зашифрованным папкам и файлам. Либо сможет получить сами эти данные после того, как пользователь откроет зашифрованный файл.

    Значит, действительно стойкая защита данных на диске это шифрование не отдельных файлов и папок, но и всей операционной системы. Для надежной защиты необходимо шифрование всего диска. «На поверхности» не должно оставаться ничего. В этой статье будет дана инструкция как создать шифрованный системный раздел и диск в ОС Linux Ubuntu 18.04.

    Шифрованная файловая система в Linux поддерживается на уровне ядра операционной системы. То есть не нужно искать какие-то навороченные криптографические программы и более того, использование шифрованных разделов Linux происходит прозрачно — пользователю ничего не нужно знать о шифровании и ничего не нужно делать для шифрования своих файлов и папок.

    Для того, чтобы создать надежную шифрованную систему под Linux нужно понимать какие части этой системы нужно защищать. Их четыре:

    • Системная область — обозначается как root или /.
    • Загрузочная область — обозначается как /boot. Может располагаться на отдельном разделе или на разделе root в виде папки.
    • Область пользовательских данных — обозначается как /home. Может располагаться на отдельном разделе или на разделе root в виде папки.
    • Область виртуальной памяти — обозначается как swap. Чаще всего размещается на отдельном разделе, но может располагаться на разделе root в виде файла.

    Защищать нужно все эти области.

    В статье будет рассмотрена упрощенная конфигурация разделов диска — /boot на отдельном разделе и диске, а swap, root и /home совмещены на одном разделе одного диска. Но для более сложных случаев распределения разделов технология защиты будет такая же.

    С шифрованием областей root, swap и home никаких трудностей нет, а вот с защитой /boot есть проблема. Дело в том, что из этой области системный загрузчик запускает initrd и ядро Linux. Если эту область зашифровать, тогда загрузчик не сможет запустить ядро и соответственно запуск ОС будет невозможен. То есть зашифровать /boot нельзя, но и оставлять открытой тоже нельзя, ведь в этом случае будет возможна подмена ядра, на другое, содержащее зловредный код, который перехватит пароль для расшифровки диска..

    Выход в том, чтобы разместить раздел /boot на съемном носителе, на флешке. Флешка будет своего рода электронным ключом к системе. Без нее запуск ОС с зашифрованного диска будет невозможен. То есть, защита раздела /boot осуществляется на физическом уровне — извлечением его из компьютера. И даже если злоумышленник воткнет в компьютер свою флешку с загрузчиком и ядром, запустить ОС он не сможет не зная пароля.

    Таким образом общая схема защиты такова:

    • Разделы root, swap и /home размещаются на полностью зашифрованном жестком диске или на зашифрованном разделе диска.
    • Раздел /boot размещается на съемном носителе.

    Установка шифрованной Убунты будет выполняться с использованием Ubuntu Live. Почему именно Live? Ведь дистрибутив Alternate позволяет сделать тоже самое без плясок с бубном, там опции шифрования есть в установщике. Лично мне не нравится то, что Alternate это исключительно установочный дистрибутив, больше его никак нельзя использовать — ни для диагностики, ни для работы. К тому, же установщик Alternate работает в консоли, а это как-то архаично в 21 веке. Так, что Live.

    Загрузочная флешка

    Необходимо загрузиться с диска или флешки Ubuntu Desktop 18.04 Live. Соответственно должен к компьютеру быть подключен жесткий диск на который будет выполнена установка. А также нужно приготовить чистую флешку емкостью от 100 Мб и выше, для установки загрузчика.

    Для проверки этой статьи я использовал сборку Ubuntu Desktop 18.04.3

    Подготовка жесткого диска и флешки

    На этом этапе нужно сделать разметку диска и флешки. Шифрование возможно в трех вариантах:

    • Диск с разметкой MBR (MS-DOS) и флешка с разметкой MBR.
    • Диск с разметкой MBR (MS-DOS), а флешка с разметкой GPT.
    • Диск с разметкой GPT и флешка с разметкой GPT.

    Разница между GPT и MBR разметками, заключается в том, что с диска GPT возможен запуск UEFI загузчика. Выбор варианта зависит от конкретных условий. На старом компьютере возможно отсутствие загрузки UEFI и тогда нужно использовать MBR разметку. На очень новом компьютере может отсутствовать поддержка загрузки с MBR дисков.

    Выбор разметки в первую очередь важен для флешки, поскольку на нее будет установлен загрузчик и ядро ОС. Какая разметка будет на системном HDD (или SSD) не столь важно.

    Чтобы можно было сделать нужную разметку, необходимо выбрать режим старта с загрузочной флешки Ubuntu. В загрузочном меню BIOS компьютера нужно выбрать между двух вариантов:

    • Просто название вашей флешки. В этом случае Live сессия будет запущена через загрузчик MBR и нужно будет для флешки делать разметку MBR. После старта загрузчика флешки, стартовое меню Ubuntu Live будет скрыто сиреневой заставкой.
    • Префикс UEFI и название вашей флешки. В этом случае Live сессия будет запущена через загрузчик UEFI и нужно будет для флешки делать разметку GPT. После старта загрузчика флешки, стартовое меню Ubuntu Live будет черного цвета.

    Черное меню — загрузчик UEFI. Сиреневая заставка вместо меню — загрузчик MBR.

    Если Live сессия будет запущена через загрузчик MBR, на флешке нужно будет сделать разметку MBR и один раздел с файловой системой Ext2 или Ext3. Кликните картинку для увеличения:

    GParted - на флешке разметка MBR и один раздел с файловой системой Ext2

    Если Live сессия будет запущена через загрузчик UEFI, на флешке нужно сделать разметку GPT и два раздела:

    1. С файловой системой FAT32. Тип раздела EFI. Для UEFI загрузчика.
    2. С файловой системой Ext2 или Ext3 для раздела /boot.

    Кликните картинку для увеличения:

    GParted - на флешке разметка GPT и раздел с файловой системой Ext2 и раздел EFI

    На жестком диске нужно создать один пустой, размеченный в файловую систему cleared. Разметка диска может быть MS-DOS (MBR) или GPT.

    В этом разделе, поздее, будет создан криптоконтейнер LUKS. Раздел под криптоконтейнер может занимать весь диск или только часть диска.

    GParted - на диске раздел cleared

    Выше приведен простейший вариант — криптоконтейнер на весь диск. Но на диске можно дополнительно создать и обычные, открытые разделы, кроме раздела для криптоконтейнера.

    Шаг третий, шифрование системного диска

    Шифрование всего раздела на жестком диске выполняется командой:

    sudo cryptsetup —cipher aes-xts-plain —key-size 512 —verify-passphrase luksFormat /dev/sda1

    Вместо /dev/sda1 подставьте номер диск и раздел на вашем диске. У вас это может быть не /dev/sda1! Узнать ваш диск и раздел вы можете в программе gparted, когда будете подготавливать диск.

    Важное примечание.

    Эта команда выдаст запрос и на его подтверждение нужно ввести слово YES, именно так, заглавными буквами. Этот запрос сделан для того, чтобы убедиться в том, что у вас на клавиатуре включен именно английский язык и выключен Caps Lock! После этого нужно будет дважды ввести ключевую фразу. Эта фраза должна быть длиннее чем 6-8 символов и не должна содержать часто повторяющихся знаков. В идеале это должен быть произвольный набор букв и цифр. Эту фразу лучше придумать заранее, еще до начала работы по созданию системы.

    При вводе ключевой фразы, в терминале не будут отображаться никакие знаки, поэтому печатать нужно внимательно. Но фраза будет запрошена дважды, так что если вы ошибетесь программа об этом сообщит.

    Создание криптоконтейнера LUKS

    После успешного создания криптоконтейнера, для дальнейшей работы нужно подключить этот шифрованный диск:

    sudo cryptsetup open /dev/sda1 crypted

    Эта команда выдаст запрос на ключевую фразу, которая была введена в предыдущей команде.

    Шаг четвертый, создание шифрованных разделов

    Следующий этап это создание шифрованных разделов внутри криптоконтейнера LUKS. Для создания этих разделов используется механизм LVM.

    sudo pvcreate /dev/mapper/crypted
    sudo vgcreate ubuntu /dev/mapper/crypted
    sudo lvcreate -L 8600M -n swap ubuntu
    sudo lvcreate -l 100%FREE -n root ubuntu
    sudo mkswap /dev/mapper/ubuntu-swap
    sudo mkfs.ext4 /dev/mapper/ubuntu-root

    Примечание.

    Размер swap раздела должен быть примерно на 10-20% больше чем размер оперативной памяти. Раздел root не менее 8-10 Гигабайт.

    В итоге у вас терминал должен выглядеть примерно так:

    Создание разделов LVM внутри LUKS

    Созданные разделы LVM, можно увидеть в программе «Диски» (Disks) (кликните картинку для увеличения):

    Созданные разделы LVM

    Шаг пятый, установка Ubuntu на шифрованный диск

    После создания зашифрованных разделов нужно запустить инсталлятор, ярлык которого есть на рабочем столе. Установка обычная.

    Далее нужно выбрать ручную разметку диска, в установщике это называется «Другой вариант» (кликните картинку для увеличения):

    Мастер установки Ubuntu 18.04 - способ разметки диска

    И далее вот таким образом подключить разделы. Раздел root в криптоконтейнере (кликните картинку для увеличения):

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела root на диске

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела root на диске

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела root на диске

    Раздел boot на флешке, для установки загрузчика (boot loader) GRUB (кликните картинку для увеличения):

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела Ext2 на флешке

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела Ext2 на флешке

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела Ext2 на флешке

    В этом примере используется файловая система Ext2, но можно и Ext3. Но не стоит на флешке использовать Ext4.

    Теперь настройка раздела, тоже на флешке, для UEFI загрузчика (кликните картинку для увеличения):

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела EFI на флешке

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела EFI на флешке

    Мастер установки Ubuntu 18.04 - ручгая настройка раздела EFI на флешке

    После этого нужно пройти мастер установки до конца и дождаться окончания установки. По завершении установки, установщик предложит перезагрузить компьютер.

    Перезагружать нельзя! Нужно остаться в Live Ubuntu, чтобы завершить настройку загрузки.

    Впрочем это некритично. Даже если вы по ошибке сделаете перезагрузку можно будет снова загрузиться в Ubuntu Live.

    Шаг шестой, подключение криптоконтейнера

    Сначала нужно выполнить следующие команды:

    sudo swapoff -a
    sudo dmsetup remove_all

    Эти две команды размонтируют шифрованный контейнер. Это нужно для того, чтобы далее подключить криптоконтейнер с настройками по умолчанию.

    Примечание. Этот шаг пропускается если вы сделали перезагрузку после завершения установки!

    Далее нужно подключить контейнер, это можно сделать двумя способами.

    Способ первый, через графический интерфейс

    Запустите программу «Диски» (Disks) и в ней откройте раздел LUKS, на вашем диске.

    Способ второй, через терминал:

    Нужно выполнить команду:

    echo «luks-$(ls -la /dev/disk/by-uuid | grep $(basename /dev/sda1) | cut -d ‘ ‘ -f 11)»

    Нужно понимать, что в этой команде вы должны подставить правильный раздел диска (/dev/sda1).

    Вывод должен быть таким (конечно идентификатор будет другой): luks-b224aaf0-774a-4548-a256-b11c5a657902

    Примечание. Если вывод команды не содержит такую строку, значит пробуйте другой параметр -f : 10, 12 и смотрите на результат. От версии к версии формат команды ls -la меняется. И вывод UUID диска может быть не на 11 позиции.

    Нужно скопировать эту строку и вставить в следующую команду:

    sudo cryptsetup open /dev/sda1 luks-b224aaf0-774a-4548-a256-b11c5a657902

    Для проверки можно выполнить команду:

    Запустите программу «Диски» (Disks) и в ней убедитесь в том, что LVM разделы swap и root примонтированы. Пример правильно открытого контейнера LUKS показан на скриншоте программы «Диски» (Disks), выше, в этой статье.

    Примечание. В версии 18.04.3, есть глюк, время от времени, после консольного подключения, контейнер LUKS открывается, но разделы LVM не монтируются. И они не видны в установщике. Я советую открывать криптоконтейнер через программу «Диски» (Disks).

    Шаг седьмой, настройка загрузки с шифрованного диска.

    Нужно выполнить вот эти команды:

    1. sudo mount /dev/mapper/ubuntu-root /mnt
    2. sudo mount /dev/sdb1 /mnt/boot
    3. sudo mount -o bind /dev /mnt/dev
    4. sudo mount -t proc proc /mnt/proc
    5. sudo mount -t sysfs sys /mnt/sys

    Проверьте, чтобы правильный диск был примонтирован в /mnt/boot! Это должна быть флешка с разделом boot.

    Теперь нужно изменить настройки LVM, заменить значение параметра use_lvmetad.

    sudo gedit /mnt/etc/lvm/lvm.conf

    В этом файле нужно найти параметр use_lvmetad=1 и заменить 1 на 0, use_lvmetad=0. Если не изменить параметр use_lvmetad,, тогда следующие команды (команда 4) будет выдавать ошибки.

    Далее выполнить следующие команды:

    1. sudo chroot /mnt /bin/bash
    2. echo «luks-$(ls -la /dev/disk/by-uuid | grep $(basename /dev/sdaX) | cut -d ‘ ‘ -f 11) UUID=$(ls -la /dev/disk/by-uuid | grep $(basename /dev/sda1) | cut -d ‘ ‘ -f 11) none luks,discard» > /etc/crypttab
    3. update-initramfs -u
    4. update-grub
    5. exit

    Примечание. После второй команды лучше выполнить проверочную команду cat /etc/crypttab чтобы посмотреть строку которая записана в crypttab. Строка должна быть примерно такой

    «luks-0eac1061-1dca-4a66-8497-7f3dda2b843a UUID=0eac1061-1dca-4a66-8497-7f3dda2b843a none luks,discard«:

    Вы можете изучить формат файла /etc/crypttab и сделать запись вручную, без использования команды echo (команда № 2). Особенно в том случае, если вы используете эту инструкцию для другого дистрибутива.

    Или, перед выполнением полной команды echo, выполнить ее в усеченном формате, с выводом только в терминал. Чтобы убедиться в том, что строка формируется правильно.

    Теперь можно пользоваться установленной зашифрованной Ubuntu. Конечно в BIOS необходимо указать загрузку с той флешки, где установлен раздел /boot!

    Примечание 1

    Важно понимать, что даже при таком тотальном шифровании сохраняются уязвимости.

    • Во-первых нужно сохранять в тайне ключевую фразу. Если вы ее запишите на стикер и приклеите на монитор это не хорошо. Если злоумышленник получит ключевую фразу, он сможет открыть ваш зашифрованный диск используя какой-либо Live дистрибутив Linux.
    • Во-вторых нужно на физическом уровне защищать загрузочную флешку. Не оставляйте ее без присмотра. Выключили компьютер — извлеките флешку и поместите ее в надежное место. Если ваша загрузочная флешка будет в свободном доступе, злоумышленник может установить на нее свой код для перехвата пароля.
    • В-третьих нельзя оставлять без присмотра включенный компьютер. Когда компьютер включен, доступен и зашифрованный диск и загрузочная флешка.

    Также необходимо понимать, что шифрование это защита на то время когда ваш компьютер выключен, а вас рядом нет. Но когда вы работаете на компьютере сохраняется возможность попадания на ваш компьютер вредоносных программ из Интернет. Такие программы могут «украсть» вашу информацию в то время как вы пользуетесь компьютером и Интернет.

    Поэтому важно принимать и другие меры защиты. Не «шарахаться» где попало в Интернет. Не устанавливать непроверенные программы. Использовать брандмауэр. А при более серьезных требованиях к безопасности нужно использовать другие средства, например tcb, SELinux, iptables.

    Примечание 2

    Сделайте копию загрузочной флешки, проще всего командой dd. Запишите этот образ на другую флешку или на лазерный диск. Копия на другую флешку удобнее поскольку при необходимости вы сразу ее сможете использовать. Но в любом случае эту копию, на чем бы она ни была, нужно будет хранить в защищенном месте. А после обновления ядра или загрузчика необходимо будет обновлять копию флешки.

    Простое копирование файлов с флешки на флешку не даст полную копию, потому, что в этом случае не будут скопированы MBR сектора загрузчика GRUB.

    Если вы живете в г. Краснодар, для вас есть простой способ установить Ubuntu Linux на шифрованный системный раздел — позвоните по телефону, который указан ниже и договоритесь со специалистом. Подробнее.

    Иван Сухов, 2019, 2020 г.г.

    При написании этой статьи была использована информация из публикации в блоге Андреаса Хёртера.

    Поделитесь этим сайтом с друзьями!

    Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.

    Или на телефон +7(928)274-0281.

    Даже небольшая сумма может помочь написанию новых статей 🙂

    Или поделитесь ссылкой на эту статью со своими друзьями.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *