Fail2Ban правильно намагається заборонити IP, але IP не забороняється - iptables ланцюг існує, але не працює


12

Запуск на сервері 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. Також заборонили будь-які інші послуги.


Я ніколи не стикався з цим питанням з fail2ban. Якщо ви хочете повернутися до блокування єдиного порту, ви можете спробувати це рішення: oschgan.com/drupal/index.php?q=node/52 . Крім того, fail2ban може використовувати інші механізми, такі як hosts.deny або нульові маршрути, якщо iptables викликає горе.
digitaladdictions

Перевірте /etc/fail2ban/actions.d, у ньому є файл, відповідний кожній із цих заборонних дій. Всередині ви побачите, які команди використовуються для заборони, відключення, запуску та зупинки fail2ban. Ви можете спробувати запустити команди actionban вручну і побачити, що відбувається. Я
Майкл

1
Що ще є у ваших iptables? Будь ласка, надайте повний вихід iptables -L -n -v(редагування IP-адрес, де це необхідно). Зокрема, зверніть увагу на те -v, що дасть байтові та пакетні лічильники для кожного ланцюга та правила, полегшивши налагодження.
jplitza

У мене була точно така ж проблема. Fail2Ban забороняє IP, я бачу адресу в ланцюгу fail2ban, я отримав електронну пошту, вона заборонена, але IP-адреса все ще має доступ. Зміна банана для всіх видів спорту працювала, але поняття чому!
Ергек

Відповіді:


2

Ланцюги fail2ban неправильно пов'язані з вашими ланцюгами INPUT та OUTPUT. Будь-ласка, відредагуйте своє запитання та надайте вихід:

iptables -n -L INPUT
iptables -n -L OUTPUT

і всі ланцюги fail2ban теж, і я зможу бути більш точним.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.