【安全基线】-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

扫描二维码关注公众号,回复: 6351536 查看本文章

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

在浏览器访问:http://Nginx服务器IP地址/,默认页面如下:

至此,已完成测试环境的搭建。

7. 查看配置文件nginx.conf

Nginx使用最多的三个核心功能是反向代理、负载均衡和静态服务器,不同的功能的使用,都跟Nginx的配置密切相关。

Nginx服务器的配置信息主要集中在nginx.conf这个配置文件中,可分为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/nginx/nginx.conf |grep autoindex

确认autoindex不为ON

参考值

autoindex off; //默认情况下为off

加固步骤

1.备份nginx.conf

cp nginx.conf nginx.conf.bak

2.配置nginx.conf,设置

autoindex off;   或者注释#autoindex on;

回退步骤

恢复原有配置

cp nginx.conf.bak nginx.conf

猜你喜欢

转载自www.cnblogs.com/oumeixi/p/9109970.html