Насколько безопасен VPS-хостинг и за что вы отвечаете
VPS обеспечивает изоляцию на уровне гипервизора, однако безопасность сервера зависит от ваших настроек. Узнайте, как защититься от уязвимостей SSH, открытых портов и утечек.
Безопасен ли VPS-хостинг? Краткий ответ
Да. VPS-хостинг безопасен для задач, под которые его обычно приобретают, и это реальный шаг вперед по сравнению с виртуальным хостингом. VPS (virtual private server) — это виртуальная машина с собственным ядром, памятью, диском и учетными записями пользователей. Гипервизор, на котором она работает, изолирует эти ресурсы от других клиентов. Пользователь, арендующий соседний VPS на том же физическом сервере, не может прочитать ваши файлы, просмотреть список процессов, войти в вашу систему или перехватить ваш сетевой трафик.
Честный ответ состоит из двух частей. Провайдер владеет оборудованием и гипервизором. Вы владеете всем, что находится внутри виртуальной машины, и именно здесь происходит большинство реальных инцидентов. Взлом серверов обычно происходит через открытый порт, слабый пароль SSH, необновленный пакет или секретные данные, случайно опубликованные в файле. Взлом через гипервизор случается крайне редко.
Что на самом деле изолирует гипервизор
Гипервизор — это программное обеспечение, которое запускает виртуальные машины на одном физическом хосте. На KVM VPS (KVM означает kernel based virtual machine, стандарт для Linux-хостов) ваш сервер является полноценной виртуальной машиной. Он загружает собственное ядро. Хост выделяет ему фиксированную область физической памяти, а модуль управления памятью процессора блокирует любой доступ за пределы этой области, поэтому код, выполняющийся в другом гостевом окружении, не может обратиться к вашей оперативной памяти. Общая файловая система и общая таблица пользователей отсутствуют, поэтому права доступа к файлам на соседнем сервере никак не влияют на ваш.
Виртуальный хостинг работает иначе. Множество сайтов функционируют внутри одной операционной системы, под управлением одного веб-сервера и одной инсталляции PHP, как обычные учетные записи пользователей. Единственным барьером являются права доступа к файлам. Ошибка в правах или уязвимый плагин, запущенный от имени пользователя с избыточными полномочиями, могут привести к доступу к файлам другой учетной записи. Это тот разрыв, который устраняет переход с виртуального хостинга на VPS.
Проверяйте, что именно вы покупаете, так как не каждый тариф, продаваемый как VPS, является виртуальной машиной. Контейнерные решения (OpenVZ, LXC, Virtuozzo) используют общее ядро хоста и изолируют клиентов с помощью namespaces и cgroups вместо аппаратной виртуализации. Это более слабая граница, так как ошибка в ядре хоста становится ошибкой в ядре вашего сервера. Кроме того, на таких тарифах нельзя загружать модули ядра, что исключает использование некоторого программного обеспечения. KVM — более безопасный выбор по умолчанию. Уточняйте тип виртуализации перед оплатой.
Что может сделать «шумный сосед»
Совместное использование физического хоста влияет на производительность, и это единственный ресурс, который вы теряете. Гостевые системы на одной машине делят физический процессор и диски. Когда процессор занят другим клиентом, ваш виртуальный процессор простаивает, и Linux фиксирует это время как steal time: поле %st в утилитах top и vmstat. Если показатель steal time превышает несколько процентов в течение нескольких часов, это означает, что хост перегружен. Это не означает, что кто-то читает ваши данные. Решение заключается в смене тарифного плана или провайдера, при этом вы можете измерить реальную производительность процессора и диска, прежде чем принимать решение.
Стоит учитывать один побочный эффект от других клиентов, который не является уязвимостью безопасности. Если вы отправляете электронную почту со своего VPS, ваш IP-адрес находится в диапазоне, который используют и другие клиенты. Сосед, рассылающий спам, может привести к попаданию части этого диапазона в черные списки, из-за чего ваши письма будут попадать в папку «Спам» по причинам, от вас не зависящим. Провайдеры, которые следят за злоупотреблениями, поддерживают чистоту своих диапазонов. Уточните этот момент, если для вас важна работа с электронной почтой.
Что не может сделать «сосед» по серверу и редкие исключения
Клиент, использующий тот же физический сервер, не имеет доступа к вашим файлам. Он не может видеть ваши процессы, монтировать ваш диск или открыть shell на вашем сервере, так как ничего из этого не существует внутри его виртуальной машины. Стоит упомянуть одно исключение: рассматривайте любую частную сеть провайдера как сеть, которую вы делите с посторонними, и шифруйте передаваемые данные, вместо того чтобы полагаться на их невидимость.
Побег из гипервизора (hypervisor escape) возможен. Ошибка в уровне виртуализации может позволить коду внутри одной гостевой системы получить доступ к хосту, а с хоста — к любой другой гостевой системе. Такие ошибки обнаруживаются, публикуются с идентификатором CVE (common vulnerabilities and exposures) и исправляются. Хостинг-провайдеры оперативно устанавливают патчи, так как на этом уровне держится весь их бизнес. Для реализации такой атаки требуется рабочий эксплойт под конкретную версию гипервизора, что является слишком дорогим ресурсом для атаки на небольшую учётную запись хостинга.
Атаки по сторонним каналам между гостевыми системами также существуют. К ним относятся уязвимости семейств Spectre и Meltdown, которые используют общие процессорные кэши для извлечения небольших объёмов данных через границы изоляции. Обновления микрокода и ядра минимизируют эти риски, а скорость утечки данных в опубликованных исследованиях крайне мала. Описанные случаи являются скорее демонстрацией в рамках научных исследований, чем массовыми атаками. Риск не равен нулю, но он находится далеко не в начале списка угроз, которые могут вам навредить.
Где заканчивается зона ответственности провайдера и начинается ваша
Провайдер отвечает за здание, аппаратное обеспечение хоста, гипервизор и ядро хоста, физическую сеть, а также за панель управления, которая позволяет запускать, останавливать, переустанавливать сервер и создавать его снимки. Если что-то из этого выходит из строя, обязанность по устранению неисправности лежит на провайдере.
Вы отвечаете за всё, что находится выше уровня операционной системы. Это включает устанавливаемые пакеты, открытые порты, учетные записи и ключи для входа, применяемые обновления, резервные копии и код ваших приложений. Большинство тарифов VPS являются неуправляемыми: это означает, что никто не будет устанавливать патчи на ваш сервер, и тикет в службу поддержки не решит эту задачу. Стоит ознакомиться с разделом Разделение на управляемые и неуправляемые услуги перед покупкой, так как это определяет объем задач, которые ложатся на вас.
Одну часть вашей зоны ответственности легко упустить из виду: саму панель управления хостингом. Тот, у кого есть доступ к этой учетной записи, может переустановить ваш сервер или подключить диск к системе восстановления, не зная пароля от самой операционной системы. Включите двухфакторную аутентификацию (2FA) для учетной записи хостинга и не используйте этот пароль нигде больше.
Может ли ваш хостинг-провайдер видеть ваши данные?
Да, в принципе может, и это честный предел того, что дает вам VPS. Ваш образ диска находится на системе хранения провайдера. Их консоль предоставляет доступ к виртуальной машине на уровне экрана. Режим восстановления (rescue mode) позволяет загрузить другую систему с подключенным вашим диском. VPS защищает вас от других клиентов, но провайдер остается вне этой гарантии.
Если вы храните данные, которые должны оставаться нечитаемыми для хоста, шифруйте их в приложении до записи. Полное шифрование диска внутри гостевой системы помогает против копирования образа в состоянии покоя, но ключ должен находиться в оперативной памяти во время работы сервера, поэтому это не исключает провайдера из процесса. Тот же уровень доверия применим к выделенному серверу, который вы арендуете единолично, с той лишь разницей, что в нем на один общий слой меньше.
Что на самом деле взламывает VPS
Сервис, слушающий все интерфейсы. Базы данных, кэши, очереди сообщений и панели администратора по умолчанию часто привязываются к 0.0.0.0, что означает любой сетевой интерфейс, включая публичный. Сканирование интернета происходит постоянно и автоматически, поэтому на новый IP-адрес первый нежелательный запрос приходит через несколько минут после выхода в сеть. Redis без пароля, неавторизованный узел Elasticsearch, открытый Docker API на порту 2375 и панель администратора с учетными данными по умолчанию — всё это находится таким образом сканерами, которые даже не знают, кто вы. Привязывайте сервис к 127.0.0.1, если он нужен только локально, и блокируйте остальное на уровне межсетевого экрана.
Docker в обход межсетевого экрана. Публикация порта контейнера создает правила трансляции сетевых адресов (NAT), которые обрабатываются раньше правил ufw (uncomplicated firewall), поэтому контейнер может быть доступен из интернета, даже если ufw status сообщает, что порт закрыт. Это ловушка для тех, кто во всем остальном поступил правильно. Статью Почему Docker-порт игнорирует ufw стоит прочитать до того, как вы опубликуете порт контейнера.
SSH с включенными паролями. Откройте /var/log/auth.log на любом публичном сервере, и вы увидите строки вроде Failed password for root from 203.0.113.10 port 54312 ssh2 — тысячи таких строк, день и ночь. Боты перебирают распространенные имена пользователей и пароли. Вход по паролю плюс учетная запись root, принимающая подключения — это всё, что нужно злоумышленнику. Использование только ключей при отключенном входе для root превращает этот трафик в фоновый шум, который можно игнорировать.
Один приватный ключ везде. Один ключ, скопированный на каждый ноутбук и каждый сервер, означает, что один украденный ноутбук открывает доступ ко всему. SSH-ключи не имеют срока действия, поэтому ключ, переданный подрядчику два года назад, работает до сих пор. Принцип один ключ на человека и на машину ничего не стоит и ограничивает ущерб от кражи одного ключа.
Необновленные пакеты. Опубликованный CVE для вашего веб-сервера или фреймворка приложения — это общедоступная инструкция, и сканеры начинают проверять её наличие через несколько дней. Обновления безопасности — самая дешевая защита, и они могут выполняться автоматически: см. автоматические обновления безопасности в Ubuntu.
Утечка секретов. Пароли от баз данных и API-ключи хранятся в файлах .env, и эти файлы попадают в публичные репозитории или становятся доступны через веб-сервер, если он указывает не на ту директорию. Всё, что вставлено в контекст AI-помощника для программирования, также может оказаться в логах, что является отдельной темой: как не допустить попадания секретов к агенту.
Всё запущено от имени root. Когда ваше приложение работает от имени root, одна ошибка в нем дает контроль над всей машиной, так как внутри сервера не остается границ, способных остановить распространение угрозы.
Ваша часть работы
Ни один из перечисленных ниже пунктов не относится к работе гипервизора. Всё это находится в зоне вашей ответственности, и именно от этого зависит безопасность вашего VPS.
- Правильно выполните первоначальную настройку: первые десять минут на новом VPS охватывают создание пользователя без прав root и настройку межсетевого экрана.
- Ограничьте удаленный доступ: укрепление SSH на VPS.
- Закройте порты, которые вы не используете: основы работы с ufw.
- Предоставляйте каждому сервису только те права, которые ему необходимы: принцип наименьших привилегий для пользователей на VPS.
- Замедлите попытки подбора паролей: fail2ban в Ubuntu 24.04.
- Создавайте резервные копии и восстанавливайте их хотя бы один раз: резервное копирование с помощью restic на VPS.
Часть работы провайдера выполнена к моменту загрузки вашего сервера. Ваша часть занимает около часа в первый день и несколько минут в месяц в дальнейшем. Если вы всё ещё сравниваете варианты, что такое VPS на самом деле поможет разобраться в основах.
FAQ
Может ли другой клиент на том же физическом сервере прочитать мои файлы?
Нет, если речь идет о KVM VPS. Ваш сервер — это виртуальная машина с собственным ядром и виртуальным диском, а также выделенной областью физической оперативной памяти; процессор блокирует любые попытки доступа за пределами этой области. Общая файловая система между гостевыми машинами отсутствует, поэтому права доступа к файлам на сервере соседа не имеют никакого значения внутри вашей системы. Контейнерные решения, такие как OpenVZ и LXC, используют общее ядро хоста и обеспечивают более слабую изоляцию, поэтому уточняйте тип приобретаемой услуги.
Безопаснее ли VPS, чем виртуальный хостинг?
С точки зрения изоляции — да. На виртуальном хостинге множество сайтов работают внутри одной операционной системы, и единственным барьером являются права доступа к файлам, поэтому ошибка в другой учетной записи иногда может привести к раскрытию ваших данных. На VPS границей является виртуальная машина. Обратная сторона заключается в том, что на виртуальном хостинге обновления устанавливает провайдер, тогда как на неуправляемом VPS это делаете вы. VPS безопаснее только в том случае, если вы действительно устанавливаете обновления и закрываете лишние порты.
Может ли хостинг-провайдер прочитать мои данные?
В принципе, да, и ни один продукт VPS этого не меняет. Образ диска хранится на оборудовании провайдера, консоль предоставляет доступ к работающей машине на уровне экрана, а режим восстановления позволяет загрузить другую систему с подключенным вашим диском. Если какие-то данные должны оставаться недоступными для хоста, шифруйте их на уровне приложения перед записью. Шифрование диска внутри гостевой системы все равно оставляет ключ в оперативной памяти во время работы сервера, поэтому оно не исключает провайдера из модели доверия.
Каков самый распространенный способ взлома VPS?
С большим отрывом это открытый сервис или слабые учетные данные для SSH. Автоматизированные сканеры непрерывно проверяют каждый публичный IP-адрес, поэтому база данных, привязанная к 0.0.0.0 без пароля, или панель администратора с учетными данными по умолчанию обнаруживаются за минуты, а не за месяцы. /var/log/auth.log на любом публичном сервере демонстрирует SSH-составляющую этой проблемы: повторяющиеся строки Failed password for root от адресов со всего мира. Уязвимости гипервизора существуют, но это инструменты исследовательского уровня, направленные на высокоценные цели, а не причина обычных взломов.