如何在ModSecurity的JSON日志中屏蔽请求体字段?
如何在ModSecurity的JSON日志中屏蔽请求体字段?
当然可以解决这个问题!针对ModSecurity JSON日志里请求体(body)太冗长导致ELK解析出错的情况,有两种实用方法,你可以根据自己的配置情况选择:
方法一:通过
SecAuditLogParts过滤日志内容
如果你用的是ModSecurity自带的标准JSON日志格式(配置了SecAuditLogFormat JSON),可以通过调整SecAuditLogParts指令来排除请求体部分。默认的SecAuditLogParts会包含请求体(对应标识字母C),你只需要把这个字母从配置项里移除即可。
举个配置修改的例子:
原配置:SecAuditLogFormat JSON SecAuditLogParts ABCDEFGHIJKZ修改后:
SecAuditLogFormat JSON SecAuditLogParts ABDEFGHIJKZ这样生成的JSON日志就会自动剔除请求体相关字段,从根源上避免冗长body带来的解析问题。
方法二:自定义JSON日志模板(更灵活可控)
要是你用的是自定义的JSON日志格式(通过SecAuditLogFormat手动指定模板),那直接在模板里删掉请求体对应的字段就行。比如原模板里可能有这样的内容:SecAuditLogFormat JSON '{"timestamp": "%{time_stamp}", "method": "%{request_method}", "uri": "%{request_uri}", "body": "%{req_body}", "status": "%{response_status}"}'你只需要把
"body": "%{req_body}",这一行(或者对应的键值对)移除,保存配置后重启你的Web服务器(比如Apache、Nginx),新生成的日志就不会再出现body字段了。
最后提醒一下:修改配置后记得测试一下日志生成情况,确保格式正常且确实没有请求体内容;如果是ModSecurity 3.x版本,配置逻辑和2.x基本一致,只是要注意对应Web服务器的配置文件位置哦。
备注:内容来源于stack exchange,提问作者Jean
相关产品推荐
相关产品推荐

