Запуск на сервері Ubuntu 14.04.
Тож у мене fail2ban правильно налаштований для обробки /var/log/auth.log
спроб входу в SSH.
Після 3 невдалих спроб я бачу це в журналі fail2ban:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
показує цей ланцюжок:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- BANNED_IP_ADDY anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Але з цього IP я все ще можу увійти через SSH без жодних проблем.
Ця ж історія стосується всіх моїх тюремних зборів. Наприклад, Apache, я можу побачити, як fail2ban правильно визначає журнал і стверджує, що він забороняє IP. IP-адреса закінчується ланцюжком iptables, але IP-код насправді не відхиляється.
У мене в таких випадках є відчуття, тому що SSH знаходиться не на стандартному порту. Це на іншому порту.
Тож якщо я змушую правило ssh jail використовувати новий порт:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Потім я бачу цю помилку:
2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment
Якщо я залишу це як
port = ssh
Тоді він потрапляє належним чином у iptables, але ланцюг не працює на REJECT
трафіку (як було сказано вище).
ОНОВЛЕННЯ:
Якщо я зміню:
banaction = iptables-multiport
До:
banaction = iptables-allports
Потім, здається, працює. Які наслідки цієї зміни?
Виявляється, що викликати fail2ban
заборону IP через SSH, цим allports
заборонено ВСІЙ порт для цього IP. Цілеспрямовано заборонено через неодноразові збої входу в ssh. Також заборонили будь-які інші послуги.
/etc/fail2ban/actions.d
, у ньому є файл, відповідний кожній із цих заборонних дій. Всередині ви побачите, які команди використовуються для заборони, відключення, запуску та зупинки fail2ban. Ви можете спробувати запустити команди actionban вручну і побачити, що відбувається. Я
iptables -L -n -v
(редагування IP-адрес, де це необхідно). Зокрема, зверніть увагу на те -v
, що дасть байтові та пакетні лічильники для кожного ланцюга та правила, полегшивши налагодження.