После покупки VPS сервер уже доступен из интернета, поэтому его лучше защитить до установки сайтов, панелей управления, баз данных или Docker-приложений. Базовая настройка безопасности помогает снизить риск brute force атак, закрыть лишние порты и защитить сервер от типовых автоматических сканирований.

1. Обновите систему

Первое, что нужно сделать после входа на сервер, — обновить пакеты. Это закрывает известные уязвимости и исправляет ошибки в уже установленных компонентах.

Для Debian/Ubuntu:

sudo apt update
sudo apt upgrade -y

Для AlmaLinux/Rocky Linux/CentOS:

sudo dnf update -y

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

sudo reboot

2. Создайте отдельного пользователя вместо root

Не стоит постоянно работать под root. Лучше создать отдельного пользователя и выдать ему права администратора через sudo.

sudo adduser adminuser
sudo usermod -aG sudo adminuser

Проверьте вход под новым пользователем:

ssh adminuser@SERVER_IP

Проверьте права sudo:

sudo whoami

Ожидаемый ответ:

root

Предупреждение
Перед отключением root-входа убедитесь, что новый пользователь успешно входит по SSH.

3. Настройте SSH-ключи и отключите вход по паролю

Пароль можно подобрать brute force атакой. SSH-ключи значительно безопаснее, поэтому лучше использовать именно их.

На локальном компьютере создайте ключ:

ssh-keygen -t ed25519 -C "admin@example.com"

Скопируйте ключ на сервер:

ssh-copy-id adminuser@SERVER_IP

После проверки входа по ключу откройте SSH-конфиг:

sudo nano /etc/ssh/sshd_config

Укажите:

PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
MaxAuthTries 3

Проверьте конфигурацию:

sudo sshd -t

Перезагрузите SSH:

sudo systemctl reload ssh

или:

sudo systemctl reload sshd

Важно
Не закрывайте текущую SSH-сессию, пока не проверите вход в новой вкладке терминала.

4. Включите firewall и оставьте только нужные порты

Firewall должен пропускать только те порты, которые действительно нужны. Для обычного веб-сервера чаще всего достаточно:

22/tcp   — SSH
80/tcp   — HTTP
443/tcp  — HTTPS

Установка UFW на Debian/Ubuntu:

sudo apt install ufw -y

Разрешите нужные порты:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Включите firewall:

sudo ufw enable

Проверьте статус:

sudo ufw status verbose

Более безопасный вариант — разрешить SSH только с вашего IP:

sudo ufw allow from YOUR_TRUSTED_IP to any port 22 proto tcp
sudo ufw deny 22/tcp

5. Проверьте открытые порты и отключите лишние сервисы

После настройки firewall проверьте, какие сервисы слушают порты:

sudo ss -tulpn

Обратите внимание на адреса:

0.0.0.0:PORT      — сервис слушает на всех интерфейсах
127.0.0.1:PORT    — сервис доступен только локально

Базы данных и внутренние сервисы обычно не должны быть открыты наружу:

MySQL/MariaDB  — 3306
PostgreSQL     — 5432
Redis          — 6379
MongoDB        — 27017

Проверить запущенные сервисы:

systemctl --type=service --state=running

Остановить и отключить ненужный сервис:

sudo systemctl disable --now SERVICE_NAME

6. Установите Fail2Ban

Fail2Ban защищает SSH от массовых попыток входа. Он анализирует логи и временно блокирует IP-адреса, с которых идёт много неудачных попыток авторизации.

Установка:

sudo apt install fail2ban -y

Создайте конфигурацию для SSH:

sudo nano /etc/fail2ban/jail.d/sshd.local

Пример:

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

Запустите Fail2Ban:

sudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban

Проверьте статус:

sudo fail2ban-client status sshd

Итог

Базовое усиление безопасности VPS можно свести к шести главным действиям:

  • обновить систему;
  • создать отдельного администратора;
  • защитить SSH;
  • включить firewall;
  • закрыть лишние порты и сервисы;
  • установить Fail2Ban и настроить backup.

Эти шаги не делают сервер полностью неуязвимым, но значительно снижают риск типовых атак и ошибок после покупки VPS.

Tagged: