EQVPS

Як налаштувати fail2ban для блокування brute-force атак

Зупиніть постійний перебір паролів на вашому сервері: fail2ban стежить за логами й автоматично банить IP, що надто часто не проходять вхід. Встановіть його, увімкніть SSH jail і налаштуйте правила бану — за кілька команд.

Навіть якщо все інше вже захищено, боти не перестають підбирати паролі до порту 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

Чесні застереження

Що далі

fail2ban — лише один шар загартованого сервера. Поєднайте його з автентифікацією за SSH-ключем і фаєрволом UFW, і пройдіть повний чекліст безпеки нового VPS, перш ніж щось виставляти назовні.

Часті питання

Що насправді робить fail2ban?

Він стежить за лог-файлами (як-от SSH auth log) на предмет повторних невдалих спроб з одного IP, і коли IP перевищує поріг — додає тимчасовий бан у фаєрволі. Боти, що цілодобово довбають порт 22, блокуються після кількох спроб замість того, щоб підбирати пароль нескінченно. Це автоматичний, безперервний захист.

Чи потрібен fail2ban, якщо я вже використовую SSH-ключі?

Вони розв'язують різні проблеми. SSH-ключі роблять підбір практично неможливим; fail2ban прибирає шум і навантаження від нескінченних спроб, а також захищає будь-який інший сервіс, який ви відкриваєте назовні (пошту, веб-логіни). При вході лише за ключем ризик і так низький, але fail2ban — дешевий додатковий шар захисту, що заодно чистить лог від спаму.

Чи може fail2ban забанити мене помилково?

Може, якщо ви кілька разів помилитесь у власному паролі — вас забанить на bantime, а потім автоматично розбанить. Щоб ніколи не заблокувати себе, додайте свій IP в 'ignoreip' у конфігу, і пам'ятайте: консоль провайдера (у EQVPS вона є) завжди поверне вам доступ.

Як подивитись, хто забанений, або зняти бан з IP?

Використайте 'sudo fail2ban-client status sshd', щоб побачити jail і забанені IP. Щоб зняти бан: 'sudo fail2ban-client set sshd unbanip 1.2.3.4'. Щоб додати довірений IP назавжди, впишіть його в ignoreip і перезавантажте конфіг.

Що таке bantime, findtime і maxretry?

maxretry — скільки невдалих спроб дозволено, findtime — вікно, в якому вони рахуються, а bantime — тривалість бану. Наприклад, 5 невдач за 10 хвилин запускають годинний бан. Збільшуйте bantime (або встановіть довше значення) для завзятіших атакувальників.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.