准备工作
在IP为x.x.x.x的服务器上安装nginx,确保Linux系统为nginx环境。
检查nginx是否配置nginx账号锁定策略
配置nginx账号锁定策略,降低被攻击概率。
第一步,查看nginx的锁定状态。
命令:passwd -S nginx
若结果出现“Password locked”,则说明锁定成功。
若结果没有出现“Password locked”,则说明没有锁定。
这时可以通过执行命令“passwd -l nginx”来进行锁定。
第二步,对nginx安全加固的建议。
1)nginx服务使用非root用户(如nginx,nobody)启动。
# 创建nginx运行使用的用户nginx
命令:useradd -s /sbin/nologin -M nginx
(nginx服务的默认用户是nobody,为了安全更改为nginx,在配置文件中启用user nginx nginx;)
2)确保启动用户的状态为锁定状态,可执行命令“passwd -l <nginx启动用户>”(如passwd -l nginx)来锁定nginx服务的启动用户。
# 锁定nginx服务的启动用户
格式:passwd -l <nginx启动用户>
命令:passwd -l nginx
# 查看nginx的锁定状态
格式:passwd -S <nginx启动用户>
命令:passwd -S nginx
若结果出现“Password locked”,则说明锁定成功。
3)在配置文件nginx.conf中,把nginx启动用户修改为nginx或nobody。(如user nginx;)
注意:操作时建议做好记录或备份。必须使用命令“service nginx reload”重启nginx。
检查nginx服务启动账号
修改nginx服务启动账号,降低被攻击概率。
第一步,对nginx安全加固的建议。
在配置文件nginx.conf中,把nginx启动用户修改为nginx或nobody。(如user nginx;)
注意:操作时建议做好记录或备份。必须使用命令“service nginx reload”重启nginx。
nginx后端服务指定的Header隐藏状态
隐藏nginx后端服务指定Header(如X-Powered-By)。
第一步,对nginx安全加固的建议。
在配置文件nginx.conf(或主配置文件中的inlude文件)中,在http节点下配置proxy_hide_header项,增加或修改为
proxy_hide_header X-Powered-By;
proxy_hide_header Server;
注意:操作时建议做好记录或备份。必须使用命令“service nginx reload”重启nginx。
任意文件读取入侵防范
缺少斜杠可能导致目录穿越。
第一步,对nginx安全加固的建议。
在配置文件nginx.conf中,把“location /path”改为“location /path/”,以/结尾;把“root /;”改为“root /path/;”,以/结尾。
配置文件nginx.conf修改如下:
location /path/ {
root /path/;
}
注意:操作时建议做好记录或备份。必须使用命令“service nginx reload”重启nginx。
针对Nginx SSL协议进行安全加固服务配置
Nginx SSL协议采用TLSv1.2的加密策略来进行安全加固。
第一步,对nginx安全加固的建议。
1)在配置文件nginx.conf(或主配置文件中的inlude文件)中,在server节点下配置ssl_protocols项,增加或修改为
server {
...
ssl_protocols TLSv1.2;
...
}
注意:操作时建议做好记录或备份。必须使用命令“service nginx reload”重启nginx。
2)确认nginx是否支持OpenSSL。
命令:nginx -V
若结果显示“built with OpenSSL”,则说明nginx支持OpenSSL。
反之,则需要重新编译nginx。