cc攻击可以消耗服务器性能,服务器简易防CC攻击设置
本人服务器前段时间受到了DDos和CC攻击,DDoS流量型攻击只能靠带宽来扛住,但CC攻击可以从服务器和应用层面防御和减轻影响。本文介绍受到攻击后,本人在服务器上采取的简易防CC攻击设置。
Nginx防CC设置
不同于DDoS靠流量蛮力攻击,CC攻击模拟正常用户与服务器交互。CC攻击一般需找到网站/应用的薄弱处,然后通过大量连接/请求消耗服务器资源,让CPU、带宽能资源占用飙升。
并发请求和请求速率
防护CC攻击的主要手段是限制并发请求数量和请求速率。并发请求数量指的是单ip可以与服务器建立多少个连接,请求速率指的是单位时间内的请求数。两者有共同部分但意义不同,例如建立十个连接每个连接请求一次,也可以建立一个连接请求十次。前者是并发连接多,后者是请求速率高。
Nginx既支持并发请求的限制,也支持按限制请求速率。防御CC攻击主要是限制速率,理论上速率限制得好就够了。实践中建议两者结合,既防止太多连接消耗服务器资源,也防止请求速率过快。
Nginx防CC设置步骤
Nginx 防CC详细设置步骤如下:
1. 编辑Nginx配置文件,例如 /etc/nginx/nginx.conf , 在
limit_conn_zone $binary_remote_addr zone=limit_conn:10m;
limit_req_zone $binary_remote_addr zone=limit_req:10m rate=10r/s;
上述配置分配了 limit_conn 和 limit_req 两个10M大小的内存块(1M内存可记录16000个会话),并设置每秒最大请求速率是10次。
2, 打开网站配置文件,例如 /etc/nginx/conf.d/tlanyan.conf,在 server 或者 location 段中开启限制:
server {
limit_conn limit_conn 5; # 并发连接数不超过5
limit_req zone=limit_req burst=10 nodelay;
# 其他设置
http中设置每秒允许10个请求,即100毫秒一个,如果突然来10个连接,后面9个直接返回503错误,这是我们不愿意看到的。limit_req中的 burst 参数用来处理突发请求,此时10个请求都会被接受以应对突发流量。如果再来10个,那就超出了允许的突发限制,Nginx直接返回503错误。
nodelay 表示在允许突发请求的情况下,直接处理所有请求,而不是每100毫秒处理一个。
实践中请根据具体情况设置并发连接数和请求速率。数值过大会影响防御效果,太小则会影响正常用户使用。此外,建议总是启用 burst 和 nodelay 以应对突发流量。
3. 保存配置文件,nginx -t 检查有无语法错误,然后 systemctl reload nginx 重新加载配置。
其他事项
1. 可以将某些ip放入白名单,避免受到速率限制。操作是在 http 段新增开启变量:
geo $whitelist {
default 1;
10.0.0.17 0; # 按照这个格式添加白名单ip
}
map $whitelist $limit {
0 "";
1 $binary_remote_addr;
}
# limit_conn_zone 和 limit_req_zone更改为:
limit_conn_zone $limit zone=limit_conn:10m;
limit_req_zone $limit zone=limit_req:10 rate=10r/s;
#其他配置无需改变
2. limit_conn 和 limit_req 指令可以放置在 http、server、location 中使用,分别表示对所有站点、特点站点、特定url使用限制;
3. 可以同时使用多个 limit_conn 和 limit_req 应付复杂场景。WordPress 的搜索页面最消耗服务器资源,因此可以单独限制,例如每秒最多一次请求;
4. 超过允许速率后,服务器直接返回503错误,
firewalld/iptables防CC设置
Nginx可以限制并发请求数量,防火墙(iptables / firewalld)也可以做到,并且性能更好。
防火墙限制主要是两方面:
1. 将某个ip拉黑:
#iptables
iptables -I INPUt -p tcp -s 黑名单ip -j DROP
# firewalld
firewall-cmd --add-rich-rule="rule family='ipv4' source address='黑名单ip' reject"
2. 限制ip的并发连接:
# iptables
iptables -I INPUt -p tcp --dport 443 -m connlimit --connlimit-above 5 -j DROP
# firewalld
firewall-cmd --add-rich-rule 'rule port port=443 protocol=tcp accept limit value="5/s"'
修改Nginx可打开的最大文件数
默认Nginx最大可打开1024个文件/连接,在大流量时明显不够,因此需要加大。
操作方法如下:
1. 编辑 /etc/systemd/system/multi-user.target.wants/nginx.service,添加文件数限制:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
# 增加这一行
LimitNOFILE=65535
#其他不用变
2. 重启Nginx:systemctl daemon-reload; systemctl restart nginx;
3. 查看Nginx打开文件限制是否已经生效:ps aux | grep nginx 找到 nginx 的进程号,然后 cat /proc/进程号/limits,输出如下:
总结
经过上述设置,配置好参数后,小型的CC攻击能防住或者减轻影响。大量ip/大流量的攻击没办法,只能通过WAF/大带宽做清洗处理。
cc攻击可以消耗服务器性能,服务器简易防CC攻击设置相关推荐
- 负载均衡服务器性能,服务器负载均衡:确保应用服务的高性能与高可用
随着互联网的快速发展和业务量的不断提升,基于网络的数据访问流量迅速增长,特别数据中心.大型企业及门户网站,日益丰富的内容和信息输出大大加速了服务器的资源消耗.加上大部分网站都需要提供24小时不间断服务 ...
- amd服务器和intel服务器性能,服务器CPU内存性能哪家强?AMD or Intel?
原标题:服务器CPU内存性能哪家强?AMD or Intel? 基准配置和方法 MCT的一位导师在EPYC 7601.Skylake, 和Cascade Lake machines上进行了一项测试. ...
- BIOS调整服务器性能模式,如何修改BIOS的设置,让显卡发挥最佳性能?
bois版本的不同其选项也有所差异! 常见的AGP如下:AGP Mode(AGP模式) AGP模式决定了AGP的频率,其值为66MHz的倍数,1×最慢,8×最快.目前能够真正支持AGP 8×的显卡只有 ...
- 传奇登录器修改服务器列表,传奇登录器TCP服务器远程列表「防劫持」设置教程...
[Server] 70=★本地测试登陆器[WWW.DIYGM.COM]★|-----------------------------|威威本地登录器测试[WWW.DIYGM.COM]|192.168. ...
- 20210813 数据摆渡、DNS、分布式、分布式数据库、防ddos攻击、链路负载均衡
数据摆渡 数据摆渡是什么?摆渡的意思是,在没有道路的时候,坐船度过这片水域到达对岸. 数据摆渡顾名思义,是指在没有物理连接的情况下,数据通过隔离部件从源端到达目的端. 再通俗一点,就是通过具有存储介质 ...
- 脚本启动显示查询频繁被服务器防御_又被CC攻击弄得心有余悸?莫怕!这里教你如何防御...
转自CSDN,博主:一只IT小小鸟. CC攻击原理 HTTP Flood 俗称CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,前身名为Fatboy攻击,也是一种常 ...
- GB/T28181协议视频平台EasyGBS视频快照优化,减少服务器性能消耗
GB/T28181协议EasyGBS国标视频平台的视频快照功能,可以直观地展示前端接入设备的视频直播状态,便于用户快速和清晰地预览实时视频监控画面. 此前我们的EasyGBS平台快照,是后端利用ffm ...
- 服务器存在缓慢的HTTP拒绝服务攻击
目录 1️⃣漏洞验证 2️⃣漏洞利用 3️⃣漏洞由来 4️⃣攻击原理 5️⃣慢速攻击分类 6️⃣解决办法 WebSphere Weblogic Nginx Apache IHS服务器 F5负载均衡 I ...
- ab,qps,服务器性能压力
ab,qps,服务器性能压力 作者及来源: 陳聽溪 - 博客园 收藏到→_→: 摘要: ab,qps,服务器性能压力 http://www.makaidong.com/%E5%8D%9A%E5% ...
最新文章
- Numpy 中的 arange 函数
- PyTorch学习笔记——pytorch图像处理(transforms)
- 从无主之地看FPS+ARPG游戏的发展方向
- java栈的内存_JVM的栈内存
- 骁龙710、675、660、636之间性能差距有多大?
- Java Swing中键盘事件的处理
- jpsnamenode和不显示_hadoop启动后jps查不到namenode的解决办法
- 电脑测试软件_科普丨电脑小白必看的显卡测试小技巧
- 8-4 如何使用线程本地数据
- c语言计算圆周率随机数法,C语言求圆周率的简单实现方法
- java 最大素数,JAVA计算指定上限的最大素数
- iOS Facebook pop动画进阶
- 不让玩游戏的小娃娃随机考试系统
- Ai-WB2系列的eclipes搭建环境教程
- uniapp(H5) + signalr 制作的简单的卡牌游戏
- 安装Windows11体验WSA,安装常用Android应用测试
- docker之daemon.json文件
- CheckBox设置不可点击
- Linux系统 运行小花仙游戏(针对2021年Flash停止维护的情况)
- HDU3698-Let the light guide us (线段树优化的dp)
热门文章
- 不要来日本IT业混饭
- Swift3检测设备是否为iPad Portrait模式
- 深度学习中 Internal Covariate Shift 问题以及 Batch Normalization 的作用
- Mac Docker Desktop 搭建 Kubernetes 环境
- 【nextcloud】群晖 Web Station 搭建的 Nextcloud 出现文件锁(文件无法删除或修改)问题的解决
- 电子商务平台技术选型和架构设计
- 太小看了XXXX和XXXX
- 接口测试神器Apifox究竟有多香?
- 「原理篇」你真的了解 React18 的并发吗?
- 国内最强 Chrome 商店镜像, 你想要得插件都有