安全:fail2ban: 一条处理类似\x00\x00的过滤规则

一,现象:

原来的过滤规则

failregex = ^<HOST> .* "(GET|POST|HEAD).*HTTP.*" (404|400|403|503) .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)

一条nginx的记录

35.203.211.193 - - [21/Oct/2024:04:59:19 +0800] "\x00\x00\x00f\xFESMB@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
                                                 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
                                                  \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
                                                  \x001234567890123456$\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00
                                                  \x001234567890123456\x00\x00\x00\x00\x00\x00\x00\x00\x02\x02" 400 150 "-" "-" "-" 0.310

测试:原过滤规则对类似的nginx日志记录无效

[root@web filter.d]# fail2ban-regex /logs/www.access_log /etc/fail2ban/filter.d/nginx404.conf --print-all-matched

二,解决

给过滤规则新增加一行,如下:

            ^<HOST> .* ".*\\x.*" (404|400|403|503) .*$

增加后如下:

failregex = ^<HOST> .* "(GET|POST|HEAD).*HTTP.*" (404|400|403|503) .*$
            ^<HOST> .* ".*\\x.*" (404|400|403|503) .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)

 测试效果:

[root@web filter.d]# fail2ban-regex /logs/www.access_log /etc/fail2ban/filter.d/nginx404.conf --print-all-matched
...
|  35.203.211.193 - - [21/Oct/2024:04:59:19 +0800] "\x00\x00\x00f\xFESMB@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x001234567890123456$\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x001234567890123456\x00\x00\x00\x00\x00\x00\x00\x00\x02\x02" 400 150 "-" "-" "-" 0.310
...

已经可以看到原来未检测的记录了 

 

posted @ 2024-10-22 09:32  刘宏缔的架构森林  阅读(26)  评论(0编辑  收藏  举报