前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 安全性能配置 & DDOS 防范

Nginx 安全性能配置 & DDOS 防范

作者头像
iMike
发布2019-08-02 15:34:29
1.4K0
发布2019-08-02 15:34:29
举报
文章被收录于专栏:运维之美运维之美

最近看了一些 Nginx 的配置的文章主要和性能有关,包括一些安全上的配置,并不对所有设备适用,总结下来觉得有用的可以自取,另外是加深自己对服务器的理解。其中有一些有关 DDOS 的配置。内容参考了两篇文章和自己的一些安全理解。文章地址如下:

  • Tuning NGINX for Performance
  • Mitigating DDoS Attacks with NGINX and NGINX Plus

Nginx 配置优化

基本配置路径一般在 /etc/nginx/nginx.conf ,如果站点配置文件不是 nginx.conf,而是独立的站点配置文件,那就到相应的站点去修改配置。

  • worker_processes auto 该选项控制 Nginx 运行时候的工作进程个数,默认值为 1。调节为 auto
  • worker_connections 表示工作进程能处理的最大连接数。默认为 512,可调节为更高,我自己设置为 1000。主要看服务器的硬件配置及流量特性。
  • keepalive_requests 表示客户端单个连接上最多能发送多少个请求,默认值是 100。可以设置成更高的值,试情况而定。
  • keepalive_timeout 指定每个连接最多保持多长的打开状态,为了防止 DDOS 攻击,可以改为 60 或者更小。视情况而定。
  • server_tokens 该选项可以隐藏 Nginx 的版本号,关闭他可以防止攻击者嗅探到 Nginx 版本从而做相关渗透。
  • worker_rlimit_nofile 进程最大打开文件数 可以配置为一个较高的数字。避免出现『too many open files』
  • proxy_hide_header X-Powered-By; 该指令可以隐藏一些 header 的信息。通常 x-powered-by 会泄露网站相关信息我们需要将其隐藏。

host header attack 攻击修复

在server模块中添加:

代码语言:javascript
复制

Nginx DDOS 防御配置优化

现在的 DDOS 基于应用层的比较多,比如 CC 攻击。通常有如下特点:

  • 攻击的 IP 或 IP 段相对固定,每个IP都有远大于真实用户的连接数和请求数。
  • 因为攻击是由木马发出且目的是使服务器超负荷,请求的频率会远远超过正常人的请求。
  • User-Agent 通常是一个非标准的值
  • Referer 有时是一个容易联想到攻击的值

根据以上的相关特征可以做以下配置来抵抗 DDOS 攻击

  • 限制请求速度
代码语言:javascript
复制
limit_req_zone $binary_remote_addr zone=one:10m rate=2/s;
  • 限制连接数量
代码语言:javascript
复制
limit_conn_zone $binary_remote_addr zone=addr:10m;
  • 关闭慢连接

在 server 中添加

代码语言:javascript
复制
server {
client_body_timeout 5s;
client_header_timeout 5s;
}
代码语言:javascript
复制
  • 设置IP黑/白名单
  • 使用缓存进行流量削峰
  • 屏蔽特定请求

  1. 针对特定 URL 的请求
  2. 针对不是常见的 User-Agent 的请求
  3. 针对 Referer 头中包含可以联想到攻击的值的请求
  4. 针对其他请求头中包含可以联想到攻击的值的请求

比如,如果你判定攻击是针对一个特定的 URL:/foo.php,攻击请求的 User-Agent 中包含 foo 或 bar 我们就可以屏蔽到这个页面的请求:

代码语言:javascript
复制
location /foo.php {
deny all;
}

location /{
if ($http_user_agent ~* foo|bar) {
return 403;
}
}
代码语言:javascript
复制

总结

Nginx 和 Nginx Plus 可以作为抵御 DDOS 攻击的一个有力手段,而且 Nginx Plus 中提供了一些附加的特性来更好的抵御 DDOS 攻击并且当攻击发生时及时的识别到。

来源:Brick713的小黑屋 原文:http://t.cn/AiNKwR3F 题图:来自谷歌图片搜索 版权:本文版权归原作者所有 投稿:欢迎投稿,投稿邮箱: editor@hi-linux.com

推荐阅读

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇妙的Linux世界 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nginx 配置优化
  • Nginx DDOS 防御配置优化
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档