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