Для Linux есть множество разных решений по шифрованию разделов, мы воспользуемсяdm-crypt, простой и надежной системой, которую использует Microsoft в своем облаке Azure. dm-crypt — стандартная система шифрования дисков на уровне ядра Linux, основанная на: device mapper, подсистеме создающей и обеспечивающей прозрачную работу с виртуальными устройствами; и crypto API — подсистеме шифрования, которая используется для работы VPN по протоколу IPsec и ряде других функций. У dm-crypt есть два способа работы с криптоконтейнером, plain — при котором данные не содержат видимого формата и выглядят как случайный набор байт, и LUKS — который предоставляет больше возможностей, например автоматическое определение криптоконтейнеров системой, но при этом файл будет содержать метаданные, по которым можно определить сам факт шифрования. Мы будем пользоваться вторым способом, через протокол LUKS.Сервер выбирается аналогично первому разделу, за исключением операционной системы. Пропустим шаги по предварительной настройке, их можно найти в руководстве RuVDSи перейдем к установке системы шифрования. Обновим список пакетов и установим cryptsetup — интерфейс командной строки dm-crypt (для упрощения, все команды будут вводиться из под пользователя root):apt update apt install cryptsetup Для хранения зашифрованных данных надо сначала создать специальный файл, который потом будет выступать в качестве устройства. Он обязательно должен быть неразрывным и для этого есть несколько способов, разной степени безопасности.Один из них — с помощью команды fallocate.Создадим файл размером 512 мегабайт, с именем test-crypt в домашней директории пользователя root:fallocate -l 512M /root/test-crypt Это способ самый простой и быстрый, но наименее безопасный, потому что команда просто выделяет место на диске, не перезаписывая данные, которые там содержались.Более безопасно можно создать файл с помощью утилиты dd (dataset definition), она позволяет не только создать файл, но и записать в него информацию, которая затрет предыдущее содержимое из выделенной области. Например нулями из виртуального устройства /dev/zero:dd if=/dev/zero of=/root/test-crypt bs=1M count=512 Наиболее параноидальный способ, это заполнить файл из /dev/urandom. Но он и наиболее медленный:dd if=/dev/urandom of=/root/test-crypt bs=1M count=512 После создания файла, надо преобразовать его в раздел LUKS:cryptsetup -y luksFormat /root/test-crypt ОтветьтеYESна запрос программы, а затем задайте пароль. В отличии от BitLocker здесь не будет никаких способов восстановления, секретных ключей и прочих удобств, если забыл пароль — данные будут безвозвратно потеряны! Очень ответственно подойдите к этому вопросу. Потому обязательно надо использовать опцию-y, которая запрашивает подтверждение пароля. Проверим, что у нас получилось, с помощью утилитыfile:file /root/test-crypt Вывод должен показать что-то вроде:test-crypt: LUKS encrypted file, ver 2 [, , sha256] UUID: 820a6557-ee7b-4f67-9f53-eb11586cc5dc Это значит, что криптоконтейнер создан и готов к использованию, осталось его развернуть в устройство crypt-volume: cryptsetup luksOpen /root/test-crypt crypt-volume Создать там файловую систему:mkfs.ext4 -j /dev/mapper/crypt-volume И выбрать точку монтирования: mkdir /mnt/crypt-files Зашифрованное устройство готово к использованию, осталось только смонтировать его и пользоваться как обычным диском, все операции по шифрованию и дешифрованию происходят «на лету», прозрачно для пользователя и системы.mount /dev/mapper/crypt-volume /mnt/crypt-files Проверим наше устройство. Скопируем в него какие-нибудь данные, например содержимое директории /etc/ssh и посмотрим, что скажет утилита dhcp -r /etc/ssh/ /mnt/crypt-files/ df -h Filesystem Size Used Avail Use% Mounted on udev 928M 0 928M 0% /dev tmpfs 191M 648K 191M 1% /run /dev/sda1 20G 2.7G 16G 15% / tmpfs 955M 0 955M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 955M 0 955M 0% /sys/fs/cgroup tmpfs 191M 0 191M 0% /run/user/1000 /dev/mapper/crypt-volume 465M 1.3M 429M 2% /mnt/crypt-files Как мы видим, устройство смонтировано, имеет определенный нами объем и заполнено примерно на 1% файлами из директории ssh.Для того, чтобы закончить работу с криптоконтейнером, надо его отмонтировать, а затем отключить:cd / umount /mnt/crypt-files cryptsetup luksClose crypt-volume Работа с устройством закончена и у нас есть самый обычный файл, зашифрованный с помощью нашего пароля, данные которые недоступны постороннему, даже если он получит физический доступ к серверу. Чтобы снова воспользоваться криптоконтейнером, надо будет его опять инициализировать и смонтировать:cryptsetup luksOpen /root/test-crypt crypt-volume mount /dev/mapper/crypt-volume /mnt/crypt-files На этом обзор систем шифрования данных, которые можно применять на виртуальных серверах — закончен.Всем хорошего коннекта!