首页 > 其他分享 >安全:fail2ban: 一条处理类似\x00\x00的过滤规则

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

时间:2024-10-22 09:33:21浏览次数:6  
标签:filter 404 过滤 403 fail2ban 400 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
...

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

 

标签:filter,404,过滤,403,fail2ban,400,x00
From: https://www.cnblogs.com/architectforest/p/18491860

相关文章

  • 一文彻底弄清Redis的布隆过滤器
    布隆过滤器(BloomFilter)是一种空间效率极高的数据结构,用于快速判断一个元素是否在集合中。它能够节省大量内存,但它有一个特点:可能存在误判,即可能会认为某个元素存在于集合中,但实际上不存在;而对于不存在的元素,它保证一定不会误判。布隆过滤器适合在对存储空间要求极为严格,同时能接......
  • Bitmap 和 布隆过滤器傻傻分不清?你这不应该啊
    大家好,我是小富~有个兄弟私下跟我说,他在面试狗东时,有一道面试题没回答上来:Redis的Bitmap和布隆过滤器啥区别与关系?其实就是考小老弟对这两种工具的底层数据结构是否了解,不算太难的题。不过,bitmap和布隆过滤器在大数据量和高并发业务的使用频率不低,知识点应该掌握下,既然问了那咱......
  • HCI_LE_Set_Event_Mask(0x0001)命令全面解析
    目录一、命令概述二、命令格式2.1.一般格式2.2.格式示例2.3.发送命令三、命令参数详解3.1. LE_Event_Mask3.2.常见事件掩码3.3.使用注意事项四、命令返回参数说明4.1.返回事件:HCI_Command_Complete4.2.返回事件参数五、命令的执行流程5.1.命令发送(主机......
  • JavaScript递归按条件过滤掉子级数据
    有一个子父级树形结构的数据,现需要递归遍历,找到类型为‘1’的数据,过滤子级,最后返回树形结构数据代码如下//调用方法,返回按要求过滤后的数据constnewArr=this.clearChildrenOfTypeIndex(arr)//定义过滤方法clearChildrenOfTypeIndex(tree){//避免原始数组被直接修改......
  • 微信小程序毕业设计-基于springboot+协同过滤推荐算法的成都美食分享系统设计和实现,基
    博主介绍:✌️码农一枚,专注于大学生项目实战开发、讲解和毕业......
  • 毕业设计:python股票推荐系统 数据分析可视化 协同过滤推荐算法 Django框架(源码+论文)✅
    python股票推荐系统数据分析可视化协同过滤推荐算法Django框架(源码)✅1、项目介绍技术栈:python、django框架、requests、BeautifulSoup、协同过滤算法、Echarts可视化、HTML登录注册界面:用户可以注册新账号并登录系统。个人信息修改:用户可以修改个人信息,如用户名、......
  • 使用MySQL之用通配符进行过滤
    1.LIKE操作符通配符(wildcard):用来匹配值的一部分的特殊字符。搜索模式(searchpattern):由字面值、通配符或两者组合构成的搜索条件。通配符本身实际是SQL的WHERE子句中有特殊含义的字符,SQL支持几种通配符。为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL后跟的......
  • 使用MySQL之数据过滤
    1.组合WHERE子句为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用。补充:操作符(operator):用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符(logicaloperator)。1.1AND操作符为了通过不止一个列进......
  • vue(vue.js)—过滤器
    原文链接:vue(vue.js)—过滤器–每天进步一点点(longkui.site)vue中的过滤器是对要显示的数据进行特定格式化后进行显示。比如最常用的保留两位小数,我们就可以用过滤器实现,它并没有改变原始数据的值,只是通过新的方式显示出来。功能类似于angular中的管道。对于过滤器要知道两......
  • 【shiro】11.shiro过滤器鉴权setFilterChainDefinitionMap
    之前学习shiro的时候,设置了登录页面和主页面(需要登录才能范围的页面。)1//配置系统公共资源2Map<String,String>map=newHashMap<>();3//authc请求这个资源需要认证和授权4map.put("/index","authc");5//默认认证界面路径6shiroFilterFactoryBean.setLoginUrl(l......