通过Ubuntu APT安装的Nginx默认是没有扩展的,所以需要手动安装才可以。本文主要分享如何在 APT 安装 Nginx 的环境中安装 headers-more-nginx-module 扩展,隐藏www服务信息。
1、起因
今天收到一个高危漏洞的警告,该漏洞大意为:由于响应头可以看到 Nginx 服务的版本信息,如果该版本存在安全漏洞,则存在安全隐患。
如下图所示,是可以看到 web 服务的信息的,可以看看别的网站是否存在该安全隐患。
2、解决
网上教程大多是 make 自主编译的方式通过 configure 安装扩展,而我是通过 APT 安装的,方式略有不同。本想通过卸载原生 Nginx 安装 Openresty 的方式来做,因为 lua + nginx 可以做的事情更多,但因为最近挺忙的,还是简单处理吧。直接通过 APT 安装扩展的方式来解决:
2.1 安装扩展模块
sudo apt install nginx-extras
2.2 安装 http-headers-more-filter
sudo apt install libnginx-mod-http-headers-more-filter
2.3 启用 headers-more-nginx-module 模块
在 http 中添加:
more_clear_headers 'Server';
2.4、重启
执行 Nginx 重启命令:
sudo systemctl restart nginx
如果没有报错信息即完成配置,如出现如下信息:
则需要将该扩展配置到 Nginx 配置文件中,在头部添加:
load_module modules/ngx_http_headers_more_filter_module.so;
最后再重启即可。
3、验证
可以看到,现在响应头中已经没有了 Server 字段: