Первые 10 шагов после покупки VPS: чек-лист настройки

Настройка сервера
Первые 10 шагов после покупки VPS: чек-лист настройки

Настройка VPS сразу после покупки занимает 20–30 минут, но именно эти полчаса определяют, насколько безопасно и предсказуемо сервер проработает следующие месяцы. Если вы не знаете, что делать после покупки VPS, этот чек-лист закрывает вопрос полностью: 10 шагов от первого подключения по SSH до автоматических обновлений безопасности. Все команды проверены на Ubuntu 24.04 LTS и подойдут для любого KVM-сервера с полным root-доступом. Например, на Cheap-Host сервер разворачивается автоматически за 45–60 секунд, IP-адрес и доступ по SSH выдаются моментально — значит, приступить к настройке можно сразу после оплаты.

Порядок шагов не случайный. Сначала вы получаете доступ и обновляете систему, затем убираете самые опасные векторы атак (пароли и вход под root), после этого закрываете лишние порты и автоматизируете рутину. Не меняйте последовательность в пунктах 4–5: если отключить пароли до того, как проверен вход по ключу, можно потерять доступ к серверу.

Чек-лист: все 10 шагов кратко

  1. Подключиться к серверу по SSH.
  2. Обновить систему: apt update && apt upgrade.
  3. Создать пользователя с правами sudo.
  4. Настроить вход по SSH-ключам.
  5. Отключить вход под root и аутентификацию по паролю.
  6. Включить файрвол UFW.
  7. Установить fail2ban против подбора паролей.
  8. Задать часовой пояс и имя хоста.
  9. Настроить swap (при необходимости).
  10. Включить автоматические обновления безопасности.

Дальше — каждый шаг с командами и пояснениями, что именно вы делаете и зачем.

Базовая настройка VPS: доступ и обновления (шаги 1–2)

Шаг 1. Подключитесь к серверу по SSH

После оплаты хостер присылает IP-адрес, логин (обычно root) и пароль. Откройте терминал — в Windows 10/11 подойдёт встроенный OpenSSH в PowerShell, в macOS и Linux — обычный терминал:

ssh root@203.0.113.10

При первом подключении система спросит, доверять ли отпечатку ключа сервера, — ответьте yes и введите пароль из письма. Если возникают трудности с клиентами и параметрами подключения, разобрали их отдельно: как подключиться к VPS по SSH с Windows, macOS и Linux.

Шаг 2. Обновите систему

Образ ОС на сервере почти всегда отстаёт от актуального состояния репозиториев на недели. Первым делом:

apt update && apt upgrade -y

Первая команда обновляет списки пакетов, вторая — ставит свежие версии. Если обновилось ядро, система сообщит о необходимости перезагрузки — проверить это можно так:

[ -f /var/run/reboot-required ] && echo "Нужна перезагрузка" || echo "Перезагрузка не требуется"

Если перезагрузка нужна, выполните reboot, подождите 20–30 секунд и подключитесь снова.

Безопасный вход: пользователь, ключи и запрет root (шаги 3–5)

Шаг 3. Создайте пользователя с правами sudo

Работать под root постоянно — плохая практика: одна опечатка в команде может стоить системы, а украденный root-пароль отдаёт злоумышленнику всё сразу. Создайте обычного пользователя и добавьте его в группу sudo:

adduser deploy
usermod -aG sudo deploy

Утилита adduser спросит пароль и необязательные данные (их можно пропустить, нажимая Enter). Проверьте, что права работают:

su - deploy
sudo whoami

Вторая команда должна вывести root — значит, привилегии выдаются корректно.

Шаг 4. Настройте вход по SSH-ключам

Пароль можно подобрать, ключ ED25519 — нет. Сгенерируйте пару ключей на своём компьютере (не на сервере):

ssh-keygen -t ed25519 -C "deploy@my-vps"

Затем скопируйте публичный ключ на сервер:

ssh-copy-id deploy@203.0.113.10

В Windows, где нет ssh-copy-id, содержимое файла ~/.ssh/id_ed25519.pub можно вручную добавить в ~/.ssh/authorized_keys на сервере. Подробный разбор с примерами для всех ОС — в статье SSH-ключи вместо пароля: настройка за 5 минут.

Обязательно проверьте, что вход по ключу работает, прежде чем идти дальше:

ssh deploy@203.0.113.10

Сервер должен пустить вас без запроса пароля пользователя.

Шаг 5. Отключите вход под root и аутентификацию по паролю

Теперь, когда ключ проверен, закройте два главных вектора атак. В Ubuntu 24.04 настройки SSH-сервера читаются не только из /etc/ssh/sshd_config, но и из каталога /etc/ssh/sshd_config.d/ — в облачных образах там часто лежит файл 50-cloud-init.conf со строкой PasswordAuthentication yes. Проверьте, что и где определено:

grep -r "PasswordAuthentication\|PermitRootLogin" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/

OpenSSH применяет первое встреченное значение параметра, а файлы из sshd_config.d/ подключаются в алфавитном порядке раньше основного конфига. Поэтому создайте свой drop-in с именем, которое сортируется раньше 50-cloud-init.conf:

nano /etc/ssh/sshd_config.d/10-hardening.conf

Содержимое файла:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no

Проверьте синтаксис и итоговые значения, затем перезапустите службу:

sshd -t
sshd -T | grep -Ei "permitrootlogin|passwordauthentication"
systemctl restart ssh

Важно: не закрывайте текущую сессию. Откройте второй терминал и убедитесь, что ssh deploy@IP пускает по ключу, а ssh root@IP получает отказ. Только после этого можно выдохнуть.

Защита периметра: UFW и fail2ban (шаги 6–7)

Шаг 6. Включите файрвол UFW

По умолчанию все порты сервера открыты миру. UFW (Uncomplicated Firewall) уже установлен в Ubuntu 24.04 — осталось разрешить нужное и включить его:

ufw allow OpenSSH
ufw enable
ufw status verbose

Правило OpenSSH разрешает порт 22 — добавьте его до команды ufw enable, иначе файрвол отрежет вашу же SSH-сессию. Если планируете веб-сервер, сразу откройте HTTP и HTTPS:

ufw allow 80/tcp
ufw allow 443/tcp

Про политики по умолчанию, ограничение по IP и типичные ошибки — в отдельном руководстве по настройке файрвола UFW на Ubuntu.

Шаг 7. Установите fail2ban

Даже с отключёнными паролями боты будут круглосуточно стучаться на порт 22 и засорять логи. Fail2ban автоматически банит IP после нескольких неудачных попыток:

apt install fail2ban -y

В Ubuntu 24.04 sshd пишет логи в journald, поэтому в конфигурации джейла укажите backend systemd. Создайте файл /etc/fail2ban/jail.d/sshd.local:

[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h

Запустите службу и проверьте статус джейла:

systemctl enable --now fail2ban
fail2ban-client status sshd

Тонкая настройка времени бана, белых списков и уведомлений — в статье Fail2ban: автоматическая блокировка подбора паролей.

Финальная настройка VPS: время, hostname, swap и автообновления (шаги 8–10)

Шаг 8. Задайте часовой пояс и имя хоста

Правильное время критично для логов, cron-задач и SSL-сертификатов:

timedatectl set-timezone Europe/Moscow
timedatectl

Имя хоста помогает не перепутать серверы, когда их станет больше одного:

hostnamectl set-hostname web-01

После смены имени добавьте его в /etc/hosts, чтобы sudo и другие утилиты не жаловались на неразрешимое имя:

127.0.1.1 web-01

Шаг 9. Настройте swap при необходимости

Swap — страховка от внезапного исчерпания памяти: вместо того чтобы убивать процессы, система временно выгрузит редко используемые страницы на диск. На тарифе Start у Cheap-Host 8 ГБ RAM — для типичных задач этого хватает с запасом, но файл подкачки на 2 ГБ лишним не будет, тем более что на NVMe-дисках обращение к swap заметно быстрее, чем на классических SSD:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Чтобы система не увлекалась подкачкой при свободной RAM, снизьте параметр swappiness:

sysctl vm.swappiness=10
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf

Проверить результат можно командой free -h — в строке Swap появятся выделенные 2 ГБ.

Шаг 10. Включите автоматические обновления безопасности

Критические уязвимости в OpenSSL или ядре не будут ждать, пока вы вспомните про сервер. Пакет unattended-upgrades ставит security-патчи автоматически:

apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades

В диалоге выберите «Yes». Убедиться, что механизм работает, поможет тестовый прогон:

unattended-upgrade --dry-run --debug

Обычные обновления пакетов при этом остаются под вашим контролем — автоматически ставятся только обновления безопасности.

FAQ: частые вопросы о настройке VPS

Можно ли пропустить какие-то шаги из чек-листа? Шаги 1–7 — обязательный минимум для любого сервера, смотрящего в интернет. Swap (шаг 9) можно отложить, если RAM с запасом, а часовой пояс (шаг 8) — если сервис не зависит от локального времени. Но автообновления безопасности (шаг 10) пропускать не стоит: это пять минут работы, которые закрывают целый класс угроз.

Я отключил вход по паролю и потерял SSH-ключ. Что делать? Без ключа штатно попасть на сервер не получится — обратитесь в поддержку хостера. Чтобы не оказаться в такой ситуации, храните резервную копию приватного ключа в менеджере паролей и добавляйте на сервер второй ключ с другого устройства.

Нужен ли swap, если на сервере 8 ГБ RAM? Как рабочая память — нет, как страховка — да. Без swap внезапный всплеск потребления памяти приведёт к тому, что OOM-killer завершит самый «тяжёлый» процесс, чаще всего базу данных. 2 ГБ swap при swappiness=10 в обычной жизни не используются, но спасают в пиковые моменты.

Достаточно ли UFW и fail2ban для полной безопасности? Для базовой защиты типового сервера — да, вместе с SSH-ключами и автообновлениями это закрывает подавляющее большинство автоматизированных атак. Дальше всё зависит от задач: для публичного веб-приложения стоит подумать о WAF, регулярных бэкапах и мониторинге.

Нужно ли обновлять сервер вручную, если включён unattended-upgrades? Да, раз в 1–2 недели выполняйте apt update && apt upgrade вручную: unattended-upgrades ставит только патчи безопасности, а обычные обновления пакетов накапливаются и ждут вас.

Вывод

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

Если сервер вы ещё не выбрали, у Cheap-Host есть тариф Start от 450 ₽/мес: 6 vCPU, 8 ГБ RAM, 96 ГБ NVMe, KVM-виртуализация с полным root-доступом и безлимитный трафик. Автодеплой занимает 45–60 секунд — от оплаты до первого шага этого чек-листа пройдёт меньше минуты.