Предложение года Оплатите 1 месяц — получите 2 На все VPS и выделенные серверы, при любом сроке: оплачиваете 12 месяцев — сервер работает 24. Удвоить срок
Главная / Руководства по приватному хостингу / Полнодисковое шифрование на VPS: LUKS и что оно реально защищает
Эксплуатация

Полнодисковое шифрование VPS

Шифрование диска хорошо отвечает на один вопрос и почти никак — на все остальные. Вот как настроить LUKS на арендованном сервере — зашифрованный том с данными, полное шифрование корня с удалённой разблокировкой через dropbear, либо bare metal, зашифрованный при установке, — и как понять, какую из ваших угроз это реально устраняет.

Без KYC
Только крипто
Без логов
DMCA игнорируется
Полный root
NVMe SSD

Полнодисковое шифрование отвечает ровно на один вопрос: что получит противник, если завладеет вашим накопителем при выключенной машине? На все остальные вопросы — что видит хостинг-провайдер, что происходит при захвате работающего сервера, в безопасности ли резервные копии — ответ другой, и попытка свести их все к одному — верный способ получить шифрование, которое не защищает ровно ничего.

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

От чего шифрование в состоянии покоя действительно защищает

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

СитуацияПомогает ли LUKS?
Диск списан, возвращён по гарантии или продан по окончании срока службыДа — хрестоматийный случай, и он встречается куда чаще любого драматичного
Машину изымают выключенной, либо накопитель извлекают из стойкиДа, при условии, что ключ не хранится на самой машине
Провайдер копирует ваш виртуальный диск, пока сервер работаетКопия — это шифротекст, но ключ находится в RAM того же физического хоста
Противник на уровне гипервизора снимает дамп памяти гостевой системыНет. Ключ разблокированного тома находится в памяти ядра
Кто-то получает root на вашем работающем сервереНет. Файловая система смонтирована; её читают точно так же, как и вы
Ваши резервные копии покидают сервер в открытом видеНет. Это решается на стороне источника, а не назначения
Вам предписано предоставить парольную фразуЭто не технический вопрос — рассмотрен далее

Воспринимайте это как определение, а не как разочарование. Устранение класса угроз, связанного с изъятым диском, стоит часа работы именно потому, что от этого класса у вас больше нет иной защиты, а происходит это без всякого целенаправленного давления: оборудование выходит из строя и возвращается, массивы выводятся из эксплуатации, тома переиздаются следующему арендатору. Шифрование превращает всё это в незначащее событие.

Полнодисковое шифрование VPS
Шифрование в состоянии покоя хорошо отвечает на один вопрос: чего стоит закрытый том тому, кто им завладел. Где живёт ключ — от этого зависит всё остальное.

Почему VPS — не ноутбук

На ноутбуке логика очевидна сама по себе. Вы вводите парольную фразу при загрузке, ключ существует только в RAM, пока машина включена, а выключение ставит точку в этой истории. У сервера никого нет за консолью. Ключ должен подавать что-то на каждой загрузке, и каждый кандидат на роль этого «что-то» меняет доступность на защищённость:

  • Ключ вводит человек. Самая надёжная схема, поскольку ключ никогда не хранится на машине, — но сервер не сможет вернуться из перезагрузки без вас, и вам нужен способ попасть внутрь ещё до существования операционной системы.
  • Ключ хранит сама машина. Удобно, и в большинстве самодельных конфигураций контрпродуктивно: файл ключа на том же виртуальном диске означает, что ключом владеет тот, кто владеет диском.
  • Ключ передаёт другая машина. Разблокировка, привязанная к сети, — как правило, Clevis совместно с сервером Tang. Сервер разблокируется сам, только пока способен дотянуться до контролируемого вами хоста, и это действительно полезное свойство — перенос доверия, а не его устранение.

Есть и второе отличие, которое обходит стороной большинство гайдов. На VPS /boot и initramfs хранятся в открытом виде, они находятся на носителе, который в конечном счёте контролирует провайдер, и никакую цепочку загрузки проверить нельзя — нет собственного TPM, нет measured boot, нечего аттестовать. Хост, которому нужна ваша парольная фраза, мог бы изменить initramfs и получить её при следующей разблокировке. Это не описание того, что делаем мы; это описание того, что допускает архитектура, — а это единственный честный способ рассуждать о компьютере, который вы арендуете. Наше сравнение VPS и выделенных серверов разбирает ту же границу доверия со стороны железа, а наш честный ответ об офшорной анонимности применяет ту же дисциплину к маркетингу вокруг неё.

Три схемы развёртывания, которые того стоят

Единственно правильной настройки не существует — есть та, чей сценарий отказа вам по силам пережить. Эти три схемы охватывают практически все реальные случаи.

СхемаЧто защищаетЦена перезагрузкиРиск блокировки
1. Зашифрованный том с данными, открываемый вручную после загрузкиВажные данные — база данных, почтовое хранилище, документы, ключиСервер возвращается сам; хранилище ждёт васОчень низкий
2. Полное шифрование корня LUKS с удалённой разблокировкой через dropbearВсё: системные журналы, конфигурация, swap — целикомКаждая перезагрузка требует вас, по SSH, до завершения загрузкиРеальный — сломанная сетевая конфигурация initramfs оставляет машину без доступа
3. Bare metal, зашифрованный при установке, парольная фраза вводится через IPMIВсё, причём под ключом вообще нет гипервизораКаждая перезагрузка требует вас, за внеполосной консольюНизкий — IPMI обеспечивает независимый путь входа

Начните с первой схемы, если нет особой причины поступить иначе. Она даёт основную часть защиты за малую долю эксплуатационного риска и обладает единственным свойством, которого нет у двух других: ничто в ней не способно помешать серверу снова выйти в сеть. Третья схема — единственная, где парольная фраза — это факт, недоступный хостеру, а не обещание, которое хостер даёт, поэтому наши выделенные серверы получают LUKS при установке с парольной фразой, которую мы никогда не видим.

Шифрование тома с данными на работающем VPS

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

  • Установите инструментарий. apt install cryptsetup. Если по вашему тарифу выдан второй блочный диск, используйте его напрямую и пропустите следующий шаг.
  • Создайте контейнер. На VPS с одним диском практичный путь — обычный файл: fallocate -l 40G /var/lib/vault.img. Он ведёт себя как диск, и его можно позже увеличить.
  • Отформатируйте его как LUKS2. cryptsetup luksFormat --type luks2 /var/lib/vault.img. Оставьте значения шифра по умолчанию; ниже разобран единственный параметр, который стоит трогать на небольшом сервере.
  • Откройте его и разместите файловую систему. cryptsetup open /var/lib/vault.img vault даёт вам /dev/mapper/vault; затем mkfs.ext4 /dev/mapper/vault и mount /dev/mapper/vault /srv/vault.
  • Перенесите важные данные, затем перенаправьте на них сервисы. Bind-монтирование или rsync при остановленном сервисе обычно чище символических ссылок — базы данных особенно не любят, когда за ними «бегают».
  • Сделайте резервную копию заголовка LUKS. cryptsetup luksHeaderBackup /var/lib/vault.img --header-backup-file vault-header.bin, затем перенесите этот файл с сервера. Несколько повреждённых килобайт в начале контейнера безвозвратно уничтожают все байты за ними, и это единственная существующая страховка.
  • Закройте его и убедитесь, что сможете войти снова. umount /srv/vault && cryptsetup close vault, затем откройте его заново по своим записям, а не по памяти. Сделайте это до того, как внутри появится что-то ценное.

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

Ловушка миграции. Копирование открытых данных в зашифрованное хранилище не стирает их из места, откуда они пришли. На виртуализированном хранилище shred в принципе ненадёжен — уровень, который вы перезаписываете, не является тем уровнем, где реально хранятся данные. Если материал действительно чувствителен, начните зашифрованным на новом сервере, а не мигрируйте в шифрование на старом.

Полное шифрование корня с удалённой разблокировкой по SSH

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

  • Устанавливайте сразу зашифрованным. Загрузите установщик дистрибутива через загрузку собственного ISO и выберите управляемое разбиение диска с зашифрованным LVM. Преобразовать уже работающую корневую файловую систему на месте технически возможно, но риск того не стоит.
  • Добавьте SSH-сервер, работающий до загрузки. apt install dropbear-initramfs, затем поместите свой публичный ключ в /etc/dropbear/initramfs/authorized_keys. Это отдельный набор ключей, не связанный с обычным SSH, — используйте выделенный ключ.
  • Заприте его. В /etc/dropbear/initramfs/dropbear.conf задайте DROPBEAR_OPTIONS="-I 180 -j -k -p 2222 -s": без входа по паролю, без переадресации портов, собственный порт и тайм-аут простоя, чтобы зависшая сессия не держала загрузку открытой.
  • Дайте initramfs сеть. Добавьте статический параметр ip= в GRUB_CMDLINE_LINUX в файле /etc/default/grub — формат такой: ip=address::gateway:netmask::interface:off. Расчёт на DHCP на этом этапе — типичный способ остаться без доступа.
  • Пересоберите и перезагрузитесь. update-initramfs -u && update-grub, затем перезагрузитесь и подключитесь командой ssh -p 2222 root@your-server, после чего выполните cryptroot-unlock. Клиент предупредит о неизвестном ключе хоста: у initramfs свой собственный ключ, это ожидаемо, и его стоит закрепить отдельной записью в known_hosts.
  • Проверьте путь отказа заранее, до того как на него придётся положиться. Установите обновление ядра, перезагрузитесь, разблокируйте снова. Обновления ядра пересобирают initramfs, и именно тогда всплывает ошибка конфигурации.
Не развёртывайте это без внеполосной консоли. Если dropbear не поднимается, SSH вам не поможет — единственный путь назад — консоль, работающая ещё до операционной системы. На каждом VPS ServHidden есть доступ к консоли через VNC, а на каждом выделенном сервере — полноценный IPMI/KVM, так что путь восстановления существует. У провайдера без этого схема один — единственный ответственный выбор.

Два параметра, которые важны, и ловушка небольшого VPS

LUKS2 по умолчанию использует AES-XTS с 512-битным ключом и вывод ключа через Argon2id. Оба выбора верны. Ручная настройка шифра — способ одновременно замедлить и ослабить систему, а интернет полон скопированных командных строк, которые делают именно это. Однако две вещи заслуживают внимания.

Производительность — не проблема, пока не становится ею

Проверьте аппаратное ускорение командой grep -m1 -o aes /proc/cpuinfo и измерьте его командой cryptsetup benchmark. На любом CPU с AES-NI — а таковы все узлы, на которых мы работаем, — AES-XTS обрабатывает несколько гигабайт в секунду на ядро, что с запасом превышает то, что способен отдать один виртуальный диск, поэтому заметная цена — несколько процентов CPU при интенсивном I/O и небольшой рост задержки. Без AES-NI картина переворачивается, и шифрование становится узким местом; это тот единственный случай, когда альтернативный шифр — реальное решение, а не карго-культ.

Именно память Argon2id создаёт проблему

Argon2id намеренно требователен к памяти, и cryptsetup калибрует его во время форматирования по объёму RAM той машины, на которой идёт форматирование. Отформатируйте том на рабочей станции с 32 ГБ RAM, перенесите его на VPS с 1 ГБ RAM — и разблокировка может провалиться напрямую, потому что памяти, которую требует вывод ключа, попросту нет, а внутри initramfs всё ещё хуже, поскольку доступно значительно меньше памяти, чем в работающей системе. На небольших инстансах зафиксируйте значение: cryptsetup luksFormat --type luks2 --pbkdf argon2id --pbkdf-memory 262144 /dev/vdb ограничивает его 256 МБ. Меньшее значение — это реальное снижение стойкости к офлайн-перебору, поэтому компенсируйте его более длинной парольной фразой.

Один необязательный флаг заслуживает осознанного решения, а не бездумного копирования: --allow-discards пропускает TRIM к нижележащему устройству, что полезно для износа SSD и стабильной производительности, но заодно раскрывает, какая часть тома используется и примерно где. По умолчанию он выключен. Включайте его, понимая, что именно он раскрывает.

Swap, журналы, снапшоты — то, что забывают

Зашифрованное хранилище, вокруг которого протекает открытый текст, — самый распространённый из всех сбоев, и он остаётся незаметным, пока кто-то не присмотрится.

  • Swap. Всё, что находится в памяти, может быть выгружено на диск — включая материалы, которые вы аккуратно поместили в хранилище. Либо отключите swap, либо выдавайте ему случайный ключ на каждой загрузке строкой /etc/crypttab вида swap /dev/vdb1 /dev/urandom swap,cipher=aes-xts-plain64,size=256.
  • Всё, что пишет туда, куда вы не смотрели. /var/log, /tmp, каталог данных базы, /var/lib/docker, история команд оболочки, журналы systemd. Шифрование /srv/vault при том, что PostgreSQL пишет в /var/lib/postgresql, не даёт ровным счётом ничего. Составьте полный список, прежде чем шифровать.
  • Снапшоты. Блочный снапшот зашифрованного тома — это шифротекст, и потому с ним всё в порядке. Снапшот, фиксирующий состояние памяти, — совершенно другой объект и может содержать ключ. Прежде чем использовать панель провайдера, выясните, какой именно снапшот она делает.
  • Резервные копии. Решать эту задачу на стороне назначения — неправильный подход. Такие инструменты, как restic и BorgBackup, шифруют на стороне источника ключом, который получатель никогда не видит, поэтому сервер резервного копирования может быть обычной машиной в другой юрисдикции, а не доверенной.
  • Открытый текст, который вы уже куда-то отправили. Шифрование в состоянии покоя не действует задним числом. Всё, что уже скопировано, отправлено по почте или синхронизировано в другое место, остаётся за пределами границы, которую вы проводите только сейчас.

Где живёт ключ — в этом вся конструкция

Каждая из перечисленных выше схем — это, по сути, утверждение о хранении ключа. Существует четыре варианта, и они не равноценны:

  • В голове, вводится при каждой загрузке. Максимальная защита, максимальное эксплуатационное неудобство. Машину действительно нельзя прочитать без вас.
  • В файле на зашифрованной машине. Защищает от наивной перепродажи диска и больше ни от чего. Если этот файл лежит на открытом /boot, он не защищает вообще ни от чего — самая распространённая ошибка в самостоятельно настроенном шифровании.
  • На контролируемой вами машине, получается по сети. Clevis, привязанный к серверу Tang: clevis luks bind -d /dev/vdb tang '{"url":"https://tang.example.net"}'. Сервер загружается без участия человека, пока может дотянуться до «дома», и отказывается разблокироваться где-либо ещё. Отлично подходит для безголовых парков серверов и делает хост Tang тем объектом, который необходимо защищать.
  • В TPM. Имеет смысл на оборудовании, которым вы владеете. На VPS виртуальный TPM предоставляет тот же гипервизор, который вы пытаетесь исключить из доверия, так что он решает вопрос удобства, а не доверия.

Один тест проясняет большинство конструкций: если машина может дойти до приглашения входа без вас, значит, ключ находится на машине. Это вполне может быть разумным компромиссом — многим нагрузкам важнее необслуживаемая перезагрузка, чем устойчивость к целеустремлённому противнику. Делайте этот выбор осознанно и не выдавайте результат за нечто иное.

Что видит ваш хостер и где начинается юрисдикция

На VPS под вами находится гипервизор. Мы не читаем память гостевых систем и не храним журналы трафика, соединений или DNS-запросов, а также не ведём консольный журнал — но это политики, и честная формулировка такова, что VPS просит вас им довериться. На bare metal между вами и кремнием гипервизора нет: полнодисковое шифрование, настроенное при установке с парольной фразой, которую мы никогда не получаем, — это физическое свойство машины, а не заверение с нашей стороны. Именно эта разница, а не выбор шифра, и есть то, между чем вы на самом деле выбираете.

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

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

Девять ошибок, превращающих шифрование в декорацию

  • Автоматическая разблокировка из файла ключа на том же диске. Так устроено большинство «зашифрованных» серверов — это равносильно тому, чтобы оставить ключ в замке.
  • Шифрование тома, до которого чувствительные данные никогда не доходят. Хранилище пустует, а база данных находится не в нём.
  • Отсутствие резервной копии заголовка LUKS. Один повреждённый сектор в начале контейнера — и все байты за ним потеряны навсегда.
  • Отсутствие проверки пути разблокировки. Затем обновление ядра пересобирает initramfs, и следующая перезагрузка превращается в спасательную операцию.
  • Форматирование на большой машине и разблокировка на маленькой. Argon2id требует память, которую VPS предоставить не может, и том не откроется.
  • Выбор парольной фразы как обычного пароля для входа. Ничто не ограничивает скорость офлайн-атаки, кроме функции вывода ключа. Именно длина покупает время.
  • Миграция открытых данных в шифрование в предположении, что оригинал исчез. На виртуализированном хранилище перезапись не гарантирует стирание.
  • Отправка парольной фразы по тому же каналу, что используется для администрирования машины. OpSec сервера разбирает проблему корреляции, которую это создаёт.
  • Путаница между шифрованием провайдера и собственным. «Вся инфраструктура зашифрована в состоянии покоя» — включая нашу — защищает инфраструктуру. От самой инфраструктуры защищает только ключ, которым владеете вы.

Так стоит ли делать это на VPS?

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

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

FAQ

Шифрование сервера — частые вопросы

01 Защищает ли полнодисковое шифрование мой VPS от хостинг-провайдера?

Нет, пока сервер работает. После разблокировки тома ключ находится в памяти ядра на физическом хосте, а противник на уровне гипервизора может получить доступ к памяти. От чего шифрование действительно защищает — так это от любого, кто завладеет вашим накопителем, пока том закрыт: списанные или перепроданные диски, переизданный том, машина, изъятая в выключенном состоянии. Если ваша модель угроз действительно включает сам хостинг, ответ — выделенный bare metal, зашифрованный при установке, с парольной фразой, которую хостинг никогда не получает, а не другой шифр на VPS.

02 Можно ли зашифровать уже существующий VPS без переустановки?

Данные можно зашифровать без переустановки: создайте файл-контейнер LUKS командой fallocate, отформатируйте его командой cryptsetup luksFormat, откройте его, разместите на нём файловую систему и перенесите внутрь базу данных, почтовое хранилище и ключи. Это занимает около пятнадцати минут и не требует простоя, кроме перезапуска затронутых сервисов. Шифрование корневой файловой системы на месте — другое дело: это возможно, но ненадёжно, а переустановка с собственного ISO с зашифрованным LVM одновременно быстрее и безопаснее.

03 Как работает удалённая разблокировка, если у консоли никого нет?

Небольшой SSH-сервер, dropbear, встроен в initramfs и запускается ещё до открытия зашифрованного корня. Вы устанавливаете dropbear-initramfs, добавляете публичный ключ, даёте initramfs статический IP, пересобираете его, а на каждой загрузке подключаетесь на порт dropbear и выполняете cryptroot-unlock. Парольную фразу вводите вы сами, и на сервере она никогда не хранится. Не разворачивайте это без внеполосной консоли — VNC на VPS, IPMI на выделенном сервере, — потому что если dropbear не поднимется, SSH вас не спасёт.

04 Замедляет ли LUKS работу сервера?

На любом CPU с аппаратным ускорением AES-NI — практически нет. AES-XTS работает со скоростью в несколько гигабайт в секунду на ядро, что превышает то, что способен отдать один виртуальный диск, поэтому практическая цена — несколько процентов CPU при интенсивном I/O и небольшой рост задержки. Запустите cryptsetup benchmark на своей машине, чтобы увидеть реальные цифры. Без AES-NI накладные расходы становятся заметными, и это единственная ситуация, где стоит рассмотреть альтернативный шифр.

05 Что произойдёт, если я потеряю парольную фразу?

Данные потеряны. Не существует ни механизма восстановления, ни сброса на стороне провайдера, ни чёрного хода — именно это свойство вы и покупали. Два действия снижают риск: LUKS2 поддерживает несколько слотов ключей, поэтому добавьте вторую длинную парольную фразу или файл ключа, хранящийся отдельно, и сделайте резервную копию заголовка LUKS командой cryptsetup luksHeaderBackup, храня её вне сервера. Повреждённый заголовок уничтожает том так же полно, как и забытая парольная фраза.

06 Законно ли шифрование диска, и могут ли меня заставить выдать ключ?

Использование шифрования диска законно во всех семи юрисдикциях, где мы работаем, и это обычная практика, а не подозрительное действие. Принудительное раскрытие — отдельный вопрос, и оно следует за человеком, а не за оборудованием: Великобритания, Франция и Австралия — среди стран, чьи законы могут обязать предоставить ключ дешифрования под угрозой наказания за отказ. Это определяется тем, где вы находитесь и какой суд имеет над вами юрисдикцию, и никакая настройка сервера этого не меняет.

07 Помогает ли шифрование, если сервер захватывают работающим?

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

08 Настолько ли безопасен файл-контейнер LUKS, как шифрование целого блочного устройства?

С криптографической точки зрения — да: в обоих случаях применяются один и тот же заголовок LUKS2, шифр и вывод ключа, а после открытия контейнер ведёт себя как блочное устройство. Отдельный диск немного аккуратнее и избегает фрагментации на файловой системе хоста, но на VPS с одним диском файл-контейнер — стандартный подход, не жертвующий ничем существенным. На безопасность влияет не формат контейнера, а то, где живёт ключ и какие данные вы туда на самом деле помещаете.

Шифруйте на оборудовании, выбранном под задачу

KVM VPS с консолью VNC и загрузкой собственного ISO, либо выделенные bare-metal серверы с IPMI и LUKS при установке — в семи офшорных юрисдикциях, без KYC, оплата только криптовалютой. Ваша парольная фраза, ваш ключ, никакой привязки к личности.

Тарифы VPS Выделенные серверы Офшорный хостинг