fail2ban
我在基于 debian-8 的主机上使用。我有几个单独的 jail 用于检测 SMTP 服务器上的攻击,我想将它们合并为一个 jail。每个 jail 都使用一个带有一行的过滤器failregex
,这对我来说可以检测到这些攻击。但是,当我尝试将它们合并为一个 jail 和一个带有多行的过滤器时failregex
,不再检测到攻击。
以下是目前正在运行的多重监狱多重过滤器设置的摘要:
## from the 'postfixauth.conf' filter for the 'postfixauth' jail ...
failregex = ^.*lost connection after AUTH from unknown\[<HOST>\].*$
## from the 'postfixconcur.conf' filter for the 'postfixconcur' jail ...
failregex = ^.*concurrency limit exceeded:.*from unknown\[<HOST>\].*$
## from the 'postfixconnect.conf' filter for the 'postfixconnect' jail ...
failregex = ^.*(timeout|lost connection) after (RSET|AUTH|CONNECT|EHLO|STARTTLS) from unknown\[<HOST>\].*$
## from the 'postfixresolve.conf' filter for the 'postfixresolve' jail ...
failregex = ^.*hostname \S+ does not resolve to address +<HOST>.*$
## from the 'postfixsasl.conf' filter for the 'postfixsasl' jail ...
failregex = ^.*unknown\[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed.*$
## from the 'postfixssl.conf' filter for the 'postfixssl' jail ...
failregex = ^.*SSL_accept error from unknown\[<HOST>\].*$
但是,如果我将这六个单独的监狱替换为一个监狱,并failregex
在其过滤文件中包含以下内容,它似乎无法阻止这些攻击:
## from the 'postfix.conf' filter for the 'postfix' jail ...
failregex = ^.*lost connection after AUTH from unknown\[<HOST>\].*$
^.*concurrency limit exceeded:.*from unknown\[<HOST>\].*$
^.*(timeout|lost connection) after (RSET|AUTH|CONNECT|EHLO|STARTTLS) from unknown\[<HOST>\].*$
^.*hostname \S+ does not resolve to address +<HOST>.*$
^.*unknown\[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed.*$
^.*SSL_accept error from unknown\[<HOST>\].*$
我的理解(可能有误)是多failregex
行是合法的,并且它们是通过“或”操作连接在一起的;IE,如果日志文件中的任何行与一个或多个正则表达式匹配,则该行被视为匹配并发出“失败”信号。
假设我的理解是正确的,有人能看出我这样做有什么问题吗?
先感谢您。
答案1
事实证明,我遇到的问题与将多个过滤器换成带有多条failregex
线路的单个过滤器无关。我的机器上也出现了一个不相关的问题,这个问题大约在同一时间发生,我最初忽略了它,并误以为是过滤fail2ban
器出了问题。
在修复不相关的问题并重新启动所有内容后,我上面展示的多行正则表达式确实有效。
更新:更详细地说,问题与 无关fail2ban
。就在我将其更改为多行正则表达式的同时,我意外地运行了/etc/init.d/iptables off
而不是/etc/init.d/iptables stop
。这导致iptables
重启后无法启动,并且我的所有fail2ban
规则都不起作用。一旦我意识到这个错误并正确启动iptables
,多行正则表达式就可以正常工作了。