2、修改内核配置,在Network Options->Netfilter Configuration的列表中选择支持Connections/IP limit match support,可以编译为模块也可以编译到内核中,无所谓了。
3、重新编译核心并重启,并核实你的iptables工具是否支持iplimit:
#iptables -m iplimit
如果看到
iptables v1.2.8: You must specify `--iplimit-above'
Try `iptables -h' or 'iptables --help' for more information.
就是已经支持了,相反如果看到:
iptables v1.2.8: Couldn't load match `iplimit1':/usr/local/lib/iptables/libipt_iplimit.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
就是还不支持,可以去下载新版的iptables或是源码包。
4、上面的都是废话,到这里配置才开始:
#iptabels -t mangle -I PREROUTING -p tcp -m iplimit --iplimit-above 100 --iplimit-mask 255.255.255.255 -j MARK --set-mark 0x0123
//在mangle表的PREROUTING链中,把每一个IP地址超出100个联接统计数的报文都打上0x0123这个标记
#iptables -N BLOCKLIMIT
//在filer表中,新建一个BLOCKLIMIT链,将用它来处理超限报文
#iptables -A BLOCKLIMIT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A BLOCKLIMIT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A BLOCKLIMIT -p tcp -j DROP