使用Iptables进行并发连接限制
创始人
2024-07-23 02:10:53
0

  用Iptables进行并发连接限制

  Iptables是一个内核状态的防火墙,也就是说它是Linux内核的一部分,所以它的功能异常强大,效率非常高。

  进入/usr/src/linux-2.6.18.8进行内核编译。

  1.   cd /usr/src/linux-2.6.18.8  
  2.  

  make mrproper #确保源代码目录下没有不正确的.o文件

  make menuconfig #内核配置,这步最重要,成不成在此一举呀。这是编译内核最麻烦的地方,不是特别熟悉的话最好先看看这些选项的意思,最好是把SELinux给关掉。如果是用vmware虚拟机的话,记住一定要选中SCSI里的LSI Logic和BusLogic相关的驱动。

  1.   make  
  2.  
  3.   make modules_install  
  4.  
  5.   depmod –a #生成模块依赖关系  
  6.  

  到这里我们就编译完成了新的内核,下面就是配置使用用新的内核启动。

  1.   cp /usr/src/linux-2.6.18.8/arch/i386/boot/bzImage /boot/ vmlinuz-2.6.18.8 #压缩的内核文件  
  2.  
  3.   cp /usr/src/linux-2.6.18.8/System.map /boot/System.map-2.6.18.8  
  4.  
  5.   cd /boot  
  6.  

  mkinitrd initrd-2.6.18.8.img #把一些系统启动时需要的模块打包

  添加新的启动项,用新的内核启动系统,这里可以参照原有的启动配置项进行设置,示例:

  用vi /etc/grub.conf打开文件,加入如下内容:

  1.   title Linux-2.6.18.8  
  2.  
  3.   root (hd0,0)  
  4.  
  5.   kernel /vmlinuz-2.6.18.8 ro root=LABEL=/ enforcing=0 
  6.  
  7.   initrd /initrd-2.6.18.8.img  
  8.  

  重新启动计算机,在启动菜单选择我们使用刚才新添加的启动项,启动新的内核。

  相对于2.4的内核来说我感觉2.6的内核编译起来更容易些,一般不会出现什么太大的问题,编译完成后能够正常的启动。

  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内核,这对后面升级操作系统后使用这个功能可能更方便一点。

  软件下载后,可以通过SSH文件传输客户端把它们上传到Linux的/usr/src目录下,然后进行解压,命令如下:

  1.   tax –jxvf linux-2.6.18.8.tar.bz2  
  2.  
  3.   tar –jxvf iptables-1.3.7.tar.bz2  
  4.  
  5.   tar –jxvf patch-o-matic-ng-20070414.tar.bz2  
  6.  

  进入patch-o-matic-ng,为内核打补丁:

  1.   cd /usr/src/patch-o-matic-ng-  
  2.  
  3.   ./runme --download  
  4.  
  5.   KERNEL_DIR=/usr/src/linux-2.6.18.8 IPTABLES_DIR=/usr/src/iptables-1.3.7 ./runme connlimit  
  6.  

      重新进入Linux后我们就可以编译安装Iptables了。

  1.   cd /usr/src/iptables-1.3.7  
  2.  
  3.   export KERNEL_DIR=/usr/src/linux-2.6.18.8  
  4.  
  5.   export IPTABLES_DIR=/usr/src/iptables-1.3.7  
  6.  
  7.   make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install  
  8.  

  现在就可以进行设置试一下了,输入以下命令:

  1.   iptables –A INPUT –p tcp –dport 22 –m connlimit –connlimit-above 2 –j REJECT  
  2.  

  这条命令是允许每个IP最多有2个连接到本机的22端口。

  好了,赶快用SSH试一下吧,看看超过两个连接还能不能连接上。

  另外,网上有人提供了RHEL4.4的connlimit RPM包,直接安装上就可以使用,不过这些包都基于特定内核的,所以下载的时候一定要先用:uname –r看一下自己的内核版本,下载适合自己内核版本的RPM包。

【编辑推荐】

Iptables的基本语法规则

iptables的编译

iptables在Red Hat上的安装

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...