如何避免漏洞扫描程序通常导致的日志文件未find?

我的apache日志里充满了'admin.php' not found or unable to stat通过漏洞扫描程序来wp-login.phpdefault.php等类似的语句。 我可以configurationApache以避免logging某些文件的这些语句? 我不想过滤掉所有未find的文件,因为我想修复多年来可能已经放弃的不再对应相同文件的错误链接。

我可以使用像fail2ban或denyhosts这样的工具,但是从以前的经验来看 ,它来自很多地方,这些错误仍然会堆积如山,减less这些错误信息就是这个问题的要求。

Apache的CustomLog指令允许评估环境variables以决定是否logging消息。 而环境variables可以根据使用SetEnvIf的URI来设置。 因此,要从组合的自定义日志中排除所有以wp-login.php结尾的URI请求:

 SetEnvIf Request_URI "wp-login.php$" dontlog CustomLog /var/log/apache2/access.log combined env=!dontlog 

请注意,您需要使用mod_setenvif来使SetEnvIf正常工作。