現在、関連するmod_securityアクションを監査ログファイルに正常に記録しているCentOSシステムがあります。以下は私の設定です:
<IfModule mod_security2.c>
SecRuleEngine On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/httpd/modsec_audit.log
SecDebugLog /var/log/httpd/modsec_debug.log
SecDebugLogLevel 0
SecRequestBodyAccess On
SecDataDir /tmp
SecTmpDir /tmp
SecPcreMatchLimit 250000
SecPcreMatchLimitRecursion 250000
</IfModule>
これは、SecAuditEngine RelevantOnly
設定が原因でmod_securityが要求をインターセプト/ブロックするすべてのアクションをログに記録します。
ただし、サーバーに送信されるすべてのPOSTデータを(ステータスに関係なく)追加でログに記録します。SecAuditEngine On
を設定することでこれを達成できますが、すべてのGETがログに記録されますおよびPOST過剰なデータです。リクエストが傍受されない限り、基本的にすべてのGETデータを省略したいと思います。
誰でもこれを行う方法を提案できますか?
AuditEngine
リクエストに対してPOST
をオンにするルールがあります。
このようなもの(試されていない):
SecRule REQUEST_METHOD "POST" "id:1000,phase:2,ctl:auditEngine=On,nolog,pass"
Ctlアクションは現在のリクエストにのみ影響を与えるため、その後、次のリクエストのためにRelevantOnlyにリセットされます。
Sanitise
ルールを作成して、パスワードやクレジットカードデータなどの機密データがログに記録される前に確実にマスクされるようにすることもできます。ここを参照してください: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#sanitiseArg