connlimit模块允许你限制每个客户端ip的并发连接数,即每个ip同时连接到一个服务器个数。
connlimit模块主要可以限制内网用户的网络使用,对服务器而言则可以限制每个ip发起的连接数。
参数:
1 | --connlimit-above n 限制为多少个 |
例:
#允许每个客户机同时两个telnet连接
1 | iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT |
#只允许每组C类ip同时16个http连接
1 | iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT |
#只允许每个ip同时5个80端口转发,超过的丢弃:
1 | iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP |
#只允许每组C类ip同时10个80端口转发:
1 | iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP |
#为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃.
1 | iptables -A INPUT -s 192.186.1.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP |