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

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

服务器签名关闭

ServerTokens 产品

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

Apache/2.2.16 (Debian)

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

谢谢!

【问题讨论】:

    标签: apache apache2


    【解决方案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

    【讨论】:

    • 对我不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2011-03-27
    • 2012-02-05
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多