modsecurity: 配置文件中的配置项之一

一,是否启用防火墙

SecRuleEngine是接受来自ModSecurity-CRS目录下的所有规则的安全规则引擎。因此,我们可以根据需求设置不同的规则。

#SecRuleEngine On:将在服务器上激活ModSecurity防火墙。它会检测并阻止该服务器上的任何恶意攻击。
#SecRuleEngine Detection Only:如果这个规则是在whitelist.conf文件中设置的,它只会检测到所有的攻击,并根据攻击产生错误,但它不会在服务器上阻止任何东西。
#SecRuleEngine Off::这将在服务器上上停用ModSecurity的防火墙。

默认值:

SecRuleEngine DetectionOnly

 

二,审计日志配置:

1,#配置审计日志引擎的开启与否

SecAuditEngine RelevantOnly

取值:
On - 默认情况下记录所有事务的日志;
RelevantOnly - 默认只记录事务中由warning或error触发的日志,
                     或者记录一些特意考虑过的状态码
relevant这个单词是有关的/有意义的

2,#记录由规则标记的事务,以及触发服务器错误
将记录所有 5xx 和 4xx 级别的状态代码,404 除外

SecAuditLogRelevantStatus "^(?:5|4(?!04))"

备注:必须将SecAuditEngine 设置为RelevantOnly,这个参数才有意义,
它是一个正则表达式。
#这个指令最主要的目的是允许你配置审计产生特殊HTTP 响应状态码的唯一事务,
这个指令通常用于减少审计日志文件的总体大小。
需要注意的是:  如果使用了这个参数,那么返回状态码是200 的成功攻击事件不会记录。

3,#定义每个事务中记录到审计日志中的部分。

SecAuditLogParts ABIJDEFHZ

可用的审计日志部分:

A:审计日志头(必须配置)
B:请求头
C:请求体(仅在请求体存在并且ModSecurity配置为拦截它时才存在。 这需要将SecRequestBodyAccess设置为On)
D:该值是为中间响应头保留,尚未有任何实际作用
E:中间响应体
   (仅当ModSecurity配置为拦截响应体并且审计日志引擎配置为记录时才存在。 拦截响应体需要将SecResponseBodyAccess设置为On)。
     除非ModSecurity拦截中间响应体,否则中间响应体与实际响应体相同,
     在这种情况下,实际响应体将包含错误消息(Apache默认错误消息或ErrorDocument页面))
F:最终响应头(不包括日期和服务器标题,Apache始终在内容交付的后期阶段添加)
G:该值是为实际响应体保留,尚未有任何实际作用
H:审计日志追踪内容;
I:该部分是C的替代品。除了使用multipart/form-data编码,否则它在所有情况下记录的数据与C相同。
    在这种情况下,它将记录一个假应用程序/ x-www-form-urlencoded正文,其中包含有关参数的信息,但不包含有关文件的信息。
    如果您不想在审核日志中存储(通常很大)的文件,使用I比使用C更方便。
J:该部分包含有关使用multipart/form-data编码上传的文件的信息。
K:该部分包含了本次访问中所匹配到的所有规则(按每行一个进行记录)。
    规则是完全合格的,因此将显示继承的操作和默认操作符。V2.5.0以上支持。
Z:结尾分界线,表示本次日志记录完毕(必须配置)

默认值:ABIJDEFHZ

4,#配置使用审计日志记录机制的类型Serial|Concurrent,Serial

SecAuditLogType Serial

Serial - 所有的审计日志条目都被存储在主审计日志记录文件中,使用时很方便,
           但是它很慢,因为任何时候只有一个文件被打开也只能写入一条审计日志条目。
Concurrent - 审计日志条目被存储于不同的文件中,每个事务一个,
                  如果你要把审计日志数据发送到远程ModSecurity控制主机上就使用Concurrent日志模式。

默认值:   Serial

5,#审计日志路径

SecAuditLog /var/log/modsec_audit.log

 默认值: /var/log/modsec_audit.log

6,审计日志相关的全部默认值:

# -- Audit log configuration -------------------------------------------------

# Log the transactions that are marked by a rule, as well as those that
# trigger a server error (determined by a 5xx or 4xx, excluding 404,
# level response status codes).
#
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"

# Log everything we know about a transaction.
SecAuditLogParts ABIJDEFHZ

# Use a single file for logging. This is much easier to look at, but
# assumes that you will use the audit log only ocassionally.
#
SecAuditLogType Serial
SecAuditLog /var/log/modsec_audit.log

# Specify the path for concurrent audit logging.
#SecAuditLogStorageDir /opt/modsecurity/var/audit/

 

posted @ 2024-10-18 13:51  刘宏缔的架构森林  阅读(62)  评论(0编辑  收藏  举报