我刚刚在我的访问日志中发现了类似这样的请求:
180.76.15.134 - - [30/Oct/2017:22:38:05 +0100] "GET /manual/en/server-wide.html HTTP/1.1" 200 3551 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
访问这条路径让我感到惊讶:我的服务器(Ubuntu 16.04 / Apache 2.4 / Virtualmin,通过各种指南进行了强化,即不暴露它的操作系统或网络服务器的版本)使用 Apache 手册进行响应,至少暴露了它的版本。
现在当然没有目录manual
。但我也找不到指令之类的东西。谷歌搜索没有给我答案。
有人知道这个是从哪里来的,以及如何禁用它吗?当然我可以尝试声明一个<LocationMatch>
-directive,但我想知道它从哪里来的,以及是否有可能抑制它正确的方式。谁知道那里还发生了什么事……
答案1
不安装不必要的操作系统组件和软件包被认为是一种很好的做法。
据我所知,apache httpd 手册不是默认安装的,而是一个可选包,因此可以轻松删除和/或禁用。
您可能安装了文档包apache2-doc
,其中安装了一个嵌入式配置文件/etc/apache2/conf-available/apache2-doc.conf
,该文件提供以下资源:/usr/share/doc/apache2-doc/manual
删除该软件包apache2-doc
或者禁用配置插件a2disconf apache2-doc
(然后重新启动您的网络服务器)。
答案2
在 Centos 上,httpd-manual 软件包提供了手册。您可以删除该软件包,或者注释掉 /etc/httpd/conf.d/manual.conf 中的所有内容。
答案3
我认为今天这个问题问得好,因为 google bot 和其他搜索算法每天都会缓存这些 Apache 页面,其他网络用户也会找到这些 html 页面。因此,我确实更改了文件中的规则,apache2-doc.conf
仅向网络 IP 地址授予本地访问权限,如下所示:
<Directory "/usr/share/doc/apache2-doc/manual/">
Options Indexes FollowSymlinks
AllowOverride All
<IfModule mod_authz_core.c>
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
Require ip x.x.x.0/24
</RequireAny>
</IfModule>
AddDefaultCharset off
</Directory>