Настройка VPS сразу после покупки занимает 20–30 минут, но именно эти полчаса определяют, насколько безопасно и предсказуемо сервер проработает следующие месяцы. Если вы не знаете, что делать после покупки VPS, этот чек-лист закрывает вопрос полностью: 10 шагов от первого подключения по SSH до автоматических обновлений безопасности. Все команды проверены на Ubuntu 24.04 LTS и подойдут для любого KVM-сервера с полным root-доступом. Например, на Cheap-Host сервер разворачивается автоматически за 45–60 секунд, IP-адрес и доступ по SSH выдаются моментально — значит, приступить к настройке можно сразу после оплаты.
Порядок шагов не случайный. Сначала вы получаете доступ и обновляете систему, затем убираете самые опасные векторы атак (пароли и вход под root), после этого закрываете лишние порты и автоматизируете рутину. Не меняйте последовательность в пунктах 4–5: если отключить пароли до того, как проверен вход по ключу, можно потерять доступ к серверу.
Чек-лист: все 10 шагов кратко
- Подключиться к серверу по SSH.
- Обновить систему:
apt update && apt upgrade. - Создать пользователя с правами sudo.
- Настроить вход по SSH-ключам.
- Отключить вход под root и аутентификацию по паролю.
- Включить файрвол UFW.
- Установить fail2ban против подбора паролей.
- Задать часовой пояс и имя хоста.
- Настроить swap (при необходимости).
- Включить автоматические обновления безопасности.
Дальше — каждый шаг с командами и пояснениями, что именно вы делаете и зачем.
Базовая настройка 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 секунд — от оплаты до первого шага этого чек-листа пройдёт меньше минуты.