完全隐藏服务器名称apache

dav*_*dav 4 apache debian apache-config

我在etc/apache2.conf文件中添加了这两行,它隐藏了操作系统和apache版本.

ServerSignature Off
ServerTokens Prod
Run Code Online (Sandbox Code Playgroud)

但毕竟我可以看到带有服务器名称的标题

Server  Apache
Run Code Online (Sandbox Code Playgroud)

如何隐藏这些信息?我正在使用Debian 7,apache v 2.2

谢谢

小智 11

Apache本身无法完全取消设置Server标头(甚至没有使用mod_headers).

似乎是设计的,正如Apache开发人员所讨论的那样.

有一种方法可以使用ModSecurity来做到这一点,但我对此知之甚少.相反,这些人已经弄明白了:

https://unix.stackexchange.com/questions/124137/change-apache-httpd-server-http-header

我可以验证这是有效的,只是在Debian 7.6上试过.

编辑: 为apache安装mod安全性,然后将其添加到您的apache2.conf.

<IfModule security2_module>
    SecRuleEngine on
    ServerTokens Full
    SecServerSignature " "
</IfModule> 
Run Code Online (Sandbox Code Playgroud)

重新启动apache之后,Server标头将消失


bl3*_*0de 8

Apache 安全 - Ivan Risti\xc4\x87 | 第 2.3 章更改 Web 服务器身份

\n

为了迷惑黑客并猜测他正在使用什么 Linux 操作系统或什么版本的 Apache。\n您可以将 Apache 服务器名称更改为您想要的任何名称。

\n

对于 ubuntu 20.04:

\n

Apache默认配置:

\n

$ sudo apt install apache2 -y

\n

$ curl -I localhost

\n
HTTP/1.1 200 OK\nDate: Fri, 23 Oct 2020 01:31:44 GMT\nServer: Apache/2.4.41 (Ubuntu)\n
Run Code Online (Sandbox Code Playgroud)\n

将 Apache 服务器名称更改为您想要的任何名称:

\n

$ sudo apt install libapache2-mod-security2

\n

$ sudo a2enmod security2

\n

$ sudo vim /etc/apache2/conf-available/security.conf

\n

服务器令牌已满

\n

服务器签名关闭

\n

SecServerSignature Microsoft-IIS/10.0

\n

$ sudo systemctl restart apache2

\n

$ curl -I localhost

\n
HTTP/1.1 200 OK\nDate: Fri, 23 Oct 2020 01:54:00 GMT\nServer: Microsoft-IIS/10.0\n
Run Code Online (Sandbox Code Playgroud)\n

$ whatweb http://localhost

\n
HTTPServer[Microsoft-IIS/10.0], IP[127.0.0.1], Microsoft-IIS[10.0]\n
Run Code Online (Sandbox Code Playgroud)\n

如果 SecServerSignature 选项设置为SecServerSignature " "\n这将完全隐藏 apache 服务器名称。

\n

$ curl -I localhost

\n
HTTP/1.1 200 OK\nDate: Fri, 23 Oct 2020 02:39:50 GMT\nServer:\n
Run Code Online (Sandbox Code Playgroud)\n