文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>在redhat as4上给iptables打connlimit补丁

在redhat as4上给iptables打connlimit补丁

时间:2006-09-02  来源:liusong

在redhat as4上给iptables打connlimit补丁
  在使用iptables做网关上网的过程中,尽管使用tc对每个ip做流量限制,但在实际应用中,往往发现流量虽然被控制,但使用p2p软件下载的客户端往往建立了很多的tcp连接,导致网关负载太重,上网速度很慢,最近看到iptables有connlimit补丁,可以限制用户的tcp连接数,于是尝试给iptables打补丁,具体步骤如下:
   先在http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/处下载patch-o- matic-ng补丁,注意最新并且含有connlimit的补丁包好像是patch-o-matic-ng-20060725.tar.bz2,之后的补丁包中都没有connlimit补丁;然后下载iptables源代码
http://ftp.netfilter.org/pub/iptables/snapshot/iptables-1.3.5-20060823.tar.bz2, 最后下载kernel源代码ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,注意最新的源代码linux- 2.6.17.tar.bz2在打完补丁后使用connlimit模块时会报一个奇怪的错误“connlimit match: invalid size 0!=16 iptables: Invalid argument”,而且在编译内核模块时有一些警告"signed//unsigned comparision warnings",我不知道是什么原因,只好换一个低版本内核linux-2.6.15.tar.bz2。由于redhatas4的内核默认没有 connlimit模块,所以要编译内核,在网上好像有不编译内核给iptables添加模块的办法,但我没成功,只好老老实实编译内核。
    #cp patch-o-matic-ng-20060725.tar.bz2 iptables-1.3.5-20060823.tar.bz2 linux-2.6.15.tar.bz2 /usr/src/
    #bunzip2 -d *.bz2
    #tar xvf *.tar
    #ln -s iptables-1.3.5-20060823 iptables
    #ln -s linux-2.6.15 linux
    #cd /usr/src/linux
    #make mrproper
    #make clean
    #cd /usr/src/patch-o-matic-ng-20060725
    #./runme connlimit
     直接打补丁会报错,需要修改/usr/src/patch-o-matic-ng- 20060725/patchlets/connlimit/linux-2.6.11/net/ipv4/netfilter/Makefile.ladd
文件,将
obj-$(CONFIG_IP_NF_MATCH_STATE) += ipt_state.o
改为
obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o
    #./runme connlimit
    #cd /usr/src/linux
    #make menuconfig
    注意:内核参数一定要将Networking-->Networking options --->Network packet filtering(replaces ipchains)--->IP: Netfilter Configuration --->Connections/IP limit match support 选为模块或编译进内核;如果你找不到这一项,那么刚才打补丁没有成功;如果你对多如牛毛的内核选项很烦,你可以用make oldconfig,
    #make bzImage
    #make modules
    #make modules_install
    #make install
    编译完成后,可以开始编译iptables
    #cd /usr/src/iptables
    #make KERNEL_DIR=/usr/src/linux
    #make install KERNEL_DIR=/usr/src/linux
    #make install-devel
重启后,试一试命令
iptables -m connlimit -help
iptables -I INPUT -p tcp -m connlimit --connlimit-above 4 -j REJECT
iptables -L
如成功则补丁打成功了.


排行榜 更多 +
机械火车修理

机械火车修理

休闲益智 下载
坚持到顶

坚持到顶

休闲益智 下载
掷球冠军

掷球冠军

休闲益智 下载