Назад | Перейти на главную страницу

Postfix fail2ban help .. У меня плохой хост, но fail2ban его не заблокирует

Привет, я использую postfix плюс fail2ban на Centos 6.5, но я получаю бот (я не ретранслирую, но вот и все), и по какой-то причине fail2ban не может вырезать ip и заблокировать его, это 6/7 раз в секунду в мой /var/log/maillog

Mar  3 13:05:47 postfix/smtpd[27715]: lost connection after UNKNOWN from Unknown[209.15.212.253]
Mar  3 13:05:47 postfix/smtpd[27715]: disconnect from unknown[209.15.212.253]
Mar  3 13:05:47 postfix/smtpd[27715]: warning: valid_hostname: misplaced delimiter: .

У меня нет проблем с publishing IP-адрес этого бота, потому что он явно никому не дружит и является IP-адресом специально созданного спамерского движка (это RDNS как ".", чтобы попытаться создать лазейку с неуместным разделителем)

в любом случае у меня fail2ban настроен достаточно правильно, он отправляет мне электронное письмо, чтобы сказать, что он запущен и работает под sasl и postfix

здесь /etc/fail2ban/jail.local

findtime  = 600
bantime  = 600
maxretry = 6


[sasl-iptables]
enabled  = true
filter   = postfix-sasl
backend  = polling
action   = iptables[name=sasl, port=smtp, protocol=tcp]
            sendmail-whois[name=sasl, dest=email@me.com]
logpath  = /var/log/maillog
maxretry = 5
bantime  = 300

[postfix-tcpwrapper]
enabled  = true
filter   = postfix
action   = hostsdeny[file=/not/a/standard/path/hosts.deny]
           sendmail[name=Postfix, dest=email@me.com]
logpath  = /var/log/maillog
bantime  = 300
maxretry = 6

 ##the following are done in sheer desperation - no idea if they are needed
[postfix]
enabled = true
port    = smtp,ssmtp
filter  = postfix
action  = hostsdeny
logpath = /var/log/maillog

[perdition]
enabled = true
filter  = perdition
action  = iptables-multiport[name=perdition,port="110,143,993,995"]
logpath = /var/log/maillog

[dovecot-pop3imap]
enabled = true
port = pop3,pop3s,imap,imaps
filter = dovecot-pop3imap
action  = hostsdeny
logpath = /var/log/maillog

Может ли кто-нибудь помочь мне объяснить, почему эти правила еще /var/logs/maillog тоже все время пишут, и никого не забанят?

[/ EDIT] будучи немного новичком в fail2ban, я не осознавал, что это (вроде) перебирает каждую строчку через регулярное выражение - вот мой /etc/fail2ban/filter.d/postfix.conf

# Fail2Ban filter for selected Postfix SMTP rejections
#
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = postfix/smtpd

failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
            ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
            ^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$

ignoreregex =

# Author: Cyril Jaquier

Вы не сказали нам, что в вашем postfix фильтр, но если ваша установка похожа на мою, это что-то вроде

failregex = reject: RCPT from (.*)\[<HOST>\]: 554

Поскольку строки журнала, которые вы нам показали, совсем не выглядят, fail2ban не будет на них срабатывать. Вам нужно будет написать свой собственный фильтр, соответствующий этим строкам, если вы хотите, чтобы они вызывали бан.

Но вы можете обнаружить, что просто чтобы заблокировать этот единственный IP-адрес, более эффективно поставить iptables властвуй в себе. Что-то вроде

iptables -I INPUT 1 -s 209.15.212.253 -p tcp --dport 25 -j REJECT

вероятно, добился бы цели.