nginx指定配置文件启动_NGINX安全加固手册

NIGNX系统安全

基线规范

92fb1f9104b43e8cbc7adff1ef90ae02.png

1.概述

1.1 适用范围

 本配置标准的使用者包括:各事业部服务器负责人。
各事业部服务器负责人按规范要求进行认证、日志、协议、补丁升级、文件系统管理等方面的安全配置要求。对系统的安全配置审计、加固操作起到指导性作用。

1.2 文档内容

 本文档内容是nginx的安全加固操作项的详细操作指导,并明确在加固操作过程中可能出现的风险和所遵循的标准。

1.3 加固前的准备

1.3.1 需要重新启动验证系统

 需要重新启动以确定nginx的完整性、业务系统的正常性

1.3.2 备份文件

 在操作之前需要备份nginx重要的配置文件

1.3.3 加固操作注意事项

 需要手工确认系统是否需要加固,同时验证加固效果,系统可以正常运行

1.3.4 软件包相关

 操作系统中多余的软件或者加固需要安装的软件,需要与被加固系统负责人进行确认。

2.操作指导

2.1 nginx版本统一

名称

nginx版本统一

说明

统一集群内的Nginx版本,避免管理混乱

实施目的

统一使用官方Stable 高版本的nignx

问题影响

管理混乱,容易通过低版本漏洞被攻击

实施步骤

通过Nignx官网下载http://nginx.org/en/download.html

最新Stable版本

回退方案

确认方法

nginx -v 查看版本

实施风险

适用说明

2.2 使用普通账户启动nginx

名称

使用普通账户启动nginx

说明

使用普通账户启动nginx

实施目的

新建jqsoft用户启动nginx

问题影响

特权用户启动引起的安全隐患

实施步骤

编辑nginx配置文件,添加如下参数:

user jqsoft;

重启Nginx(需要将Nignx目录及相关静态文件授权给jqsoft用户)

回退方案

恢复nginx配置文件

确认方法

ps -ef |grep nginx 查看nginx进程是否是jqsoft用户启动

实施风险

适用说明

2.3 禁用autoindex

名称

禁用autoindex

说明

禁用autoindex,避免目录浏览

实施目的

禁用autoindex,避免目录浏览,减少安全隐患

问题影响

通过了解目录结构从而攻击系统

实施步骤

编辑nginx配置文件,在http模块添加autoindex off;

重启Nginx

回退方案

恢复nginx配置文件

确认方法

确保nginx.conf配置文件上禁用autoindex
即autoindex off或者没有配置autoindex。

实施风险

适用说明

2.4 关闭服务器标记

名称

关闭服务器标记

说明

关闭服务器标记,避免显示服务器版本信息

实施目的

关闭服务器标记,避免显示服务器版本信息

问题影响

如果开启的话(默认情况下)所有的错误页面都会显示服务器的版本和信息

实施步骤

在nginx.conf配置文件中,http模块中添加 server_tokens off;

重启Nginx

回退方案

恢复配置文件

确认方法

查看错误页面http 返回头中server字段值中已经没有了服务器版本信息

实施风险

适用说明

2.5 设置timeout

名称

设置timeout

说明

设置timeout设低来防御DOS攻击

实施目的

设置timeout设低来防御DOS攻击

问题影响

DOS攻击拖垮服务器

实施步骤

编辑nginx配置文件,在http模块中添加以下参数

client_body_timeout 10;

client_header_timeout 30;

keepalive_timeout 30  30;

send_timeout 10;

重启Nginx

回退方案

恢复nginx配置文件

确认方法

访问Nignx网站查看返回头中已经包含了超时时间配置

实施风险

适用说明

2.6 设置NGINX缓冲区

名称

设置NGINX缓冲区

说明

设置NGINX缓冲区

实施目的

防止缓冲区溢出攻击

问题影响

缓冲区溢出

实施步骤

编辑nginx配置文件,在server模块中需要限制的location中添加以下参数

client_body_buffer_size  1K;

client_header_buffer_size 1k;

client_max_body_size 1k;

large_client_header_buffers 2 1k;

重启Nginx

回退方案

恢复nginx配置文件

确认方法

查看配置文件

实施风险

适用说明

2.7 限制nginx请求方法

名称

限制nginx请求方法

说明

限制nginx请求方法,仅允许常用的get post head

实施目的

限制nginx请求方法,仅允许常用的get post head

问题影响

通过请求漏洞攻击服务器

实施步骤

编辑nginx配置文件,在每个server模块中添加

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444;

}

回退方案

恢复Nignx配置文件

确认方法

使用put/delete等请求返回444响应码

实施风险

适用说明

2.8 日志配置

名称

日志配置

说明

统一使用规定好的日志格式

实施目的

统一使用规定好的日志格式

问题影响

日志不规范,问题排查难度倍增

实施步骤

编辑nginx配置文件,在http模块中添加如下参数

log_format  main 

'$remote_addr - $remote_user [$time_local] "$request" ' 

'$status $body_bytes_sent "$http_referer" '  

'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/host.access.log main;

重启nginx服务即可

回退方案

恢复配置文件

确认方法

查看logs/host.access.log文件,验证日志格式是否与如上配置的一致

实施风险

适用说明

2.9 Nginx日志切割

名称

Nginx日志切割

说明

Nginx日志切割

实施目的

切割nginx日志,避免日志文件过大

问题影响

日志文件过大影响查看

实施步骤

新建日志切割脚本 如下:

#!/bin/bash

#设置日志文件存放目录

logspath="/usr/local/nginx/logs/"

#设置pid文件

pidpath="/usr/local/nginx/nginx.pid"

#重命名日志文件

mv ${logspath}access.log ${logspath}access$(date -d "yesterday" +"%Y%m%d").log

#向nginx主进程发信号重新打开日志

kill -USR1 `cat ${pidpath}`

配置定时任务每日凌晨执行脚本

回退方案

删除定时任务

确认方法

第二天查看日志目录,发现日志自动切割

实施风险

适用说明

2.10 限制访问IP

名称

限制访问IP

说明

限制访问IP,仅允许指定ip访问指定资源

实施目的

限制访问IP,仅允许指定ip访问指定资源

问题影响

服务器不安全性增加

实施步骤

编辑nging配置文件,在每个server模块中的location添加需求的限制,示例如下

deny 192.168.1.1;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2001:0db8::/32;

deny all;

执行nginx -s reload 动态更新配置文件

回退方案

恢复nginx配置文件

确认方法

使用限制的IP地址访问nginx 提示403

实施风险

适用说明

2.11 限制仅允许域名访问

名称

限制仅允许域名访问

说明

限制仅允许域名访问

实施目的

限制仅允许域名访问,跳过ip扫描

问题影响

ip扫描到网站后会针对性攻击

实施步骤

编辑nging配置文件,新建一个sever,示例如下

server {

listen 80 default;

server_name _;

return 403;

}

执行nginx -s reload 动态更新配置文件

(如果有其他端口,同样加入其他端口的server)

回退方案

恢复nginx配置文件

确认方法

使用IP地址访问nginx 提示403

实施风险

适用说明

2.12 错误页面重定向

名称

错误页面重定向

说明

错误页面重定向

实施目的

nginx默认错误页面包含服务器版本信息,使用自定义错误页面避免版本信息泄露

问题影响

避免通过错误页面获取服务器信息

实施步骤

新建错误页面,放到静态目录中,编辑Nignx配置文件,

在http模块中添加如下参数:

fastcgi_intercept_errors on;

errorpage 401 /401.html;

errorpage 402 /402.html;

errorpage 403 /403.html;

errorpage 404 /404.html;

errorpage 405 /405.html;

errorpage 500 /500.html

重启nginx服务

回退方案

恢复配置文件

确认方法

访问不存在的url重定向到我们配置的的错误页面

实施风险

适用说明

2.13 限制并发和速度

名称

限制并发和速度

说明

nginx客户端并发和速度

实施目的

限制用户连接数及速度来预防DOS攻击

问题影响

通过连接数来攻击nginx服务器

实施步骤

编辑Nignx配置文件,在Http模块中添加如下参数:

limit_zone one $binary_remote_addr 60m;

在server模块的location中,需要限制的location中添加如下参数:

limit_conn one 50; 

limit_rate 100k;

重启nginx服务

回退方案

恢复配置文件

确认方法

单个Ip建立尝试建立多个连接失败

实施风险

适用说明

2.14 nginx配置防盗链

名称

nginx配置防盗链

说明

nginx配置防盗链

实施目的

防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量

问题影响

资源被第三放流量消耗

实施步骤

编辑nginx配置文件,在server模块中添加如下实例:

server {

  listen 80;

server_name www.myine.com;

  root /usr/share/nginx/html;

location ~*.(gif|jpg|jpeg|png|bmp|swf)$ {

validreferers none blocked www.myine.com;

    if ($invalidreferer) {

      return 403;

}

    }

 }

validreferers: 指定资源访问是通过以下几种方式为合法,即白名单。

none:允许缺失的头部访问。

blocked:允许referer没有对应值的请求。

Server_names:若referer站点域名与servername中本机配的域名一样允许访问

回退方案

恢复配置文件

确认方法

新建个人页面,图片引用使用nginx中的图片,访问个人页面图片提示403

实施风险

适用说明

2.15 限制php执行权限

名称

限制php执行权限

说明

限制php执行权限

实施目的

限制php执行权限

问题影响

通过执行php脚本入侵服务器

实施步骤

编辑nignx配置文件,在需要限制的server模块中添加如下代码:

location ~ /(attachments|upload)/.*.(php|php5)?$ {

deny all;

}

以上的配置文件代码需要放到 location ~ .php{...}上面,相关目录需要写相对目录,重启nginx

回退方案

恢复配置文件

确认方法

nginx网站指定目录php文件不能执行、访问

实施风险

适用说明

2.16 nginx配置WAF模块

名称

nginx配置waf模块

说明

nginx配置waf模块

实施目的

nginx配置waf模块,提升服务器的安全性

问题影响

实施步骤

下载waf模块,wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip

配置waf相关Lua规则、目录、脚本等,

(nginx需要加载nginx_lua_module模块)

编辑nginx配置文件,在http模块中添加如下参数:

lua_package_path “/usr/local/nginx/conf/waf/?.lua”;

lua_shared_dict limit 10m;

init_by_lua_file /usr/local/nginx/conf/waf/init.lua;

access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

新建攻击日志目录

mkdir -p /data/logs/hack/

chown -R nobody:nobody /data/logs/hack/

chmod -R 755 /data/logs/hack/

重启Nignx服务

回退方案

删除配置文件的中的waf配置

确认方法

查看目录/data/logs/hack/ 中的日志

实施风险

适用说明

2.17 安装官方补丁更新

名称

安装官方补丁更新

说明

为nginx安装最新安全补丁

实施目的

防止攻击者利用nginx漏洞进行攻击

问题影响

系统安全性下降

实施步骤

查看当前nginx版本

nginx -v

官网下载最新的安全补丁

回退方案

确认方法

登陆用户查看nginx版本信息

实施风险

适用说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖专区...

口袋网咖是专门为游戏高玩打造的手机变电脑软件,虚拟电脑神器,体验各种电脑游戏,非常的方便,能让小伙伴尽情的体验手机电脑的感觉,很多小伙伴在使用过程中遇到了一些问题,快啦网为大家分享口袋网咖常见问题…

p

都不知道简历去投什么地方。游戏都卖不出去,又做不出口碑好的。这些人是心存侥幸还是心存坚持。 感觉自己搞不清楚就很难再出发。转载于:https://www.cnblogs.com/YOUEN/p/3364227.html

bbb u-boot 验证 emmc

目标: 参考"common/cmd_mmc.c"的查找emmc的代码,在mmc总线初始化函数后,遍历mmc总线,查找emmc并 打印emmc信息。 在"drivers/mmc/mmc.c"中的mmc_initialize函数的最后面添加我们的遍历函数 int mmc_initia…

统计个人已完成的工作量_团队工作量及团队价值贡献统计、核算、评审及提升的重要性...

在推行阿米巴经营模式时,需要进行企业内部产品及服务全价值分析,也就是企业内部团队产品及服务价值增值的全过程分析,团队价值增值是团队存在的目的和意义,对于团队经营来讲,团队工作量就团队的收入,团队价…

hyper服务器虚拟网卡和实际网卡,Hyper-V 3 虚拟网卡带宽应用限制

Windows Server 2012的Hyper-V 3中,打来了系列新功能,例如网卡流量限制功能。 基础架构注意的问题宿主服务器规划过程中,管理员主要考虑服务器基础架构中的CPU、内存、磁盘空间等必要因素,但是网络适配器(简称网卡)通常属于被忽略…

数据结构--------------静态表的希尔排序

#define LT(a,b) ((a)< (b))#define EQ(a,b) ((a)(b))#define LQ(a,b) ((a)<(b)) typedef struct ElemType{//表中元素结构 int key; char name[20];}ElemType; typedef struct SSTable{//静态表结构 ElemType *elem; int length;}SSTable; ElemType r[20];//全局变量,用…

智能集群理论优化控制_数学学科学术报告九:机器人集群的智能协同控制方法_中国计量大学...

数学学科学术报告九&#xff1a;机器人集群的智能协同控制方法_中国计量大学中国计量大学 免费考研网/2018-05-17报告题目&#xff1a;机器人集群的智能协同控制方法报告人&#xff1a;孙长银(东南大学 教授)报告时间&#xff1a;2018.04.09 15:30-16:30报告地点&#xff1a;格…

css复选框如何调大一些,创建CSS放大复选框

您可以随时使用复选框来勾选自己的复选框.这允许更多的跨浏览器兼容的解决方案.我做了一个快速演示here,显然你必须得到一个透明的.png的滴答,而不是我得到的.input[typecheckBox]:checked ~ div label{background: url(http://ramyasspace.files.wordpress.com/2011/06/tick.j…

outside of class is not definition

有一种可能的情况&#xff1a;You have semicolons (;) at the end of all your function definitions making the compiler think theyre declarations. 即在方法定义的后面都误添加上了";",导致编译器认为这仅仅是个声明。

Makefile中=、:=、+=、?=的区别

&#xff0c;就是基本的赋值 :&#xff0c;覆盖原来的值 &#xff0c;添加新值 ?&#xff0c;如果没有赋值则赋值转载于:https://www.cnblogs.com/wangluojisuan/p/3369072.html

用python画面积图_Python笔记:用matplotlib绘制面积图

用pyecharts绘制出来的面积图、圆环图太有个性了&#xff0c;未免感觉有点“高处不胜寒”。今晚虽然休息&#xff0c;但继用matplotlib绘制折线图之后&#xff0c;我又心血来潮地想用matplotlib来制作一点面积图&#xff0c;因为这在零售行业也是常用的可视化图形之一。具体如下…

状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中&#xff0c;必然有状态机的身影浮现。 比如说一个按键命令解析程序&#xff0c;就可以被看做状态机&#xff1a;本来…

css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...

纯CSS实现Tab切换标签效果代码本文实例讲述了纯CSS实现Tab切换标签效果代码。分享给大家供大家参考。具体如下&#xff1a;这是一款纯CSS实现的Tab简洁版&#xff0c;很不错的效果&#xff0c;希望大家喜欢。运行效果截图如下&#xff1a;在线演示地址如下&#xff1a;http://d…

IBM T410 打开AHCI模式

笔记本初始安装WINDOWS 7时&#xff0c;BIOS中SATA硬盘被设置为兼容模式&#xff0c;更高性能的ahci模式无法使用&#xff0c;表现为启动蓝屏。解决方法如下&#xff1a; 1&#xff09; 如果无法正常启动&#xff0c;先将BIOS中SATA硬盘改回为兼容模式启动windows 7。具体是在…

卷积核_漫画:卷积神经网络中的卷积核到底是什么?

卷积计算的直观体现如上所示&#xff0c;一张汽车图片经过了多次卷积操作&#xff0c;一开始卷积在提取低层次的特征(检测边缘)&#xff0c;然后逐渐提取高层次的特征(完整的物体)不同的卷积探测器我们可以看到同一张图片经过不同的卷积核&#xff0c;得到的结果是不一样的&…

bbb sdk6编译流程

1. 编译用于ftp启动的镜像 1) uboot make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- Oflash-restore am335x_evm_restore_flash_usbspl 生成的u-boot.img在flash-restore目录下&#xff0c;拷贝到ftp目录下&#xff0c;并改名为u-boot-restore.img 生成的u-boot-spl.bin…

UVa 297 - Quadtrees

题目&#xff1a;利用四叉树处理图片&#xff0c;给你两张黑白图片的四叉树&#xff0c;问两张图片叠加后黑色的面积。 分析&#xff1a;搜索、数据结构。把图片分成1024块1*1的小正方形&#xff0c;建立一位数组记录对应小正方形的颜色。 利用递归根据字符串&#xff0c;建立相…

如何打开win7禁用的无线网卡服务器,Windows7如何使用批处理开启/禁用无线网卡...

对于无线网卡&#xff0c;Win7笔记本用户应该都不会陌生&#xff0c;许多笔记本用户都是在自己的电脑上安装了无线网卡之后&#xff0c;使用无线网络进行联网的&#xff0c;不过对于一些有线用户来说&#xff0c;无线网卡就显得并不太重要了。因此&#xff0c;今天小编就教大家…

超声声场模拟_超声全聚焦(TFM)简介

应读者要求&#xff0c;小编将介绍一下全聚焦TFM的基础知识。如有讲解不对的&#xff0c;欢迎批评指正。全聚焦是超声检测里面的新事物。早在2005前&#xff0c; Caroline Holmes、Paul D. Wilcox等国外学者就开始研究了全聚焦成像&#xff0c;并通过实验得出了TFM相对于常规相…

bbb sd6 无e2 修改

1. u-boot修改 board/ti/am335x/board.c void s_init(void)和static int read_eeprom(void)这两个函数要从e2中读取数据&#xff0c;只需要把原版的bbb的e2中的数据读出来并添充到相应的数据结构里即可。 最终是要填充这个结构体 struct am335x_baseboard_id { unsigned int m…