connlimit 扩展模块,限制每个客户端P地址到服务器的并行连接数。
DDOS攻击脚本程序,模拟大量的并发数连接
示例使用脚本模拟DDOS攻击,然后检查网站是否异常,如果异常,则使用jptables限制并发连接数。

可以看到有很多的状态为RECV状态,还没有被ACK掉,进入了半连接池队列。
[root@Route ~]# yum install httpd -y
[root@Route -]# echo "hello"> /var/www/html/test.htm]
[root@Route ~]# echo "index-oldxu">/var/www/html/index.html [root@Route ~]# systemctl start httpd
# 通过netstat会发现大量的ESTABLISHED状态,从而造成正常用户请求异常;开启并发限制,然后测试
[root@Route -]# iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 2 -j DROP
如果请求的是目标的80端口,那么去调用connlimit模块,当超过2个连接并发数的时候那么就拒绝掉。(限制同一个IP的并发连接数)
之前也学习过Nginx的限制,只不过它的限制是应用层面的限制,它还要将所有的请求经过网络层送到应用层做限制,而现在这个直接在内核层面做限制。