Первые 15 минут на новом VPS: настройка и защита сервера

Новый сервер в интернете начинают перебирать по паролю в течение нескольких минут после появления. Это не преувеличение: боты сканируют адресные диапазоны круглосуточно, и 22-й порт с логином root — самая частая цель. Нижеследующее занимает четверть часа и закрывает почти весь массовый риск.
Команды приведены для Ubuntu и Debian. Выполнять их нужно по порядку, не закрывая текущую SSH-сессию — это важно, объясню ниже.
Если сервера ещё нет
Разворачивание занимает около минуты. В панели NodexGo нажмите «Создать сервер», выберите локацию — рядом с каждой показан ваш реальный пинг до неё, — затем тариф и образ системы, задайте имя и подтвердите заказ. На последнем шаге можно оплатить сразу за 1, 3, 6 или 12 месяцев.
IP-адрес и пароль root придут в панель и на почту. Дальше — команды ниже.
Ubuntu 24.04, NVMe и root-доступ — сервер готов через минуту после оплаты.
Создать сервер1. Обновить систему
apt update && apt upgrade -yСвежеустановленный образ почти всегда отстаёт на несколько недель, и среди этих обновлений бывают заплатки безопасности. Это первое, что стоит сделать на любой новой машине.
2. Создать пользователя вместо root
Работать под root постоянно — плохая привычка: любая опечатка выполняется без вопросов и с полными правами.
adduser deploy
usermod -aG sudo deployВместо deploy подставьте любое имя. Пароль задайте длинный — он понадобится для sudo.
3. Настроить вход по ключу
На своём компьютере, если ключа ещё нет:
ssh-keygen -t ed25519Скопировать его на сервер:
ssh-copy-id deploy@ваш-ipТеперь откройте ВТОРОЕ окно терминала и проверьте, что вход по ключу работает. Первую сессию не закрывайте — если что-то настроено неверно, она останется единственным способом попасть на сервер.
ssh deploy@ваш-ipДаже если вы всё же заперли себя снаружи — это не смертельно: в панели NodexGo у каждого сервера есть web-консоль VNC, которая работает в обход SSH и сети. Через неё можно войти и починить конфигурацию.
4. Запретить вход по паролю и под root
Только после того, как вход по ключу проверен. Откройте /etc/ssh/sshd_config и приведите три строки к такому виду:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yesПерезапустите службу:
systemctl restart sshС этого момента перебор паролей бесполезен: пароля просто нет. Это самая эффективная мера из всего списка.
5. Включить файрвол
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableПравило для SSH добавляется первым — иначе включение файрвола отрежет вас от сервера. Открывайте только те порты, которые действительно нужны: база данных наружу смотреть не должна почти никогда.
6. Поставить fail2ban
apt install fail2ban -yОн читает логи и временно блокирует адреса, с которых идут неудачные попытки входа. С отключённым паролем это уже вторая линия обороны, но она снимает лишний шум и защищает другие службы, например почтовую.
7. Добавить swap, если памяти немного
На сервере с 1–2 ГБ памяти swap спасает от внезапной смерти процессов при всплеске нагрузки.
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfileЧтобы swap подключался после перезагрузки, добавьте строку в /etc/fstab:
/swapfile none swap sw 0 08. Мелочи, о которых потом жалеют
Часовой пояс — иначе все логи будут в UTC, и разбор инцидента превратится в арифметику:
timedatectl set-timezone Europe/MoscowАвтоматические обновления безопасности. Для сервера, за которым никто не следит ежедневно, это разумный компромисс:
apt install unattended-upgrades -yИмя сервера — когда серверов станет больше одного, вы скажете себе спасибо:
hostnamectl set-hostname web-1Чего делать не нужно
Не меняйте порт SSH с 22 на нестандартный в надежде на безопасность. Это убирает шум в логах, но не защищает: сканер находит открытый порт за секунды. Отключённый пароль защищает, смена порта — нет.
Не устанавливайте панель управления «на всякий случай». Каждая панель — это ещё один веб-интерфейс с правами root, который нужно обновлять. Ставьте, если она вам действительно нужна.
Что дальше
После этих шагов сервер готов к работе: можно ставить веб-сервер, разворачивать приложение или поднимать Docker. Отдельно стоит сразу настроить резервное копирование — на VPS за него отвечаете вы, и это единственное, что спасает после серьёзной ошибки.
Если что-то пошло не так и сервер недоступен по SSH, в его карточке в панели есть кнопки «Перезагрузить», «Сменить пароль root», «Переустановить ОС» и веб-консоль. Переустановка возвращает чистую систему за пару минут — на этапе экспериментов это нормальный рабочий инструмент.
Тарифы от 1 vCPU / 2 ГБ до 16 vCPU / 32 ГБ, три локации в Европе, оплата за 30 дней.
Посмотреть тарифы