我有一个 Apache Web 服务器,配置为仅允许少数人通过客户端证书访问。我无法通过 IP 锁定,因为证书持有者可能从任何地方连接。
Apache 目前会向未提供有效证书或尝试访问无效 URL 的任何人返回 403,但由于机器没有 ACL 限制,因此会经常扫描漏洞。这些扫描会在日志中产生大量噪音。
有没有办法根据响应代码将日志记录到不同的文件?是否可以将导致 403 的请求的所有日志发送到不同的文件?
答案1
您可以让 Apache 将自定义日志传送到脚本。例如,将 vhost 中的 CustomLog 条目更改为:
CustomLog "|/path/to/script"
你可以编写一个脚本来执行如下操作:
/usr/bin/perl 的 #! 当 ($log = <STDIN>) { 如果 ($log =~ /403/) { 打开(LOG,'>>/path/to/403log'); 打印日志$log; 关闭(日志); } 别的 { 打开(LOG,'>>/path/to/mainlog'); 打印$log LOG; 关闭(日志); } }
上述脚本尚未测试,但它应该可以让您了解您可以做什么。