DDoS 简介
DDoS 的前身是 DoS(Denail of Service),即拒绝服务攻击,指利用大量的合理请求,来占用过多的目标资源,从而使目标服务无法响应正常请求。
DDoS(Distributed Denial of Service) 则是在 DoS 的基础上,采用了分布式架构,利用多台主机同时攻击目标主机。这样,即使目标服务部署了网络防御设备,面对大量网络请求时,还是无力应对。
DDos攻击以及缓解方法
常见的有半连接攻击,攻击者发送大量的SYNC包给服务器,大量的链接处于SYN_REV状态,很快链接表被占满,比如用这个命令
1 | -S 发sync包 |
现象:端口响应变慢,甚至中断所有操作都慢。
排查思路:
用sar -n DEV 1看到如下结果,rxpack很大,但是rxkB很小,是典型的小包问题。
1 | 07:11:19 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s |
如何排查,我们可以用netstat看统计有多少SYN_RECV的链接发现大量的SYN_RECV,大概有190+,因为默认的链接表只有256个,所以我们的正常请求会变慢。
1 | netstat -np|grep SYN_RECV|wc -l |
解决思路
优化系统参数
1 | $ cat /etc/sysctl.conf |
优化系统:通过XDP、DKDP来缓解
借用外部工具:通过WAF、CDN等来缓解
彻底解决:通过专业的流量清洗工具