Administrator
发布于 2022-10-10 / 291 阅读
0
0

Nginx-安全基线问题整理

Nginx-安全基线问题整理

1.Nginx SSL协议的加密策略进行加固

加固建议
Nginx SSL协议采用TLSv1.2:
1、打开conf/nginx.conf配置文件(or include file in the main configuration file);
2、配置

server { 
               ...
              ssl_protocols TLSv1.2;
               ...
                     }

备注:配置此项请确认nginx支持OpenSSL,运行nginx -V 如果返回中包含built with OpenSSL则表示支持OpenSSL。如果不支持,请重新编译nginx

2.检查是否配置Nginx账号锁定策略

描述
1.执行系统命令passwd -S nginx来查看锁定状态
出现Password locked证明锁定成功
如:nginx LK … (Password locked.)或nginx L …
2.默认符合,修改后才有(默认已符合)
3.执行系统命令passwd -l nginx进行锁定

加固建议
配置Nginx账号登录锁定策略: Nginx服务建议使用非root用户(如nginx,nobody)启动,并且确保启动用户的状态为锁定状态。可执行passwd -l <Nginx启动用户> 如passwd -l nginx 来锁定Nginx服务的启动用户。命令 passwd -S <用户> 如passwd -S nginx可查看用户状态。 修改配置文件中的nginx启动用户修改为nginx或nobody 如: user nobody;

3.检查Nginx进程启动账号

描述
Nginx进程启动账号状态,降低被攻击概率

加固建议
修改Nginx进程启动账号:
1、打开conf/nginx.conf配置文件;
2、查看配置文件的user配置项,确认是非root启动的;
3、如果是root启动,修改成nobody或者nginx账号;
备注: 4、修改完配置文件之后需要重新启动Nginx。

4.Nginx后端服务指定的Header隐藏状态

描述
隐藏Nginx后端服务X-Powered-By头

加固建议
隐藏Nginx后端服务指定Header的状态:
1、打开conf/nginx.conf配置文件(或主配置文件中的inlude文件);
2、在http下配置proxy_hide_header项; 增加或修改为 proxy_hide_header X-Powered-By; proxy_hide_header Server;

5.隐藏Nginx服务的Banner

描述
Nginx服务的Banner隐藏状态

加固建议
Nginx后端服务指定的Header隐藏状态隐藏Nginx服务Banner的状态:
1、打开conf/nginx.conf配置文件;
2、在server栏目下,配置server_tokens项 server_tokens off;

6.任意文件读取

描述
缺少斜杠可能导致目录穿越

加固建议
不建议存在

location /path {
alias /home/;
}
location /files{
root /;
}

如上配置
建议把location /path改为location /path/的格式,以/结尾 把root /;改为root /path

7.Nginx的WEB访问日志记录状态

描述
应为每个核心站点启用access_log指令。默认情况下启用。

加固建议
开启Nginx的WEB访问日志记录:
1、打开conf/nginx.conf配置文件(或主配置文件中的inlude文件);
2、在http下配置access_log项access_log logs/host.access.log main;
3、并在主配置文件,及主配置文件下的include文件中 删除off项或配置为适当值

8.确保NGINX配置文件权限为644

描述
把控配置文件权限以抵御外来攻击

加固建议
修改Nginx配置文件权限: 执行chmod 644 <conf_path>来限制Nginx配置文件的权限;(<conf_path>为配置文件的路径,如默认/安装目录/conf/nginx.conf或者/etc/nginx/nginx.conf,或用户自定义,请 自行查找)


评论