Руководства

Как настроить VPS после покупки: 10 обязательных шагов

Как настроить VPS после покупки: 10 обязательных шагов

Новый VPS приходит «голым»: система из шаблона, пакеты недельной или месячной давности, вход под root по паролю, все порты открыты. В таком виде он живёт в интернете считанные часы до первых попыток подбора пароля — сканеры находят новые адреса почти сразу. Ниже десять шагов, которые превращают свежий сервер в рабочий и защищённый. Всё вместе — около часа, первые пять шагов — пятнадцать минут. Команды для Ubuntu и Debian, которые ставят чаще всего.

Шаг 1. Подключиться

После оплаты на почту приходят IP-адрес и пароль root. Подключение по SSH:

ssh root@IP_СЕРВЕРА

На Windows 10 и 11 команда ssh работает прямо в PowerShell или терминале; на старых системах — через PuTTY. При первом подключении система спросит, доверяете ли вы ключу сервера, — ответьте yes. Если сервер Windows, подключаетесь не по SSH, а по RDP; настройку Windows-сервера мы разобрали в статье «Windows VPS».

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

apt update && apt upgrade -y
reboot

Образ, из которого развернули сервер, собран какое-то время назад, и часть пакетов в нём с известными уязвимостями. Перезагрузка нужна, если обновилось ядро; через минуту подключитесь снова.

Шаг 3. Создать своего пользователя

adduser deploy
usermod -aG sudo deploy

Работать под root постоянно опасно: любая опечатка выполняется с полными правами. Имя пользователя — любое, кроме очевидных admin и user. Дальше вы работаете под ним и поднимаете права через sudo только когда нужно.

Шаг 4. Вход по ключу вместо пароля

На своём компьютере (не на сервере) создайте ключ, если его ещё нет, и скопируйте на сервер:

ssh-keygen -t ed25519
ssh-copy-id deploy@IP_СЕРВЕРА

На Windows без ssh-copy-id откройте файл C:\Users\ИМЯ\.ssh\id_ed25519.pub, скопируйте его содержимое и на сервере вставьте в /home/deploy/.ssh/authorized_keys.

Проверьте, что вход по ключу работает, открыв второе окно терминала: ssh deploy@IP_СЕРВЕРА — пароль спрашиваться не должен. Только после этого переходите к следующему шагу, иначе рискуете закрыть себе доступ.

Шаг 5. Закрыть вход root и по паролю

sudo nano /etc/ssh/sshd_config

Найдите и установите:

PermitRootLogin no
PasswordAuthentication no

Сохраните (Ctrl+O, Enter, Ctrl+X) и перезапустите службу: sudo systemctl restart ssh. В новых версиях Ubuntu дополнительно проверьте файлы в /etc/ssh/sshd_config.d/ — там может лежать настройка, разрешающая пароли.

После этого шага подбор пароля перестаёт быть угрозой в принципе: пароля больше нет.

Шаг 6. Включить firewall

sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status

Наружу открыты только SSH и веб. Всё остальное — база данных, Redis, панели — должно быть доступно только изнутри сервера. Первой строкой идёт именно OpenSSH: если включить firewall без неё, текущее соединение оборвётся, и зайти снова не получится.

Шаг 7. Автоматические обновления безопасности

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

Критические заплатки будут ставиться сами, без вашего участия. Большинство успешных взломов используют уязвимости, закрытые месяцы назад, — эта мера закрывает их автоматически.

Шаг 8. Защита от перебора: fail2ban

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

С настройками по умолчанию fail2ban следит за SSH и блокирует адреса после нескольких неудачных попыток. При входе только по ключу это второй рубеж, но он ещё и разгружает логи от мусора. Когда появится веб-сервер, стоит включить фильтры и для него — как, мы описали в статье о защите от DDoS.

Шаг 9. Часовой пояс, имя и swap

sudo timedatectl set-timezone Europe/Moscow
sudo hostnamectl set-hostname myserver

Часовой пояс — чтобы время в логах совпадало с вашим и не приходилось пересчитывать при разборе инцидентов. Имя — чтобы не путать серверы, когда их станет несколько.

На тарифах с 1–2 ГБ памяти полезен небольшой файл подкачки: он не ускорит сервер, но спасёт базу данных от принудительного завершения при кратковременном пике.

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Если swap используется постоянно, это не решение, а сигнал, что тариф мал для проекта: как посчитать нужную память — в статье «Как выбрать тариф VPS».

Шаг 10. Бэкапы и мониторинг

Сделайте это до того, как на сервере появится что-то ценное, — потом всегда «некогда».

  • Резервное копирование. Минимум — ежедневный дамп базы и копия файлов на другой сервер, лучше в другой стране: rsync или restic по cron. Lite за $6 в соседней локации — самое дешёвое хранилище копий. Подробнее — на странице резервного копирования.
  • Мониторинг доступности. Внешняя проверка раз в минуту с уведомлением в Telegram или на почту. Узнать о падении раньше пользователей — главное, что даёт мониторинг.

Дальше: что ставить под задачу

После десяти шагов сервер готов к работе. Что дальше, зависит от задачи:

  • Сайт на PHP — Nginx, PHP-FPM, MariaDB и certbot для SSL. Пошагово, с переносом с хостинга, — в инструкции «Как перенести сайт на VPS без простоя».
  • Несколько сайтов, почта, не хочется консоли — панель управления; какую выбрать и хватит ли памяти — в статье «Панель или консоль».
  • Бот, API, сервисы в контейнерах — Docker и docker compose.

Если что-то пошло не так

Закрыли себе доступ по SSH (включили ufw без OpenSSH, отключили пароли до проверки ключа) — не паникуйте. В панели провайдера есть консоль VNC, которая работает в обход сети: через неё можно войти и исправить настройку. Именно поэтому шаги 4–6 идут в таком порядке и с проверками.

Сервер перестал отвечать после перезагрузки — проверьте состояние в панели провайдера и загляните через VNC. Порядок диагностики — в статье «Что делать, если сайт упал».

Шпаргалка

  1. ssh root@IP
  2. apt update && apt upgrade -y
  3. adduser deploy && usermod -aG sudo deploy
  4. ssh-copy-id deploy@IP → проверить вход
  5. PermitRootLogin no, PasswordAuthentication no
  6. ufw allow OpenSSH / 80 / 443, ufw enable
  7. unattended-upgrades
  8. fail2ban
  9. Часовой пояс, имя, swap на малых тарифах
  10. Бэкап в другую страну и мониторинг

Ещё нет сервера? Start в Финляндии — $10/мес   Lite под бэкапы — $6/мес