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 Prod
将ServerSignature 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:如何对用户隐藏服务器版本和操作系统?的主要内容,如果未能解决你的问题,请参考以下文章