Nginx Web安全漏洞解决:Web服务器HTTP头信息公开以及Web服务器错误页面信息泄露

1、安全漏洞说明

使用Nginx提供服务的产品,经过安全扫描工具扫描后报出两个安全漏洞

1.1、安全漏洞:Web服务器HTTP头信息公开

风险级别:中风险
漏洞个数:4
漏洞详情:

端口 协议 服务
443 TCP WWW
80 TCP WWW
8000 TCP WWW
8080 TCP WWW

1.2、安全漏洞:Web服务器错误页面信息泄露

风险级别:中风险
漏洞个数:4
漏洞详情:

端口 协议 服务
443 TCP WWW
80 TCP WWW
8000 TCP WWW
8080 TCP WWW

2、漏洞分析

1、每个漏洞的个数有四个,就是对应漏洞详情中的4个端口
2、产品使用Nginx提供的服务,Nginx通过虚拟机方式以不同端口提供服务

结论:Nginx有4个虚拟机存在安全漏洞,对应的端口分别是443、80、8000和8080

3、漏洞解决

3.1、找到漏洞端口对应的Nginx虚拟机配置文件

这些配置文件的路径取决于nginx的配置,可能位于/etc/nginx目录下,也可能位于其他的目录下,可以通过搜索的方式查找。
以漏洞详情中的4个端口号作为关键字查找

# grep -rE "443|80|8080|8000" /etc
# grep -rE "443|80|8080|8000" /opt

nginx虚拟机配置文件格式一般有如下字段

server {
    listen 8080...
}

可以做区分

3.2、修改虚拟机配置文件

3.2.1、修改方法

参考nginx官网
http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens

Syntax:	server_tokens on | off | build | string;
Default:	
server_tokens on;
Context:	http, server, location
Enables or disables emitting nginx version on error pages and in the “Server” response header field.

The build parameter (1.11.10) enables emitting a build name along with nginx version.

Additionally, as part of our commercial subscription, starting from version 1.9.13 the signature on error pages and the “Server” response header field value can be set explicitly using the string with variables. An empty string disables the emission of the “Server” field.

3.2.2、配置文件修改

8080配置文件

server {
    listen 8080...
}

增加一行

server {
    listen 8080...
    server_token off;
}

443配置文件

server {
    listen 443...
}

增加一行

server {
    listen 443...
    server_token off;
}

8000配置文件

server {
    listen 8000...
}

增加一行

server {
    listen 8000...
    server_token off;
}

80配置文件

server {
    listen 80...
}

增加一行

server {
    listen 80...
    server_token off;
}

3.3、重启ngnix服务

# systemctl restart nginx

你可能感兴趣的:(安全漏洞,nginx)