我在 Ubuntu 14.04 上运行开发 LAMP 服务器。今天我查看了 access.log,发现了很多这样的行:
::1 - - [05/Jul/2015:01:24:14 +0200] "OPTIONS * HTTP/1.0" 200 110 "-" "Apache/2.4.7 (Ubuntu) OpenSSL/1.0.1f (internal dummy connection)"
还有更多:
127.0.0.1 - - [05/Jul/2015:01:50:01 +0200] "POST / HTTP/1.1" 403 347 "-" "-"
我想知道这是否可能是由错误编码的 RewriteRule 引起的问题(我说的是自 7 月 5 日以来大约 1500 行,像上面的第二行),或者我是否应该深入研究对服务器的潜在黑客攻击或至少尝试这样做。
你有什么看法?谢谢
编辑
这可能会有用:
在 apache 的 error.log 中我发现:
[Mon Jun 29 01:24:31.082231 2015] [rewrite:error] [pid 5311] [client 127.0.0.1:33583] AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions : /var/www/html/
我觉得奇怪的是,我从 2015 年 5 月起就使用这些设置运行此服务器,这是我第一次遇到这些错误。如果这是 RewriteRule 问题,为什么现在才出现……?
答案1
为了第一的“错误”参见https://wiki.apache.org/httpd/InternalDummyConnection。Apache 默认将这些内部唤醒请求发送给其所有子进程。
如果你希望将它们从日志中排除,可以使用常规的条件日志记录技术。例如,要从日志中忽略来自环回接口的所有请求,你可以使用
SetEnvIf Remote_Addr "127\.0\.0\.1" loopback
然后将 env=!loopback 添加到 CustomLog 指令的末尾。
这第二“错误”表示来自 localhost 的某人正在POST
向该/
路径发出请求并收到 Forbidden (HTTP 403) 结果。从日志中无法得知该虚拟主机的用途。如果您定期收到这些行,则可能是系统上运行了某个 cron 作业或某种监控。
为了第三“错误” 您.htaccess
在目录中有文件/var/www/html/
。要使 mod_rewrite 从内部工作.htaccess
,需要启用提到的参数(Options +FollowSymLinks
或Options +SymLinksIfOwnerMatch
,后者稍微安全一些)。由于在您的案例中两者都被禁用,因此RewriteRule
将被忽略。(我不确定它是否只是被忽略,还是也导致403
上述错误,因为错误提到它是禁止)。