目录

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服务的安全配置相关推荐

  1. [乐意黎转载]Centos 7 nginx 服务安装及配置

    前言 nginx 跟 Apache 的作用差不多,都是提供 WEB 服务,但 nginx 相对于 Apache 来说,在性能上有更好的体现,而 Apache 有稳定性方面会比 nginx 好一些,所以 ...

  2. FastDFS+nginx服务搭建与配置

    FastDFS有很多个版本,如果安装的是5.05以下的版本则首先需要安装libevent以及libfastcommon,如果安装的是5.05以上的版本(包含5.05)则不需要安装libevent,仅需 ...

  3. Nginx服务优化——性能与安全

    1.隐藏Nginx的版本 一般来说,软件的漏洞都和版本有关的.为了减少被人针对某一版本的恶意***,我们可以把我们的Nginx版本隐藏起来,提高被***的门槛.在隐藏版本号之前,我们可以通过curl获 ...

  4. 编译Nginx服务部署静态网站

    Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,并在一个BSD-like协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在 ...

  5. nginx php返回500错误,解决Nginx服务返回500状态码问题

    文章目录 [隐藏] 发现问题 分析并解决问题 最近鼓捣博客服务器,不经意间误操作改了一些目录的用户组及权限,导致博客文件上传功能失败,周末检查了一天依然没有解决问题,在不经意间意识到了问题所在,其实有 ...

  6. 企业级Nginx服务基础到架构优化详解--25条

    1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx ...

  7. 三、nginx服务的nginx.conf的参数配置解析

    前一篇:二.nginx服务的nginx.conf配置参数解析 后一篇:四.nginx服务器的参数配置解析 目录 一.虚拟主机设定模块 1.upstream模块配置样式 1.1.默认配置 1.2.wei ...

  8. Nginx网站服务配置(Nginx服务基础,访问状态统计,访问控制,虚拟主机)

    编译安装Nginx服务 关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 安装依赖包 编译安装Nginx 创建运行用户.组 检查.启动.重载配.停止Nginx 增加Nginx系统服 ...

  9. 修改网站设置里的php版本号,Nginx服务优化(隐藏版本号、修改用户和组、设置链接超时)...

    Nginx服务优化可以从隐藏版本号.更改用户与组.配置网页缓存时间.日志切割.设置连接超时这几个方面进行优化.下面来详细的看看 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免泄露Ngi ...

最新文章

  1. pytorch下载时出现错误:EOFError: Compressed file ended before the end-of-stream marker was reached
  2. linux mysql 5.7.12_Centos 6.7 安装 mysql 5.7.12详细介绍
  3. poj 3258:River Hopscotch(二分)
  4. 自底向上的web数据操作指南
  5. 密码学信息理论基础2
  6. 第三十四天 how can I 坚持
  7. python集合以及编码初识
  8. python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...
  9. 正则的文字替换和字符串的替换哪个快_JavaScript正则表达式怎么用?
  10. Java并发编程之ReentrantLock重入锁
  11. MySQL基于mysqldump及lvmsnapshot备份恢复
  12. 大白话讲解word2vec到底在做些什么
  13. 用例驱动的需求过程实践
  14. 关于http-server的备选方案-- browser-sync
  15. vscode vue项目设置代理为locahost 始终无法连接本地项目
  16. 视频基本原理 -视频接口之 - MIPI接口(五)
  17. 三进制 四进制计算机原理,三进制计算机(中国三进制计算机)
  18. 采访:应用软件定制化有什么优点?
  19. PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》
  20. ODBC连接达梦数据库

热门文章

  1. 锻炼后应该做的4件事
  2. 网络公开课资源 ——关注CS/AI/Math
  3. Mahout分步式程序开发 基于物品的协同过滤ItemCF
  4. 使用 Linux 和 Hadoop 进行分布式计算
  5. 编程之美-快速寻找满足条件的两个数方法整理
  6. 2015年北京国电通面试题
  7. 寻找凸包 (Convex Hull)
  8. CTO下午茶: 没有安全,一切创新都是套路
  9. 解压缩文件命令linux
  10. SQL语句where,Group By,having order by 的详细使用方法