【问题标题】:How to change(Hide) the Nginx Server Signature?如何更改(隐藏)Nginx 服务器签名?
【发布时间】:2014-08-27 00:19:20
【问题描述】:

我可以通过将 server_tokens 选项设置为 off 来隐藏 Nginx 版本。但无法更改 Nginx 服务器签名。

我做的步骤,

1.) 将源文件(src/http/ngx_http_header_filter_module.c) 中的 Nginx 服务器名称更改为“My-Server”。之后,编译nginx。但是当我加载网址时它不起作用。奇怪的是,当我使用 curl 命令时,我可以看到我更新的签名。但这同样没有在浏览器中更新。

2.) 所以我尝试了第 3 方模块(headers-more-nginx-module)。这也行不通。通过 Curl 获取更新的名称。但不是在浏览器中。

【问题讨论】:

  • 这就是你对 nginx 开发者说“谢谢”的方式吗?
  • 可能是您的浏览器刚刚缓存了标题?在当前浏览器中尝试其他浏览器或 Ctrl-F5/Ctrl-R
  • @folibis ,是的,我检查了不同的浏览器。但还是一样:(
  • @folibis 是的,我已经将 Nginx 设置为 apache LB 的反向代理。我需要换个地方吗?。
  • @VBart 这是通过泄漏尽可能少的信息来提高安全性的一种小方法。 通过设计确保其尽可能安全(即已修补和配置良好)之后,通过隐蔽实现安全是一种好的做法。

标签: linux nginx centos


【解决方案1】:

如果你在 ubuntu 中工作,那么

  1. 先安装nginx-extras

    sudo apt-get install nginx-extras
    
  2. 转到/etc/nginx/nginx.conf 并在http 下添加:

    http {
        more_set_headers "Server: Your_New_Server_Name";
        server_tokens off; 
    }
    
  3. 重启nginx

    sudo service nginx restart
    

【讨论】:

【解决方案2】:

转到 nginx conf 并关闭 server_tokens。

/etc/nginx/nginx.conf

server_tokens off;

【讨论】:

【解决方案3】:
  1. 安装HttpHeadersMoreModule - http://wiki.nginx.org/HttpHeadersMoreModule
  2. 使用more_set_headers 指令更改它。
  3. 重新加载 Nginx 生效。

    隐藏 nginx 版本信息。

    server_tokens 关闭;

    更改服务器名称。

    more_set_headers "服务器:我的服务器名";

【讨论】:

  • 已经尝试过了,并在我的第二点解释了相同的内容。任何其他方式来改变它。
  • 你用的是什么版本?它至少需要 v0.7.44。
  • @KMG 我在使用“more_set_headers”时遇到了同样的问题。它在“卷曲”中起作用的事实表明它起作用了。原来浏览器正在缓存请求。一旦我清除了,问题就解决了。
【解决方案4】:

你可以在你的 Nginx 配置中使用它。

proxy_pass_header Server;

【讨论】:

  • 您能详细说明一下吗?如果您正在反向代理某些后端服务器,这将有效。还有其他情况可以这样做吗?
【解决方案5】:

如果使用 ModSecurity v2.0 - v2.9,那么在 .conf 文件中可以使用

SecServerSignature SomeName

ModSecurity v3 SecServerSignature 已被弃用,但我不知道他们是否将其替换为其他内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2019-01-02
    相关资源
    最近更新 更多