优化Nginx服务的安全配置
目录
1.屏蔽版本号信息
2. 限制并发量
3.拒绝非法的请求
4. 防止buffer溢出
1.屏蔽版本号信息
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … http{server_tokens off; #在http下面手动添加这么一行(屏蔽版本信息)… … } [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload[root@proxy ~]# curl -I http://192.168.4.5 #查看服务器响应的头部信息(加I只看头部信息)
2. 限制并发量
DDOS攻击者会发送大量的并发连接,占用服务器资源(包括连接数、带宽等),这样会导致正常用户处于等待或无法访问服务器的状态
Nginx提供了一个ngx_http_limit_req_module模块,可以有效降低DDOS攻击的风险,操作方法如下:(拒绝服务攻击)
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf … … http{ … … limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;#开启限制,谁访问就记住,每秒只能发一个请求)server { listen 80;server_name localhost;limit_req zone=one burst=5;} }[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload 客户端使用ab测试软件测试效果: [root@client ~]# ab -c 100 -n 100 http://192.168.4.5/
#limit_req_zone语法格式如下:
#limit_req_zone key zone=name:size rate=rate;
#上面案例中是将客户端IP信息存储名称为one的共享内存,内存空间为10M
#1M可以存储8千个IP信息,10M可以存储8万个主机连接的状态,容量可以根据需要任意调整
#每秒中仅接受1个请求,多余的放入漏斗
#漏斗超过5个则报错
3.拒绝非法的请求
网站使用的是HTTP协议,该协议中定义了很多方法,可以让用户连接服务器,获得需要的资源。但实际应用中一般仅需要get和post
具体HTTP请求方法的含义
未修改服务器配置前,客户端使用不同请求方法测试
root@client ~]# curl -i -X GET http://192.168.4.5 #正常 [root@client ~]# curl -i -X HEAD http://192.168.4.5 #正常
#curl命令选项说明:
#-I只显示头部
#-i选项:访问服务器页面时,显示HTTP的头部信息于下在内容
#-X选项:指定请求服务器的方法
通过如下设置可以让Nginx拒绝非法的请求方法
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf http{server {listen 80; #这里,!符号表示对正则取反,~符号是正则匹配符号 #如果用户使用非GET或POST方法访问网站,则retrun返回错误信息if ($request_method !~ ^(GET|POST)$ ) {return 444;} } } [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload 修改服务器配置后,客户端使用不同请求方法测试: [root@client ~]# curl -i -X GET http://192.168.4.5 #正常 [root@client ~]# curl -i -X HEAD http://192.168.4.5 #报错
4. 防止buffer溢出
当客户端连接服务器时,服务器会启用各种缓存,用来存放连接的状态信息。 如果攻击者发送大量的连接请求,而服务器不对缓存做限制的话,内存数据就有可能溢出(空间不足)
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf http{ client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k;… … } [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
优化Nginx服务的安全配置相关推荐
- [乐意黎转载]Centos 7 nginx 服务安装及配置
前言 nginx 跟 Apache 的作用差不多,都是提供 WEB 服务,但 nginx 相对于 Apache 来说,在性能上有更好的体现,而 Apache 有稳定性方面会比 nginx 好一些,所以 ...
- FastDFS+nginx服务搭建与配置
FastDFS有很多个版本,如果安装的是5.05以下的版本则首先需要安装libevent以及libfastcommon,如果安装的是5.05以上的版本(包含5.05)则不需要安装libevent,仅需 ...
- Nginx服务优化——性能与安全
1.隐藏Nginx的版本 一般来说,软件的漏洞都和版本有关的.为了减少被人针对某一版本的恶意***,我们可以把我们的Nginx版本隐藏起来,提高被***的门槛.在隐藏版本号之前,我们可以通过curl获 ...
- 编译Nginx服务部署静态网站
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,并在一个BSD-like协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在 ...
- nginx php返回500错误,解决Nginx服务返回500状态码问题
文章目录 [隐藏] 发现问题 分析并解决问题 最近鼓捣博客服务器,不经意间误操作改了一些目录的用户组及权限,导致博客文件上传功能失败,周末检查了一天依然没有解决问题,在不经意间意识到了问题所在,其实有 ...
- 企业级Nginx服务基础到架构优化详解--25条
1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx ...
- 三、nginx服务的nginx.conf的参数配置解析
前一篇:二.nginx服务的nginx.conf配置参数解析 后一篇:四.nginx服务器的参数配置解析 目录 一.虚拟主机设定模块 1.upstream模块配置样式 1.1.默认配置 1.2.wei ...
- Nginx网站服务配置(Nginx服务基础,访问状态统计,访问控制,虚拟主机)
编译安装Nginx服务 关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 安装依赖包 编译安装Nginx 创建运行用户.组 检查.启动.重载配.停止Nginx 增加Nginx系统服 ...
- 修改网站设置里的php版本号,Nginx服务优化(隐藏版本号、修改用户和组、设置链接超时)...
Nginx服务优化可以从隐藏版本号.更改用户与组.配置网页缓存时间.日志切割.设置连接超时这几个方面进行优化.下面来详细的看看 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免泄露Ngi ...
最新文章
- pytorch下载时出现错误:EOFError: Compressed file ended before the end-of-stream marker was reached
- linux mysql 5.7.12_Centos 6.7 安装 mysql 5.7.12详细介绍
- poj 3258:River Hopscotch(二分)
- 自底向上的web数据操作指南
- 密码学信息理论基础2
- 第三十四天 how can I 坚持
- python集合以及编码初识
- python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...
- 正则的文字替换和字符串的替换哪个快_JavaScript正则表达式怎么用?
- Java并发编程之ReentrantLock重入锁
- MySQL基于mysqldump及lvmsnapshot备份恢复
- 大白话讲解word2vec到底在做些什么
- 用例驱动的需求过程实践
- 关于http-server的备选方案-- browser-sync
- vscode vue项目设置代理为locahost 始终无法连接本地项目
- 视频基本原理 -视频接口之 - MIPI接口(五)
- 三进制 四进制计算机原理,三进制计算机(中国三进制计算机)
- 采访:应用软件定制化有什么优点?
- PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》
- ODBC连接达梦数据库