dur*_*kis 5 debian authentication mod-security apache-2.2
我是 ModSecurity 的新手,它在服务器上运行良好,但我想控制它记录事物的方式。例如,当我正在对我的网站进行故障排除以将 php 编码问题列入白名单或更正 php 编码问题以便modsec_audit.log在一切正常时我可以进行清理时,我遇到了以下问题。
每当我请求URL,它是密码保护,要么通过basic或htdigest认证的ModSecurity记录本中modsec_audit.log,如下所示:
htdigest 身份验证:
--838e7b1b-A--
[17/Nov/2013:19:13:51 +0200] Uoj5T8CoAWQAABfMVE0AAAAA xxx.xxx.xxx.xxx XXXXX xxx.xxx.xxx.xxx XXXXX
--838e7b1b-B--
GET / HTTP/1.1
Host: XXX.XXX.com:XXXX
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
--838e7b1b-F--
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Digest realm="Members Only", nonce="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", algorithm=MD5, qop="auth"
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 290
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
--838e7b1b-H--
Stopwatch: 1384708431494144 2002 (- - -)
Stopwatch2: 1384708431494144 2002; combined=32, p1=0, p2=0, p3=0, p4=0, p5=32, sr=0, sw=0, l=0, gc=0
Producer: ModSecurity for Apache/2.6.6 (http://www.modsecurity.org/); OWASP_CRS/2.2.5.
Server: Apache
--838e7b1b-Z--
Run Code Online (Sandbox Code Playgroud)
或者
基本认证:
--b8248f7a-A--
[17/Nov/2013:19:28:11 +0200] Uoj8q8CoAWQAABgxs7kAAAAM xxx.xxx.xxx.xxx XXXXX xxx.xxx.xxx.xxx XXXXX
--b8248f7a-B--
GET / HTTP/1.1
Host: XXX.XXX.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Connection: keep-alive
--b8248f7a-F--
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm="Members Only"
Content-Encoding: gzip
Vary: Accept-Encoding,User-Agent
Cache-Control: no-cache, private, no-transform, must-revalidate, proxy-revalidate, post-check=300, pre-check=300, max-age=300
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
--b8248f7a-H--
Apache-Handler: x-httpd-suphp
Stopwatch: 1384709291811105 152463 (- - -)
Stopwatch2: 1384709291811105 152463; combined=54, p1=0, p2=0, p3=0, p4=0, p5=54, sr=0, sw=0, l=0, gc=0
Producer: ModSecurity for Apache/2.6.6 (http://www.modsecurity.org/); OWASP_CRS/2.2.5.
Server: Apache
--b8248f7a-Z--
Run Code Online (Sandbox Code Playgroud)
上述日志记录发生在请求之后,我没有显示密码失败或成功密码会发生什么。
我的问题是是否有任何方法可以阻止它记录此内容。我试图将我的 IP 列入白名单,但没有结果。我不确定阻止它记录这样的事情是否是个好主意,但我认为/var/log/apache2/modsec_audit.log每次“我”甚至请求密码保护的 url 时,它都会充斥着这些信息。
关于我的服务器的更多信息:
# apt-cache show libapache-mod-security | grep Version
Version: 2.6.6-6+deb7u1
Run Code Online (Sandbox Code Playgroud)
到目前为止,我使用以下规则:
/usr/share/modsecurity-crs/base_rules/
Run Code Online (Sandbox Code Playgroud)
..and modsecurity.conf-推荐为 modsecurity.conf
提前致谢。干杯
编辑:
我想我已经找到了解决问题的解决方法。
为了从记录中排除状态 401,我从这里更改了SecAuditLogRelevantStatus正则表达式modsecurity.conf:
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
Run Code Online (Sandbox Code Playgroud)
对此:
SecAuditLogRelevantStatus "^(?:5|4\d[^41])"
Run Code Online (Sandbox Code Playgroud)
我还做了一个额外的改变,不确定它是否相关,但我从这个改变SecDefaultAction了modsecurity_crs_10_setup.conf:
SecDefaultAction "phase:2,deny,log"
Run Code Online (Sandbox Code Playgroud)
对此:
SecDefaultAction "phase:2,deny,log,noauditlog"
Run Code Online (Sandbox Code Playgroud)
在对受密码保护的 url 进行测试后,我现在没有得到任何modsec_audit.log我想要的东西。我不确定是否有更聪明的方法来做到这一点,但这是有效的。任何意见表示赞赏。
1) 确保您的白名单规则在第一阶段绕过,并且是规则集中最高规则中最高的。
这是一个示例规则:
SecRule REMOTE_ADDR "^111.222.333.444" phase:1,nolog,allow,ctl:ruleEngine=off
Run Code Online (Sandbox Code Playgroud)
请注意,它绕过第 1 阶段,并且不会继续扫描过程的任何进一步部分,它被设置为允许,根本不记录,并且不受规则引擎的约束。
2) HTTP 401 是一个二叉错误代码。访问 URL 资源需要用户身份验证 1) 尚未提供或 2) 已提供但未通过授权测试。这对于针对暴力登录等入侵尝试采取补救措施非常重要。
3) 这些日志中的日期真的是 2013 年 11 月吗?您可能需要更新设备上的日期/时间。
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |