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