使用 modsecurity 禁用 nginx 上的服务器签名

使用 modsecurity 禁用 nginx 上的服务器签名

我已经在 ubuntu 服务器上使用 nginx(1.13.6) 编译了 modsecurity 和 headers_more_module。当 nginx 配置中未启用 modsecurity 时,我能够在服务器响应中隐藏原始服务器的名称:

Server: nginx

但是,当启用 modsecurity 时,我在每个响应中都会收到标头。如何在启用 modsecurity 的情况下禁用显示服务器的签名?是否应该在 modsecurity 配置中修改任何内容以实现此目的?

答案1

如果你使用的是 Ubuntu,则以下操作应该有效:

  1. 安装nginx-extras

    sudo apt-get install nginx-extras
    
  2. 编辑/etc/nginx/nginx.conf并在http块中添加:

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

    sudo service nginx restart
    

答案2

如果使用 ModSecurity v2.0 - v2.9,请将其添加到 .conf 文件中:

 SecServerSignature FakeServer

答案3

使用 modsecurity-nginx 连接器重新编译 nginx 成功了。按照此链接进行操作: 使用 nginx-modsecurity 连接器编译 nginx 和 modsecurity并在编译nginx时包含了headers_more_module。

相关内容