nginx的一些安全设置

发表于 2019-05-07  94 次阅读


近期我管理的服务器被通报了2个关于nginx的漏洞:CVE-2018-16845和CVE-2018-16843,修复也比较简单,替换掉旧版本的nginx便可。

起初nginx是通过yum软件库来安装的,更新自然也通过yum

第一,新建nginx的软件源,vim /etc/yum.repos.d/nginx.repo

添加内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

第二,yum update nginx 直接更新

第三,yum remove nginx-mod* 删除掉旧版本的nginx模块,否则nginx服务不能启动。

第四,yum install nginx-module-* 安装兼容新版本的modeule。

第五,systemctl restart nginx

没问题了。

此时查看主机的端口,发现除了服务正常使用的端口开启,80端口也打开了,此端口比较麻烦,需要备案,所以要去/etc/nginx/conf.d里删除掉开启80端口对应的配置文件。

查看了系统日志发现漏洞扫描器的工作原理就是通过中间件版本号来对应的相应漏洞,索性把nginx的版本泄露的问题解决,一了百了。

第一,打开Nginx的配置文件:nginx.conf,添加配置语句。

    server_tokens off;

再次探测一下:

[root@localhost yum.repos.d]# curl -I 21*.*.*.*:5*****
 HTTP/1.1 200 OK
 Server: nginx #看这里,只显示nginx不显示版本号,避免了被扫。
 Date: Tue, 07 May 2019 15:06:41 GMT
 Content-Type: application/octet-stream
 Content-Length: 118
 Connection: keep-alive
 Content-Type: text/html; charset=utf-8

建议,更新前备份旧版本的nginx,以防出错无法回滚操作。


专注于学习,生活,教育。