Навіть якщо все інше вже захищено, боти не перестають підбирати паролі до порту 22 — це постійний фоновий шум і навантаження. fail2ban стежить за логами й автоматично банить будь-який IP, що надто часто не проходить вхід, тож атакувальників відсікає після кількох спроб замість того, щоб дати їм підбирати нескінченно. Проста інсталяція — і різке падіння спаму в логах.
1. Встановіть fail2ban
sudo apt update && sudo apt install -y fail2ban
2. Створіть локальний конфіг
Ніколи не редагуйте штатний jail.conf напряму — перевизначайте його в jail.local:
sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[DEFAULT]
# don't ban yourself — add your home/office IP
ignoreip = 127.0.0.1/8 ::1
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
EOF
Це банить IP на годину після 5 невдалих входів за 10 хвилин. Додайте свій власний IP в ignoreip, щоб одна описка в паролі ніколи вас не заблокувала.
3. Запустіть і увімкніть автозапуск
sudo systemctl enable --now fail2ban
4. Перевірте SSH jail
sudo fail2ban-client status sshd
Ви побачите, скільки IP зараз забанено — часто на диво багато вже за кілька хвилин.
Керування банами
sudo fail2ban-client set sshd unbanip 1.2.3.4 # lift a ban
sudo fail2ban-client status # list all jails
sudo systemctl reload fail2ban # apply config changes
Чесні застереження
- Додайте свій IP в
ignoreip, щоб повторні описки не забанили вас самих. Якщо все ж забанило — перечекайте bantime або скористайтесь консоллю провайдера — EQVPS дає її кожному VPS. - fail2ban доповнює, а не замінює SSH-ключі. Ключі роблять підбір неможливим у принципі; fail2ban прибирає шум і захищає ще й інші сервіси.
- Налаштовуйте під себе: довший
bantimeвідлякує завзятих атакувальників, але надто агресивні налаштування ризикують забанити легітимні нестабільні з'єднання.
Що далі
fail2ban — лише один шар загартованого сервера. Поєднайте його з автентифікацією за SSH-ключем і фаєрволом UFW, і пройдіть повний чекліст безпеки нового VPS, перш ніж щось виставляти назовні.
Коментарі
Поки немає коментарів. Будьте першим.