【安全基线】-Nginx安全配置规范
1. 背景
苦恼于互联⽹上现有的基线资源不具备实时性,适⽤的版本⽐较⽼旧,甚⾄已逐步被企业淘汰。博主本着学习实验的⼼态,写下这篇博客,希望能给那些同我有着相同困扰的安全基线初学者铺块砖。恭候各位路过的⼤佬的指正!
2. 环境准备
操作系统:CentOS 7
1. 添加CentOS 7 EPEL仓库
sudo yum install epel-release
2. 安装Nginx
sudo yum install nginx
3. 查看是否正确安装
rpm -qa | grep nginx
4. 启动Nginx
sudo systemctl start nginx  //启动Nginx
sudo systemctl status nginx//查看Nginx状态
ps -ef |grep nginx|grep -v grep
nginx会⾃动根据当前主机的CPU的内核数⽬创建对应的进程数量。nginx进程在启动的时候,会附带⼀个守护进程,⽤于保护正式进程不被异常终⽌;如果守护进程⼀旦返现nginx继承被终⽌了,会⾃动重启该进程。守护进程⼀般会称为master进程,业务进程被称为worker进程
5. 设置开机⾃启Nginx
sudo systemctl enable nginx
6. 查看默认页⾯
如果正在运⾏防⽕墙,运⾏以下命令以允许HTTP和HTTPS通信:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在浏览器访问:服务器IP地址/,默认页⾯如下:
nginx 配置文件⾄此,已完成测试环境的搭建。
7. 查看配置⽂件f
Nginx使⽤最多的三个核⼼功能是反向代理、负载均衡和静态服务器,不同的功能的使⽤,都跟Nginx的配置密切相关。
Nginx服务器的配置信息主要集中在f这个配置⽂件中,可分为6个部分。
main:⽤于进⾏nginx全局信息的配置
events:⽤于nginx⼯作模式的配置
http:⽤于进⾏http协议信息的⼀些配置
server:⽤于进⾏服务器访问信息的配置
location:⽤于进⾏访问路由的配置
upstream:⽤于进⾏负载均衡的配置
接下去步⼊正题,测试安全配置加固项。
2. 安全配置
2.1 禁⽌Nginx显⽰⽬录列表
名称禁⽌Nginx显⽰⽬录列表
Nginx服务器默认⽬录:/usr/share/nginx/html
若⽂件根⽬录⾥有 index.html,浏览器就会显⽰ index.html的内容
描述
若不存在 index.html,浏览器就会显⽰⽂件根⽬录的⽬录列表,⽬录列表包括⽂件根⽬录下的⽂件
和⼦⽬录
问题影响在nginx中开启autoindex,配置不规范⽽造成⽬录遍历漏洞
检查⽅法核查配置⽂件cat /etc/f |grep autoindex 确认autoindex不为ON
参考值autoindex off; //默认情况下为off
加固步骤1.备份f
f.bak
2.配置f,设置
autoindex off;  或者注释#autoindex on;
回退步骤恢复原有配置
f.f