分类: LINUX
2009-01-12 16:45:49
debian linux
注意:在安装前先确定系统的内核版本以及IPTABLES版本,我使用的系统信息如下:
内核 |
IPTABLES |
LINUX |
IPTABLES |
另外还有系统编译可能需要如下的安装包支持:
build-essential cpp debhelper dpkg-dev file g++ g++-4.1 gcc gettext gettext-base html2text intltool-debian libmagic1 libselinux1-dev libsepol1-dev libsp
#cd /usr/src
#wget
#wget
#wget
安装connlimit模块
#tar jxvf iptables-
#cd patch-o-matic-ng-20071128
#./runme --download
说明:运行过程中会提示你输入内核路径及IPTABLES源码包路径,键入下面路径
内核路径:/usr/src/linux-
IPTABLES路径:/usr/src/iptables-
注意默认路径为:
内核路径:/usr/src/linux
IPTABLES路径:/usr/src/iptables
编译内核:
#cd /usr/src/linux-
#make menuconfig
之后在出现的界面选择新内核模块connlimit位置如下:
Networking-à
Networking options à
[*] Network packet filtering (replaces ipchains) --->
IP: Netfilter Configuration --->
按M选中新增模块,之后按ESC保存退出
#make
#cp /usr/src/linux/net/ipv4/netfilter/ipt_connlimit.ko /lib/modules/
加载模块
#depmod –a
检查模块可用性
# modprobe ipt_connlimit
说明:如果不报错,就表示OK了
#iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT
用来限制单个IP访问80端口连接数只要超过20个就直接拦截
IPTABLES关于connlimit模块说明如下:
connlimit
Allows you to restrict the number of parallel TCP connections to a server per client IP address (or address block).
[!] --connlimit-above n
match if the number of existing tcp connections is (not) above n
--connlimit-mask bits
group hosts using mask
Examples:
# allow 2 telnet connections per client host
iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT
# you can also match the other way around:
iptables -A INPUT -p tcp --syn --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT
# limit the nr of parallel http requests to 16 per class C sized network (24 bit netmask)
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT