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

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

  • автор:

Перенос работающей системы 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
  • шифрование дисков

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

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

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

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

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

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

  • Как включить полное шифрование диска в Ubuntu 22.04
  • Как расшифровать жесткий диск при загрузке

Включение полного шифрования диска в Ubuntu 22.04 Jammy Jellyfish Linux

Требования к программному обеспечению и соглашения командной строки Linux

Категория Требования, соглашения или используемая версия программного обеспечения
Система Ubuntu 22.04 Джемми Медуза
Программное обеспечение ЛВМ, ЛЮКС
Другой Привилегированный доступ к вашей системе Linux как root или через судо команда.
Соглашения # — требует данного линукс команды выполняться с привилегиями root либо непосредственно от имени пользователя root, либо с помощью судо команда
$ — требует данного линукс команды выполняться как обычный непривилегированный пользователь.

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

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

  1. Для начала вы просто выполните установку Ubuntu 22.04, как обычно. Смотрите наши Установка Ubuntu 22.04 статью, если вам нужна помощь с этим. Часть, которая нас интересует в этом уроке, начнется с меню «Тип установки», как показано ниже. Нам нужно выбрать «Дополнительные функции» в этом окне. Выберите «Дополнительные функции» в меню «Тип установки».
  2. В меню «Дополнительные функции» нам нужно выбрать оба параметра «Использовать LVM с новой установкой Ubuntu» и «Зашифровать новую установку Ubuntu для безопасности». Выберите эти два параметра, чтобы включить полное шифрование диска при установке.ПРИМЕЧАНИЕ
    Вы не сможете выбрать полное шифрование диска, если вы настроили разделы вручную или используете систему с двойной загрузкой.
  3. Нажмите OK, чтобы подтвердить этот выбор, затем нажмите кнопку «Установить сейчас». Продолжить установку
  4. Теперь пришло время выбрать пароль для нашего шифрования. Убедитесь, что вы выбрали надежный и безопасный пароль. Меню установки сообщит вам, как только сочтет надежность вашего пароля «хорошей». У вас также есть возможность создать файл ключа восстановления. Этот файл можно использовать для разблокировки системы вместо ввода пароля. Это может быть удобно, если однажды вы забудете пароль или захотите пройти аутентификацию, не вводя пароль. Создайте пароль шифрования и, при необходимости, ключ восстановления.
  5. Теперь вы можете пройти оставшуюся часть установки Ubuntu 22.04 как обычно. Когда вы будете загружать свой компьютер в будущем, вам нужно будет указать свой пароль, чтобы расшифровать жесткий диск. В противном случае никто не сможет загрузить установку Ubuntu 22.04. Аутентификация с паролем дешифрования

Заключительные мысли

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

Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, информацию о вакансиях, советы по карьере и рекомендации по настройке.

LinuxConfig ищет технического писателя (писателей), ориентированного на технологии GNU/Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU/Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU/Linux.

Ожидается, что при написании ваших статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области знаний. Вы будете работать самостоятельно и сможете выпускать не менее 2 технических статей в месяц.

  • 09/05/2022
  • 0
  • Файловая системаБезопасностьUbuntuАдминистрация

Установка системы с шифрованием всего диска

Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестком диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1) , а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим 2) 3) .

Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера 4) , поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.

Начиная с версии 12.10 возможность зашифровать весь диск целиком добавлена в варианты установки Ubuntu в стандартном инсталляторе.

Установка

Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с alternate в названии.

Подразумевается, что вы выполняете новую установку системы, если это не так — предварительно сохраните все свои данные и настройки, т. к. описанный ниже процесс подразумевает потерю всех данных на жёстком диске компьютера.

Загрузите систему с alternate — диска, выберите язык и приступите к установке:

Загрузите систему с alternate — диска, выберите язык и приступите у установке.

Выберите ручной режим разметки диска:

Выберите ручной режим разметки диска.

Если у вас новый диск или, если вы хотите очистить на нем таблицу разделов, выберите строку с названием диска:

Если у вас новый диск.

и создайте на нем новую таблицу разделов:

. создайте на нем новую таблицу разделов

После этого, создайте на диске раздел /boot, выбрав указателем свободное место на диске:

создайте раздел

создайте раздел

Укажите небольшой объем, от 300 МБ до 1ГБ, т.к. для /boot этого будет вполне достаточно:

от 300 до 1000 МБ лучше сделать раздел первичным и расположить в начале диска

В списке «использовать как» укажите /boot, не забудьте сделать раздел загрузочным:

не забудьте сделать его загрузочным

Далее, не размечая оставшееся место, переходим в пункт «Настроить шифрование для томов»:

переходим в пункт

Соглашаемся записать изменения:

соглашаемся на запись изменений

Выбираем «Create encrypted volumes»:

Выбираем

Далее выбираем (при помощи кнопки Space ) свободное место на диске и жмём «Продолжить»:

выбираем свободное место

Если у вас нет паранойи, можете просто нажать «Настройка раздела закончена», если есть — установите параметр «Стереть данные» в «Да»:

Снова соглашаемся на запись изменений на диск:

Соглашаемся на запись изменений

Далее выбираем «Finish»:

Выбираем

Далее установщик попросит вас ввести парольную фразу, которой он «закроет» диск:

введите пароль

После этого подтвердите пароль:

подтвердите пароль

Если вы используете слишком простой пароль 5) , установщик попросит подтверждения:

используйте сильный пароль

После создания шифрованного тома, нужно настроить LVM:

теперь настраиваем LVM

Снова соглашаемся на запись изменений:

ну да, опять

Создаем группу томов:

создаем группу томов

даем ей имя

И указываем в качестве устройств для группы только что созданный шифрованный диск:

тот, что crypt

После этого создаем логические тома:

создаем логические тома

Пример для swap:

для swap для swap

Аналогично создаем диски для root и home, выделяя им желаемый объем. Если у вас большой диск — можете оставить некоторый его объем свободным, позднее вы сможете добавить его к любому логическому тому 6) .

После этого выбирайте «Закончить»:

Закончить

Теперь нужно назначить файловые системы и точки монтирования для созданных дисков:

Выбирайте разделы, находящиеся в блоках, начинающихся на LVM, они названы, согласно именам, данным им вами при создании логических томов, например, в данном случае, это LV home, LV swap и LV root. Стоит заметить, что раздел root 7) не нужно делать загрузочным, т.к. роль загрузочного у нас выполняет отдельный раздел /boot.

По окончании, выбирайте «Закончить разметку и записать изменения на диск»:

Закончить.

И снова соглашаемся с записью изменений на диск (заодно можно ещё раз проверить все ли вы правильно разметили):

Проверяем и жмём

Далее продолжайте установку системы как обычно. Когда установщик спросит вас, зашифровать ли домашний каталог — откажитесь, ведь ваш диск уже зашифрован.

После завершения установки и перезагрузки система предложит вам ввести пароль для разблокировки шифрованного диска. Введите пароль и нажмите Enter .

Изменение пароля

Рекомендуется предварительно размонтировать все разделы, лежащие на зашифрованном диске, что в нашем случае означает, что для смены пароля на диске понадобится live-cd. Если вы не боитесь возможных последствий — можете пропустить этап с загрузкой live-cd и установкой необходимых программ, и сразу перейти к смене пароля.

Работа с live-cd

Загрузитесь с live-cd 8) , выберите «Попробовать Ubuntu» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните:

sudo apt-get update sudo apt-get install lvm2 cryptsetup

После успешной установки, переходите к этапу «Смена пароля».

Смена пароля

Описание

При установке диск шифруется при помощи связки LUKS и dm-crypt. LUKS использует в качестве идентификаторов доступа key slots, которые в данном случае выступают в виде пароля, однако могут быть и ключом. Всего доступно 8 слотов. По умолчанию (при создании шифрованного диска) используется слот 0.

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

Для операций со слотами — сначала нужно определиться с диском, на котором установлено шифрование. Выполните в терминале команду

sudo fdisk -l

Вывод будет примерно следующим:

Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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: 0x000882b1 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1953791 975872 83 Linux /dev/sda2 1955838 16775167 7409665 5 Extended /dev/sda5 1955840 16775167 7409664 83 Linux Disk /dev/mapper/sda5_crypt: 7586 MB, 7586443264 bytes .

Она даст вам список разделов на диске. Нужно найти тот раздел, на котором присутствует зашифрованный раздел. В данном случае это sda5.

Теперь можно просмотреть состояние слотов на этом разделе:

sudo cryptsetup luksDump /dev/sda5
testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 [sudo] password for testuser: LUKS header information for /dev/sda5 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24 f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb Key Slot 0: ENABLED Iterations: 89495 Salt: ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

Видим, что слот 0 содержит пароль, а слоты 1-7 имеют статус DISABLED.

Устанавливаем новый ключ

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

sudo cryptsetup luksAddKey /dev/sda5 Enter any passphrase: любой из существующих паролей (т. е. В нашем случае из слота 0) Enter new passphrase for key slot: Новый пароль Verify passphrase: Подтверждение нового пароля

Если теперь посмотреть слоты, то станет видно, что статус ENABLED стоит теперь уже у двух слотов:

sudo cryptsetup luksDump /dev/sda5
. Key Slot 0: ENABLED Iterations: 89495 Salt: ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 Key material offset: 8 AF stripes: 4000 Key Slot 1: ENABLED Iterations: 84916 Salt: 54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 Key material offset: 264 AF stripes: 4000 Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

Теперь можно удалить старый пароль, находящийся в слоте 0:

sudo cryptsetup luksKillSlot /dev/sda5 0 -------тут нужно указывать номер слота ^ Enter any remaining LUKS passphrase:Пароль из слота 1 (т. е. Из любого оставшегося слота)
sudo cryptsetup luksDump /dev/sda5
. Key Slot 0: DISABLED Key Slot 1: ENABLED Iterations: 84916 Salt: 54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 Key material offset: 264 AF stripes: 4000 Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED

И видим, что слот 0 стал DISABLED.

Заключение

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

Ссылки

Статья написана по мотивам вот этой вот статьи.

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

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

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

что, однако, потребует изменения размера файловой системы на нем, так что если не знаете как лучше поступить — добавьте этот объем сразу к разделу home

Как зашифровать 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.

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

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

Copyright digital.workshop 1999 — 2021.
Это произведение доступно по лицензии Creative Commons Attribution-NoDerivs 3.0.
Developed by digital.workshop

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

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