Apache 根据响应代码记录到不同的文件

Apache 根据响应代码记录到不同的文件

我有一个 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;
        关闭(日志);
    }
}

上述脚本尚未测试,但它应该可以让您了解您可以做什么。

相关内容