Apache:如何对用户隐藏服务器版本和操作系统?

Posted

技术标签:

【中文标题】Apache:如何对用户隐藏服务器版本和操作系统?【英文标题】:Apache: how to hide server version and operation system from users? 【发布时间】:2012-02-18 12:39:18 【问题描述】:

我在一个网站上看到我需要在httpd.conf 文件中添加两行:

服务器签名关闭

ServerTokens 产品

但是当我添加它们时,什么都没有改变。如前所述,我可以在浏览器中看到

Apache/2.2.16 (Debian)

也许这很重要:当我打开文件时(我的意思是在添加上述行之前)httpd.conf 我看到它是空的。我使用 VPS。

谢谢!

【问题讨论】:

【参考方案1】:

您没有提供有关操作系统/发行版等的足够信息

但是在 ubuntu 的 apache 安装中 apache2.conf 看起来是这样的:

<cut>
Include httpd.conf
Include ports.conf
Include conf.d/
Include sites-enabled/

conf.d/security中你可以看到

ServerTokens OS

只需检查您的配置,在您在 httpd.conf 中设置后它会被覆盖

【讨论】:

是的,我发现它们在 security 文件中被覆盖。当我在那里更改它们时 - apache 版本和操作系统信息消失了。谢谢! 我们可以隐藏服务器名称本身吗?即Apache【参考方案2】:

简单:

sudo nano /etc/apache2/conf-enabled/security.conf

然后:

ServerTokens OS 更改为ServerTokens ProdServerSignature On 更改为ServerSignature Off

重启 Apache:

sudo service apache2 restart

这篇文章也可能对你有所帮助:Hide Apache Information

【讨论】:

这对我来说非常有效。想知道为什么它不是 Apache 的默认设置。 在 Windows 上不起作用 :( 仍然显示 "Server: Apache/2.4.43 (Win64)" 在 ubuntu 20.04 上对我不起作用【参考方案3】:

致also hide the name "Apache":

sudo apt-get install libapache2-mod-security2

然后将这个添加到/etc/apache2/apache.conf(你可以使用任何名字,这里我用了空格):

<IfModule security2_module>
    SecRuleEngine on
    ServerTokens Min
    SecServerSignature " "
</IfModule> 

然后重启 Apache:

sudo service apache2 restart

有关包含@ShanuTThankachan 答案的完整文章,请参阅here。

【讨论】:

对我不起作用

以上是关于Apache:如何对用户隐藏服务器版本和操作系统?的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏 Apache 版本号和其它敏感信息

Web 安全:隐藏服务版本号

apache服务隐藏启动dos

如何查看当前系统apache 版本

apache服务器隐藏版本号

Apache防盗链和隐藏版本信息