我的小破站被强了??
前言
好家伙, 前两天登陆后台准备写点什么的时候, 发现访问了突然暴涨, 吓得我一激灵. 还以为什么情况, 结果一看, 风水轮流转, DDoS攻击轮到我了
正文
问题
ps:DDoS攻击是指分布式拒绝服务攻击,攻击者通过利用多个计算机发起大规模的请求来超负荷地向目标服务器发送流量
遇到这种情况, 我马上就去看了下服务器(2核2G)自带的监控, 查下最近的资源消耗情况. 果然, 7月9号, 从四点半到五点半, 一直在搞, 我都替这个小破站感到可怜了.
期间cpu基本是爆了的, 宽带也差不多在4-5Mbps(兆比特每秒)之间, 顶峰了,我买的也就4M的, 至于为什么内存没变化, 看看ai的回答:
1. 在DDoS(分布式拒绝服务)攻击中,CPU利用率飙升而内存使用率相对较低的情况可能是由于攻击方式的不同引起的, DDoS攻击是通过向目标系统发送大量请求,使其超负荷运行,无法正常处理合法用户的请求。攻击者往往利用大量感染的僵尸计算机或者利用分布式网络发起攻击,以使攻击的流量集中在目标系统上
- CPU爆满是因为目标系统需要处理大量的请求,例如检查请求的合法性、进行身份验证、分析数据等复杂的处理操作,这些操作需要大量的计算资源,从而导致CPU负载过高。
2. 而内存使用率相对较低可能是因为DDoS攻击往往采用一些数据包洪水攻击(如UDP洪水、ICMP洪水)来消耗带宽和网络资源,这些攻击主要针对网络层或传输层,对应用程序的内存消耗相对较少。因此,虽然攻击可能会导致网络资源的瓶颈,但不一定会对目标系统的内存资源产生大量影响
- 值得注意的是,DDoS攻击的形式多种多样,不同类型的攻击可能对CPU和内存资源的消耗程度有所不同。因此,在实际情况中,可能会出现CPU和内存资源同时被消耗的情况,或者两者之一受到更重的影响
不过竟然没给小破站给搞宕机, 我觉得还挺6. 我还发现原来在买服务器的时候, 就会自动赠送免费的防DDoS 服务
不过也太瞧得起我的这个配置了吧, 要达到 2Gbps (千兆比特每秒) 才会过滤掉. 其实刚开始我是没什么概念的, 于是打算自己试一下压测
最开始我就先用一万的量试一下,但是没啥反应, 服务器能抗住, 主要还是程序不行, 异常达到96%, 全都是超时
于是我就测了个十秒内一万并发循环十次, 也就是十万的请求量, 程序肯定都是异常了的, 服务器的消耗如下, cpu也才用了快40的样子, 那想一下那一小时的请求量, 可能99% 不是它的典范, 只是服务器的极限罢了
解决方案
那竟然知道了这类的问题,那想想该如何防范呢?
1.nginx黑名单
这个方法其实不是很靠谱, 因为ip这东西, 对攻击者来说就不可能有真的. 但也是一种方法, 具体操作
1. 在nginx.conf 中找到http {}部分, 加上以下配置, 然后重启配置( systemctl restart nginx)即可, 现在,Nginx会将所有访问记录记录在/access.log文件中
access_log /var/log/nginx/access.log;
//自定义路径
2. 知道了谁在恶意访问, 那就把它拉进小黑屋把. 还是在http {}部分,在其中添加以下代码来设置黑名单. 如果要设置多个, 就可以配置代码块, 单独指定包含黑名单的文件
http {
...
deny 1.2.3.4; //
...
}
2.开启访问限制
额, 其实还是在nginx上操作,配置keepalive_timeout 和 keepalive_requests ,当一个用户在连接状态中的请求次数超过了这个配置值,将会关闭该连接,防止长时间持续的连接,以避免资源浪费和可能的安全问题。同时,它也可以用来限制来自单个客户端的请求次数,以保护服务器免受过多负载或恶意攻击
3.服务监控(arthas)
直接上图, 出自阿里巴巴之手, 我也还没细看, 但最近很多, 不失为一个利器
4.服务器自带的DDoS防护
可以设置阈值, 但没试过
5.花钱
有钱能使鬼推磨, 花钱能解决99%的问题