У меня есть эти файлы в моем файле mail.log:
Feb 9 11:57:50 ctrl-01 postfix/smtpd[21155]: NOQUEUE: reject: RCPT from unknown[185.143.223.170]: 454 4.7.1 <ian@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<ian@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
Feb 9 11:57:50 ctrl-01 postfix/smtpd[21155]: NOQUEUE: reject: RCPT from unknown[185.143.223.170]: 454 4.7.1 <david@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<david@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
Feb 9 11:57:50 ctrl-01 postfix/smtpd[21155]: NOQUEUE: reject: RCPT from unknown[185.143.223.170]: 454 4.7.1 <chris@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<chris@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
Feb 9 11:57:51 ctrl-01 postfix/smtpd[21155]: NOQUEUE: reject: RCPT from unknown[185.143.223.170]: 454 4.7.1 <john@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<john@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
Feb 9 11:57:52 ctrl-01 postfix/smtpd[21155]: NOQUEUE: reject: RCPT from unknown[185.143.223.170]: 454 4.7.1 <mike@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<mike@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
У меня это есть в моем /etc/fail2ban/filter.d/postfix.conf
failregex = reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 454 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
Однако, когда я проверяю Regex, он ничего не соответствует:
$ fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
Running tests
=============
Use failregex filter file : postfix, basedir: /etc/fail2ban
Use datepattern : Default Detectors
Use log file : /var/log/mail.log
Use encoding : UTF-8
Results
=======
Failregex: 0 total
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [10000] {^LN-BEG}(?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
`-
Lines: 10000 lines, 0 ignored, 0 matched, 10000 missed
[processed in 0.60 sec]
Есть идеи, почему это могло быть?
Обновление: я использую ubuntu 18.04.04 LTS Server - стандартная версия fail2ban 0.10.2-2
Обновление 2: я добился некоторого прогресса, и если я закомментирую эту строку, она будет соответствовать:
prefregex = ^%(__prefix_line)s<mdpr-<mode>> <F-CONTENT>.+</F-CONTENT>$
Но я бы предпочел исправить проблему, а не добавить взлом.
когда prefregex
настоящее, fail2ban сначала удаляет строки журнала, которые не соответствуют prefregex
а затем соответствует failregex
против содержания <F-CONTENT>
. Поскольку postgres
фильтр содержит:
prefregex = ^%(__prefix_line)s<mdpr-<mode>> <F-CONTENT>.+</F-CONTENT>$
mdpr-normal = (?:NOQUEUE: reject:|improper command pipelining after \S+)
после применения prefregex
, содержание будет:
RCPT from unknown[185.143.223.170]: 454 4.7.1 <ian@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<ian@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
RCPT from unknown[185.143.223.170]: 454 4.7.1 <david@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<david@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
RCPT from unknown[185.143.223.170]: 454 4.7.1 <chris@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<chris@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
RCPT from unknown[185.143.223.170]: 454 4.7.1 <john@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<john@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
RCPT from unknown[185.143.223.170]: 454 4.7.1 <mike@restaurantlesbeatilles.com>: Relay access denied; from=<f86e41m50ljqs@artist-oil.ru> to=<mike@restaurantlesbeatilles.com> proto=ESMTP helo=<[185.143.223.97]>
и вам нужно отбросить reject:
часть ваших регулярных выражений:
failregex = RCPT from (.*)\[<HOST>\]: 550 5.1.1
RCPT from (.*)\[<HOST>\]: 450 4.7.1
RCPT from (.*)\[<HOST>\]: 454 4.7.1
RCPT from (.*)\[<HOST>\]: 554 5.7.1