用Iptables进行并发连接限制
Iptables是一个内核状态的防火墙,也就是说它是Linux内核的一部分,所以它的功能异常强大,效率非常高。
Iptables是一个内核状态的防火墙,也就是说它是Linux内核的一部分,所以它的功能异常强大,效率非常高。Iptables有许多模块,一些不成熟的模块是以patch-o-matic的形式存在的,个人理解就是内核补丁。等这些模块代码成熟后就后直接加入内核。这里我们介绍一个限制每个IP并发连接的模块,就connlimit,这个模块还是以patch-o-matic的形式存在的,所以如果我们想要使用这个模块需要以内核补丁的形式加入到内核源码中,然后再通过编译内核,把它们编译成内核模块的形式使用。
下面我们以linux-2.6.18-8+Iptables-1.3.7为主来说说编译内核使用connlimit。为什么要用linux-2.6.18-8内核呢?因为目前最流行的RedHat最新企业版本也就是5.0版本使用的就是2.6.18-8内核,这对后面升级操作系统后使用这个功能可能更方便一点。以下是这些软件的下载地址:
Linux-2.6.18-8:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.8.tar.bz2
iptables-1.3.7:ftp://ftp.netfilter.org/pub/iptables/iptables-1.3.7.tar.bz2
patch-o-matic-ng:ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20070414.tar.bz2
软件下载完成后,可以通过SSH文件传输客户端把它们上传到Linux的/usr/src目录下,然后进行解压,命令如下:
tax –jxvf linux-2.6.18.8.tar.bz2
tar –jxvf iptables-1.3.7.tar.bz2
tar –jxvf patch-o-matic-ng-20070414.tar.bz2
进入patch-o-matic-ng,为内核打补丁:
cd /usr/src/patch-o-matic-ng-
./runme --download
KERNEL_DIR=/usr/src/linux-2.6.18.8 IPTABLES_DIR=/usr/src/iptables-1.3.7 ./runme connlimit

