安全基线-Nginx安全配置规范

Posted oumeixi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全基线-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

在浏览器访问: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

以上是关于安全基线-Nginx安全配置规范的主要内容,如果未能解决你的问题,请参考以下文章

中间件安全Nginx 安全加固规范

SECURITY-linux安全基线检查脚本

安全配置基线 – 操作系统类 – Windows 10

TOMCAT安全加固手册

Linux系统安全配置基线

中间件安全基线配置