После покупки 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.