我已经在 ubuntu 服务器上使用 nginx(1.13.6) 编译了 modsecurity 和 headers_more_module。当 nginx 配置中未启用 modsecurity 时,我能够在服务器响应中隐藏原始服务器的名称:
Server: nginx
但是,当启用 modsecurity 时,我在每个响应中都会收到标头。如何在启用 modsecurity 的情况下禁用显示服务器的签名?是否应该在 modsecurity 配置中修改任何内容以实现此目的?
答案1
如果你使用的是 Ubuntu,则以下操作应该有效:
安装
nginx-extras
sudo apt-get install nginx-extras
编辑
/etc/nginx/nginx.conf
并在http
块中添加:http { more_set_headers "Server: My_Custom_Server_Name"; server_tokens off; }
重启 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。