Арендовали VPS: первые настройки безопасности
Сразу после аренды VPS нужно закрыть базовый минимум: обновить систему, завести отдельного пользователя, перейти на вход по SSH-ключам, запретить вход под root и по паролю, включить файрвол, поставить Fail2ban, настроить автоматические обновления и бэкапы вне сервера. У человека с опытом на это уходит час-полтора, и откладывать нельзя: новый сервер начинают перебирать боты в первые же часы. Ниже — пошаговая инструкция для Ubuntu и Debian, список проверок и типичные ошибки.
Почему VPS нужно защищать с первого дня
Аренда VPS ощущается как переезд из коммуналки в собственную квартиру: свои ресурсы, свои правила, никто не мешает. Есть нюанс, о котором хостеры не пишут в приветственном письме: вместе с ключами от квартиры вы получаете и всю ответственность за замки.
Частое возражение владельцев бизнеса: «Да кому нужен мой сервер, у меня же маленький сайт». Ботам всё равно, маленький у вас сайт или большой — они не выбирают жертв, а методично сканируют все IP-адреса интернета подряд. Новый сервер попадает под перебор паролей в первые же часы после запуска.
Мы как-то подняли тестовый VPS для внутреннего проекта и оставили на нём стандартный вход по паролю. За первые сутки журнал зафиксировал больше двух тысяч попыток подбора. Сервер, повторимся, нигде не светился — ни домена, ни ссылок. Просто свежий IP-адрес.
За что отвечает хостер, а за что вы
Виртуальный хостинг защищает хостер. VPS по умолчанию не защищает никто: хостер отвечает за оборудование и сеть, а всё, что внутри сервера, — зона арендатора.
| Зона | Обычный VPS | VPS с администрированием |
|---|---|---|
| Оборудование, питание, сеть дата-центра | Хостер | Хостер |
| Операционная система и её обновления | Вы | Администратор подрядчика |
| Доступы: SSH, пароли, ключи | Вы | Администратор; главный доступ хранит владелец |
| Файрвол и защита от перебора | Вы | Администратор |
| Веб-сервер, база данных, PHP | Вы | Администратор |
| Сайт: CMS, плагины, пароли админки | Вы | Вы или разработчик сайта |
| Резервные копии | Вы, если не подключена услуга хостера | По договору — уточняйте |
Если вы только знакомитесь с серверами, начните со статьи VPS для начинающих — там объяснено, чем управляемый сервер отличается от обычного.
Что подготовить перед настройкой
- IP-адрес сервера и пароль пользователя root из письма хостера.
- Программу для подключения по SSH. В Windows 10 и 11, macOS и Linux достаточно встроенного терминала и команды
ssh root@IP-адрес. - Доступ к личному кабинету хостера: там есть аварийная консоль, через которую можно попасть на сервер, если вы случайно закроете себе вход.
- Менеджер паролей, чтобы хранить доступы. Длинный случайный пароль можно собрать в нашем генераторе паролей.
Команды ниже рассчитаны на свежие Ubuntu и Debian. Под пользователем root они выполняются как есть, под обычным пользователем перед командой добавляют sudo. Если на сервере уже стоит панель управления, часть шагов делается через её интерфейс, и менять настройки в обход панели не стоит.
Первые настройки безопасности VPS: пошагово
Шаг 1. Обновите систему
Образ, из которого хостер развернул сервер, мог быть собран несколько месяцев назад. Первым делом ставим накопившиеся исправления: сначала apt update, затем apt upgrade. Если обновилось ядро, перезагрузите сервер командой reboot.
Шаг 2. Создайте отдельного пользователя
Под root любая опечатка выполняется без вопросов, поэтому для повседневной работы заводят обычного пользователя с правом выполнять административные команды: adduser deploy, затем usermod -aG sudo deploy. Имя deploy условное, подойдёт любое. В минимальных сборках Debian пакет sudo может быть не установлен — тогда сначала выполните apt install sudo.
Шаг 3. Настройте вход по SSH-ключу
SSH-ключ — это пара файлов: закрытый хранится на вашем компьютере, открытый кладётся на сервер. Ключ подобрать перебором практически невозможно, пароль из восьми символов — вопрос времени.
- На своём компьютере создайте ключ:
ssh-keygen -t ed25519. Программа предложит задать кодовую фразу — не пропускайте этот шаг, она защитит ключ, если файл попадёт в чужие руки. - Скопируйте открытый ключ на сервер:
ssh-copy-id deploy@IP-адрес. В Windows этой команды может не быть — тогда содержимое файла с расширением.pubвставляют вручную в файл~/.ssh/authorized_keysна сервере. - Не закрывая текущее окно, откройте второе и проверьте вход:
ssh deploy@IP-адрес. Сервер должен пустить без пароля учётной записи. - Там же убедитесь, что работает
sudo: например, выполнитеsudo apt update.
Шаг 4. Запретите вход под root и по паролю
Только убедившись, что вход по ключу работает, закрываем остальные двери. В файле /etc/ssh/sshd_config задайте два параметра: PermitRootLogin no и PasswordAuthentication no. Загляните и в папку /etc/ssh/sshd_config.d/: если в лежащих там файлах те же параметры заданы иначе, сработают они.
Проверьте настройки на ошибки командой sshd -t — если она ничего не вывела, всё в порядке — и перезапустите службу: systemctl restart ssh. Текущую сессию не закрывайте, пока не убедитесь в новом окне, что вход по-прежнему работает.
Номер порта SSH при желании можно сменить со стандартного 22 на другой. От целенаправленной атаки это не защитит, но мусорных попыток в журнале станет заметно меньше. Если меняете порт — сначала откройте новый в файрволе.
Шаг 5. Включите файрвол
Файрвол закрывает всё лишнее: снаружи должны быть доступны только сайт и вход для администратора. В Ubuntu и Debian для этого удобен UFW.
- Установите его, если он ещё не стоит:
apt install ufw. - Разрешите SSH — обязательно до включения, иначе потеряете доступ:
ufw allow OpenSSH. Если порт SSH нестандартный, укажите его номер, напримерufw allow 2222/tcp. - Разрешите веб-трафик:
ufw allow 80/tcpиufw allow 443/tcp. - Включите файрвол:
ufw enable. - Проверьте правила:
ufw status.
Базу данных, Redis и прочие внутренние службы наружу не открывают вовсе: сайт обращается к ним внутри сервера. Посмотреть, какие службы слушают сеть, можно командой ss -tulpn.
Шаг 6. Поставьте Fail2ban
Fail2ban — сторож, который читает журналы, банит адреса после нескольких неудачных попыток входа и резко охлаждает пыл ботов. Установка: apt install fail2ban. Защита SSH в Ubuntu и Debian обычно включается сразу после установки; убедиться в этом можно командой fail2ban-client status sshd — она покажет число заблокированных адресов. Если служба не запустилась, причину подскажет systemctl status fail2ban: на некоторых свежих системах ей нужно явно указать, откуда читать журнал.
Шаг 7. Настройте автоматические обновления безопасности
Уязвимости в серверном софте находят каждый месяц, и заплатки работают только у тех, кто их ставит. Чтобы не зависеть от памяти, включите автоматическую установку исправлений: apt install unattended-upgrades, затем dpkg-reconfigure -plow unattended-upgrades и утвердительный ответ на вопрос установщика. Крупные обновления — смену версии системы, базы данных, PHP — по-прежнему делают вручную и с проверкой.
Шаг 8. Вынесите бэкапы наружу и уберите лишнее
Бэкапы должны уходить наружу, то есть не на сам сервер. Копия, лежащая рядом с оригиналом, погибает вместе с ним. Подойдут объектное хранилище, второй сервер или хотя бы услуга резервного копирования у хостера. Чем снимок диска отличается от полноценной копии, мы разбирали в статье снапшоты и бэкапы VPS.
И отключите сервисы, которыми не пользуетесь: каждая запущенная служба — ещё одна дверь, которую надо охранять. Список из команды ss -tulpn должен быть коротким и понятным.
Как проверить, что защита работает
- Вход под root по SSH не проходит.
- Вход по паролю не проходит, по ключу — работает.
- Файрвол активен, открыты только нужные порты.
- Fail2ban запущен и показывает заблокированные адреса.
- Автоматические обновления безопасности включены.
- Резервная копия создаётся по расписанию и хранится вне сервера.
- Восстановление из копии хотя бы раз проверено на практике.
- Доступы записаны в менеджере паролей, запасной ключ есть у владельца бизнеса.
Ничего экзотического в списке нет. Опытный администратор закрывает эти пункты за час-полтора. Проблема в том, что на большинстве арендованных VPS не сделано вообще ничего из перечисленного. Следующий шаг после базовой защиты — наблюдение: как узнавать о проблемах раньше клиентов, читайте в статье про мониторинг сайта.
Что будет, если сервер не защитить
Взломанный сервер редко «ломается» демонстративно — чаще он продолжает работать и параллельно приносит пользу новым хозяевам. Рассылает спам, пока ваш IP не попадёт во все чёрные списки и письма клиентам не начнут улетать в никуда. Майнит криптовалюту, съедая процессор, за который платите вы. Участвует в атаках на чужие сайты — а претензии хостер предъявит вам, вплоть до блокировки сервера.
Один наш клиент пришёл именно с такой историей: магазин работал, но письма о заказах перестали доходить покупателям. Оказалось, VPS уже месяц рассылал спам, и домен сидел в чёрных списках. Чистка сервера и вывод из блэклистов заняли две недели — куда дороже, чем час настройки в самом начале.
Частые ошибки при настройке
- Отключают пароль, не проверив ключ. И теряют доступ к серверу. Спасает аварийная консоль в кабинете хостера.
- Включают файрвол, не разрешив SSH. Результат тот же.
- Хранят ключ в единственном экземпляре. Сломался ноутбук — пропал доступ. Держите запасной ключ в надёжном месте.
- Забывают про Docker. Порты, опубликованные контейнерами, открываются в обход правил UFW. Если используете Docker на VPS, привязывайте служебные порты к локальному адресу.
- Защищают сервер, но не сайт. Слабый пароль в админке CMS и устаревшие плагины сводят настройку на нет.
- Оставляют панель на виду. Панель управления сервером — такая же дверь: её нужно обновлять и не держать со слабым паролем.
- Путают базовую защиту с защитой от атак на отказ. Файрвол и Fail2ban отсекают перебор паролей, но не поток мусорных запросов — защита от DDoS решается отдельно.
- Считают настройку разовой. Обновления, журналы и копии нужно проверять регулярно.
Настраивать самому или взять VPS с администрированием
Вывод из всего этого практический. VPS — отличный инструмент, но он требует человека, который за него отвечает. Варианта два: либо у вас есть свой администратор, хотя бы приходящий, либо берите VPS с администрированием, где настройку, обновления и мониторинг закрывает подрядчик.
Инструкция выше посильна человеку, который не боится терминала и готов разбираться. Но даже если сервер настраивает подрядчик, владельцу бизнеса полезно знать этот список — чтобы проверить работу по чек-листу и задать правильные вопросы.
Коротко
Новый VPS никто не защищает по умолчанию, а боты находят его за часы. Базовый минимум — обновления, отдельный пользователь, вход только по SSH-ключу, файрвол, Fail2ban, автоматические исправления безопасности и бэкапы вне сервера. Каждый шаг проверяйте во втором окне терминала, не закрывая первого, и держите под рукой аварийную консоль хостера.
Мы в CasperLab настраиваем и сопровождаем серверы клиентов: базовая защита с первого дня, обновления, бэкапы наружу и мониторинг. Если выбираете VPS под свой проект — поможем подобрать конфигурацию и возьмём администрирование на себя.
Подобрать VPS в CasperLab
Поможем подобрать решение под вашу задачу и рассчитаем стоимость без обязательств.
Подобрать VPS