LINUX.ORG.RU

Fail2Ban не банит. Что может быть?

 ,


0

1

Добрый день. Суть заключается в : Есть почтовый сервер FreeBSD, почти каждые 3 секунды стучится айпишник. /var/log/exim/mainlog

dovecot_login authenticator failed for ([xx.xx.xxx.xx]) [xx.xx.xxx.xx] I=[xxx.xxx.xx.xxx]:25: 535 Incorrect authentication data
Не отрабатывает exim: /etc/fail2ban/filter.d/exim.conf
dovecot_login\s+authenticator\s+failed\s+for\s+\([\w\.\-\_]+\)\s+\[<HOST>\]
^%(pid)s \w+ authenticator failed for (?:[^\[\( ]* )?(?:\(\S*\) )?\[<HOST>\](?::\d+)?(?: I=\[\S+\](:\d+)?)?: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time
^%(pid)s %(host_info)ssender verify fail for <\S+>: (?:Unknown user|Unrouteable address|all relevant MX records point to non-existent hosts)\s*$
^%(pid)s (plain|login) authenticator failed for (\S+ )?\(\S+\) \[<HOST>\]: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time\(s\))?\s*$
^%(pid)s %(host_info)sF=(<>|[^@]+@\S+) rejected RCPT [^@]+@\S+: (relay not permitted|Sender verify failed|Unknown user)\s*$
^%(pid)s SMTP protocol synchronization error \([^)]*\): rejected (connection from|"\S+") %(host_info)s(next )?input=".*"\s*$.
^%(pid)s SMTP call from \S+ \[<HOST>\](:\d+)? (I=\[\S+\]:\d+ )?dropped: too many nonmail commands \(last was "\S+"\)\s*$
\[<HOST>\]: 535 Incorrect authentication data
Мои настройки exim в /usr/local/etc/fail2ban/jail.local
[exim]
filter = exim.conf
port = smtp,465,submission
logpath = %(exim_main_log)s
enabled = true
findtime = 1m
bantime = 60000m
maxretry = 3
Уже совсем не могу додумать что еще может быть не так. Прошу помощи.

bantime = 60000m

Насколько помню тут должно быть время в секундах. Никаких m (Минуты? Миллионы? Мюмзики?)

Deleted
()
 # fail2ban-client -v status exim
 Loading configs for fail2ban under /usr/local/etc/fail2ban
   Loading files: ['/usr/local/etc/fail2ban/fail2ban.conf']
   Loading files: ['/usr/local/etc/fail2ban/fail2ban.local']
   Loading files: ['/usr/local/etc/fail2ban/fail2ban.conf', '/usr/local/etc/fail2ban/fail2ban.local']
 Using socket file /var/run/fail2ban/fail2ban.sock
 Using pid file /var/run/fail2ban/fail2ban.pid, [INFO] logging to /var/log/fail2ban.log
Status for the jail: exim
|- Filter
|  |- Currently failed: 7
|  |- Total failed:     20256
|  `- File list:        /var/log/exim/mainlog
`- Actions
   |- Currently banned: 4
   |- Total banned:     414
   `- Banned IP list:   178.32.87.227 77.40.62.17 116.239.252.112 92.118.38.39
whitethemight
() автор топика
Ответ на: комментарий от whitethemight

На Centos 7 было, что ip банились не сразу, а через время. На Centos 8 банятся мгновенно.

banaction = iptables-multiport
Поменять действия для бана, и проверить, работает или нет.

SergeyF
()
Ответ на: комментарий от SergeyF

ничего не изменилось, этот айпи адрес продолжает долбится. я могу конечно его забанить в ручную, но над автоматизировать.

whitethemight
() автор топика
Ответ на: комментарий от whitethemight

Настраивай:

banaction = 
Анализируй:
/var/log/fail2ban.log
Чудес не бывает. Где то ошибка. Надо найти и исправить. На Centos 8 работает как часы.

SergeyF
()
Ответ на: комментарий от shrub

Не отрабатывает регулярка.

fail2ban-regex
Вообще не знает такую команду вот если что версия
Fail2Ban v0.10.1 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

whitethemight
() автор топика
Ответ на: комментарий от shrub

В /var/log/fail2ban.log Пишет

2019-12-25 16:25:59,994 fail2ban.transmitter    [2045]: WARNING Command ['regex'] has failed. Received Exception('Invalid command',)

whitethemight
() автор топика
Ответ на: комментарий от whitethemight

Мы правильно понимаем, что fail2ban показывает ip в списке забаненных, но ip продолжает посылать запросы на сервер?

SergeyF
()
Ответ на: комментарий от whitethemight

А если увеличить:

findtime  = 60m
И перезапустить сервис:
systemctl restart fail2ban 
Споймает ip?
Если не споймает, значит не настроено правило, регулярное выражение, по которому банить ip. Правила описаны в этой директории:
 /etc/fail2ban/filter.d/ 

SergeyF
()
Ответ на: комментарий от SergeyF

Сейчас постараюсь, но что означает вот это :

 
fail2ban-client reload
 Failed during configuration: Bad value substitution:
        section: [Definition]
        option : failregex
        key    : __prefregex
        rawval : authentication failure; logname=\S* uid=\S* euid=\S* tty=dovecot ruser=\S* rhost=<HOST>(?:\s+user=\S*)?\s*$

Строка после «rawval» содержится у меня в dovecot.conf

whitethemight
() автор топика
Ответ на: комментарий от whitethemight
fail2ban-client reload

Нет. Не так. Перезапусти сервис. В современных дистрибутивах это:

systemctl restart fail2ban
Как это в freebsd - понятия не имею.

SergeyF
()
Ответ на: комментарий от SergeyF

Я понял, я сверху не перезапускал сервис. Сейчас выдал такую ошибку интересную

Found no accessible config files for 'filter.d/exim.conf' under /usr/local/etc/fail2ban
 Unable to read the filter 'exim.conf'
 Errors in jail 'exim'. Skipping...
Теперь при написании :
 
fail2ban-server status 
Status
|- Number of jail:      1
`- Jail list:   dovecot
Dovecot появился, а Exim исчез. Сейчас гляну конфиг exim.conf

whitethemight
() автор топика
Ответ на: комментарий от whitethemight
/etc/fail2ban/jail.d/

В этой директории создаешь фаил:

dovecot.local
В файле этом, параметры указываешь:
[dovecot]
enabled = true
mode = aggressive
Если надо, добавляешь другие параметры, сколько искать, сколько банить, сколько попыток.

Создаешь фаил:
/etc/fail2ban/jail.local
В файле этом, переопределяешь глобальные настройки для ВСЕХ «клеток», например:
[DEFAULT]

bantime  = 11000m

ignoreip = 213.232.2.16

findtime  = 11000m

maxretry = 2

В директории:

 /etc/fail2ban/filter.d
Хранятся файлы с регулярными выражениями для бана. Их никогда не создавал и не редактировал. Ибо достаточно искоробочных.

Рекомендую несколько видео роликов из ютюб по настройке fail2ban =)

SergeyF
()
Последнее исправление: SergeyF (всего исправлений: 1)
Ответ на: комментарий от SergeyF

Я уже всё это сделал =) Сейчас перезапустил сервак fail2ban, ну поставил

findtime=10m
Подождём 10 минут, надеюсь что споймает.

whitethemight
() автор топика
Ответ на: комментарий от whitethemight

Если:
Прописана клетка: /etc/fail2ban/jail.d/dovecot.local:

[dovecot]
enabled = true
mode = aggressive
bantime  = 11000m
ignoreip = 213.232.2.16
findtime  = 11000m
maxretry = 2

Клетка отображается как рабочая в:

fail2ban-client status
И в клетке есть некоторые забаненные айпи. НО! Ты видишь, что к тебе стучатся, и не хочешь, чтобы стучались, видишь это в логе, то придется тебе писать свое правило, свое регулярное выражение. Под сие выражение, новую клетку. И будет тот грешный ip в бане.

SergeyF
()
Ответ на: комментарий от SergeyF

В клетке нет забаненных айпи. В /var/log/fail2ban.log [code] 2019-12-25 17:31:51,752 fail2ban.transmitter [84550]: WARNING Command [‘action’] has failed. Received Exception(‘Invalid command’,) 2019-12-25 17:31:57,818 fail2ban.transmitter [84550]: WARNING Command [‘status’, ‘action’] has failed. Received UnknownJailException(‘action’,) 2019-12-25 17:33:10,760 fail2ban.transmitter [84550]: WARNING Command [‘status’, ‘action’] has failed. Received UnknownJailException(‘action’,) [/code]

whitethemight
() автор топика
Ответ на: комментарий от whitethemight

Удали полностью fail2ban. Удали все его конфиги. Удали конфиги, которые создал сам. Заново установи. Настрой /etc/fail2ban/jail.local:

[DEFAULT]
bantime  = 11000m
findtime  = 11000m
maxretry = 2
Настрой /etc/fail2ban/jail.d/dovecot.local
 
[dovecot]
enabled = true
mode = aggressive
Настрой /etc/fail2ban/jail.d/exim.local
[exim]
enabled = true
mode = aggressive
Перезапусти сервис:
systemctl restart fail2ban
Banaction, и другие настройки, не трогай. Проверить работу.

SergeyF
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.