强化 Apache:如何禁用 Apache 手动或使其无法访问?

强化 Apache:如何禁用 Apache 手动或使其无法访问?

我刚刚在我的访问日志中发现了类似这样的请求:

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>

相关内容