[原创]iptables扩展功能的增加

范堡 发布于 2009/05/05 15:35
阅读 403
收藏 0

收藏!数据建模最全知识体系解读!>>>

iptables有许多很有实际用途的功能是未被现在的内核支持的,其中我最感兴趣的就是iplimit,可以用来限定同一IP(或同一段IP)同时连接服务器(或某端口)的数目。

经过许多天的试验,终于搞定。

服务器环境:redhat7.2

1.  从www.redhat.com下载并安装最新的内核源码

kenrel-source-2.4.20-13.7-i386.rpm。
   rpm -Uvh kenrel-source-2.4.20-13.7-i386.rpm

2.  进入/usr/include目录,执行以下操作:
   mv asm asm_old
    mv linux linux_old
    mv scsi scsi_old
    ln -s /usr/src/linux-2.4/include/asm ./asm
    ln -s /usr/src/linux-2.4/include/linux ./linux
    ln -s /usr/src/linux-2.4/include/scsi ./scsi

3.  从www.netfilter.org下载patch-o-matic-20030107.tar.tar并解压到

/usr/local/patch-o-matic-20030107,执行以下操作:
   export KERNEL_DIR="/usr/src/linux-2.4"
    ./runme extra
    按提示只需要安装自己想要的那些扩展功能补丁,我就只选择了iplimit。

4.  返回/usr/src/linux-2.4,执行make mrproper,然后用make menuconfig设置内核选项,依次进入"Networking options"->;"IP: Netfilter Configuration",选择您刚才加入的扩展功能,在这里我只要把iplimit选定成M模式就可以了。然后:
   make dep
    make bzImage
    make install
    make modules
    make modules_install
    最后再用新内核重启系统。
5.  到www.netfilter.org下载最新的iptables源代码包,解压到

/usr/local/iptables-1.2.8,执行以下操作:
   make KERNLE_DIR="/usr/src/linux-2.4"
    make install KERNLE_DIR="/usr/src/linux-2.4"
    make install-devel

    安装完成,现在您可以输入命令检查一下你要的功能是否已经可以使用了:
   iptables -A INPUT -p tcp --dport 22 --syn -m iplimit --iplimit-above 3 -j REJECT
    这样,从同一个IP到服务器的SSH的连接就只不能超过3个了。 这个功能如果应用在网站上限制某些人下载网站内容是很有帮助的,比apache加载连接数限制模块的方法有效得多。   

(注意:我在安装时是先下载的相应内核的rpm安装之后再进行源码包安装的,因为在安装新内核的过程中可能需要其它的支持包需要安装,利用rpm的依赖性检查将这些软件显示出来并安装,可能会减少直接用源码编译安装遇到的问题,纯属个人意见。)



加载中
返回顶部
顶部