【中间件安全】Nginx 安全加固规范
1. 适用情况
适用于使用Nginx进行部署的Web网站。
2. 技能要求
熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固。
3. 前置条件
1、 根据站点开放端口,进程ID,确认站点采用Nginx进行部署;
2、 找到Nginx安装目录,针对具体站点对配置文件进行修改;
3、 在执行过程中若有任何疑问或建议,应及时反馈。
4. 详细操作
4.1 日志配置
1、备份nginx.conf 配置文件。
修改配置,按如下设置日志记录文件、记录内容、记录格式,添加标签为main的log_format格式
(http标签内,在所有的server标签内可以调用):
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
2、在server标签内,定义日志路径
access_log logs/host.access.log main
3、保存,然后后重启nginx服务。
4.2 禁止目录浏览
备份nginx.conf配置文件。
编辑配置文件,HTTP模块添加如下一行内容:
autoindex off;
保存,然后后重启nginx服务。
4.3 限制目录执行权限
备份nginx.conf配置文件。
编辑配置文件,在server标签内添加如下内容:
#示例:去掉单个目录的PHP执行权限
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
} #示例:去掉多个目录的PHP执行权限
location ~
/(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
保存,然后后重启nginx服务。
需要注意两点:
1、以上的配置文件代码需要放到 location ~ .php{...}上面,如果放到下面是无效的;
2、attachments需要写相对路径,不能写绝对路径。
4.4 错误页面重定向
备份nginx.conf配置文件。
修改配置,在http{}段加入如下内容
http {
...
fastcgi_intercept_errors on;
error_page /.html;
error_page /.html;
error_page /.html;
error_page /.html;
error_page /.html;
error_page /.html;
...
}
修改内容:
ErrorDocument /custom400.html
ErrorDocument /custom401.html
ErrorDocument /custom403.html
ErrorDocument /custom404.html
ErrorDocument /custom405.html
ErrorDocument /custom500.html
其中401.html、.html、.html、.html、.html、.html 为要指定的错误提示页面。
保存,重启 nginx 服务生效
4.5 最佳经验实践
4.5.1 隐藏版本信息
备份nginx.conf配置文件。
编辑配置文件,添加http模块中如下一行内容:
server_tokens off;
保存,然后后重启nginx服务。
4.5.2 限制HTTP请求方法
备份nginx.conf配置文件。
编辑配置文件,添加如下内容:
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return ;
}
保存,然后后重启nginx服务。
备注:只允许常用的GET和POST方法,顶多再加一个HEAD方法
4.5.3 限制IP访问
备份nginx.conf配置文件。
编辑配置文件,在server标签内添加如下内容:
location / {
deny 192.168.1.1; #拒绝IP
allow 192.168.1.0/; #允许IP
allow 10.1.1.0/; #允许IP
deny all; #拒绝其他所有IP
}
保存,然后后重启nginx服务。
4.5.4 限制并发和速度
备份nginx.conf配置文件。
编辑配置文件,在server标签内添加如下内容:
limit_zone one $binary_remote_addr 10m;
server
{
listen ;
server_name down.test.com;
index index.html index.htm index.php;
root /usr/local/www;
#Zone limit;
location / {
limit_conn one ;
limit_rate 20k;
}
………
}
保存,然后后重启nginx服务。
4.5.5 控制超时时间
备份nginx.conf配置文件。
编辑配置文件,具体设置如下:
client_body_timeout ; #设置客户端请求主体读取超时时间
client_header_timeout ; #设置客户端请求头读取超时时间
keepalive_timeout ; #第一个参数指定客户端连接保持活动的超时时间,第二个参数是可选的,它指定了消息头保持活动的有效时间
send_timeout10; #指定响应客户端的超时时间
保存,然后后重启nginx服务。
4.6 风险操作项
4.6.1 Nginx降权
备份nginx.conf配置文件。
编辑配置文件,添加如下一行内容:
user nobody;
保存,然后后重启nginx服务。
4.6.2 防盗链
备份nginx.conf配置文件。
编辑配置文件,在server标签内添加如下内容:
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {
valid_referers none blocked server_names *.nsfocus.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ [img]http://www.XXX.com/images/default/logo.gif[/img];
# return ;
}
}
保存,然后后重启nginx服务。
4.6.3 补丁更新
1、软件信息
查看软件版本 nginx -v
测试配置文件 nginx –t
2、补丁安装
手动安装补丁或安装最新版本软件
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【中间件安全】Nginx 安全加固规范的更多相关文章
- 下一代的中间件必须是支持docker规范的
下一代的中间件必须是支持docker规范的,这是中间件技术走向标准规范化的必经之路. 什么是 Docker? 答案是:Docker 是下一代的云计算模式.Docker 是下一代云计算的主流趋势. Do ...
- web中间件之nginx
web中间件之nginx https://www.jianshu.com/p/d8bd75c0fb1b 对nginx正向代理和反向代理理解特别好的一篇文章. 一.nginx nginx缺点,负载均 ...
- Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 漏洞说明 // 基于Nginx的https网站被扫描出SSL/TLS协议信息泄露漏洞(CVE-2016-2183),该漏 ...
- 【中间件安全】Jboss安全加固规范
1. 适用情况 适用于使用Jboss进行部署的Web网站. 适用版本:5.x版本的Jboss服务器 2. 技能要求 熟悉Jboss安装配置,能够Jboss进行部署,并能针对站点使用Jboss进行安全加 ...
- 【中间件安全】WebSphere安全加固规范
1. 适用情况 适用于使用WebSphere进行部署的Web网站. 2. 技能要求 熟悉WebSphere安装部署,熟悉WebSphere常见漏洞利用方式,并能针对站点使用WebSphere进行安全加 ...
- 【中间件安全】IIS6安全加固规范
1. 适用情况 适用于使用IIS6进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
- 【中间件安全】Weblogic 安全加固规范
1. 适用情况 适用于使用Weblogic进行部署的Web网站. 2. 技能要求 熟悉Weblogic安装部署,熟悉Weblogic常见漏洞利用方式,并能针对站点使用Weblogic进行安全加固. 3 ...
- 【中间件安全】Tomcat 安全加固规范
1. 适用情况 适用于使用Tomcat进行部署的Web网站. 2. 技能要求 熟悉Tomcat配置操作,能够利用Tomcat进行建站,并能针对站点使用Tomcat进行安全加固. 3. 前置条件 1.根 ...
- 【中间件安全】IIS7.0 安全加固规范
1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
随机推荐
- Knockout.Js官网学习(Mapping高级用法二)
使用ignore忽略不需要map的属性 如果在map的时候,你想忽略一些属性,你可以使用ignore累声明需要忽略的属性名称集合: " }; var mapping = { 'ignore' ...
- 奇怪吸引子---NewtonLeipnik
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- MySQL架构与业务总结图
MySQL架构与业务总结图如下:
- angularjs图片上传和预览 - ng-file-upload
ng-file-upload ajax上传文件 官方demo地址 安装 bower install ng-file-upload-shim --save(for non html5 suppport) ...
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误[转]
来源:Linux社区 作者:astrotycoon 一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序 ...
- Monodraw for Mac(基于 ASCII 码设计编辑工具)破解版安装
1.软件简介 Monodrawp 是 macOS 系统上一款专为 Mac 设计的强大的 ASCII 码设计编辑器,纯文本历经几十年而不衰.Monodraw for mac 可以创建基于文本的艺术 ...
- 深入浅出理解c++虚函数
深入浅出理解c++虚函数 记得几个月前看过C++虚函数的问题,当时其实就看懂了,最近笔试中遇到了虚函数竟然不太确定,所以还是理解的不深刻,所以想通过这篇文章来巩固下. 装逼一刻: 最近,本人思想发 ...
- GCD 之线程死锁
GCD 确实好用 ,很强大,相比NSOpretion 无法提供 取消任务的功能. 如此强大的工具用不好可能会出现线程死锁. 如下代码: - (void)viewDidLoad { [super vie ...
- react-无状态组件
import React, { Component } from "react"; //import PostItem from "./PostItem"; / ...
- 初识HTTPS
初识HTTPS HTTPS也被叫做“基于TLS的HTTP,基于SSL的HTTP,HTTP安全“,它是一个在Internet上广泛使用的计算机网络安全通信协议. 即HTTPS是HTTP的安全版本,在了解 ...