Iptables+layer7的实现

简介:

 Iptables+layer7的实现

    1.内核  +7层补丁

    2.iptables +l7补丁  

       

 IPTABLES 7层过滤

 软件环境:

     http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.19.tar.bz2  (内核源代码,已不是最新了)

    http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2  (iptables源代码)

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/netfilter-layer7-v2.20.tar.gz (L7补丁)

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/l7-protocols-2008-10-04.tar.gz (7层协议)

 

主要目标:

iptables增加layer7补丁,实现应用层过滤功能,以便能够实现过滤即时通信和下载

软件的流量,及一些流氓软件的流量过滤。

但是我的内核版本是2.6.18-164.el5不支持L7过滤功能,为此我们需要升级一下我的内核版本

1、重新编译内核 将kernel+layer7补丁合并

Linux内核 在/boot/vmlinuz-2.6.18-164.el5

内核模块  在/lib/modules/2.6.18-164.el5/kernel/

tar -jxvf linux-2.6.25.19.tar.bz2 -C /usr/src/        --将我上传上去的linux内核源码解压缩

tar -zxvf netfilter-layer7-v2.20.tar.gz  -C /usr/src/  --解压缩L7补丁

cd /usr/src/linux-2.6.25.19/

patch -p1 < /usr/src/netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch --打上L7的补丁

2、配置新内核

cp /boot/config-2.6.18-8.el5 .config   --沿用旧的内核配置

 make menuconfig    --打开配置菜单
 //配置内核时依次选择如下,在“Networking ---> Networking Options ---> Network Packet filtering framework (Netfilter) ”处主修改如下两个地方:

    1) 在Core Netfilter Configuration ---->

        将“Netfilter connection tracking suport (NEW)”选择编译为模块(M)(按下空格键),需选取此项才能在下面看到layer7支持的配置。

        layer7stringstatetimeIPseciprangeconnlimit……等编译成模块M一般这些都满足需要了

    2) IP: Netfilter Configuration ---->

        将“IPv4 connection tracking support (require for NAT)”编译成模块M

        将“Full NAT”下的“MASQUERADE target support”和“REDIRECT target support”编译成模块。

   3)退出,保存

3、编译及安装模块、新内核

make && make modules_install && make install

        编译安装成后后,重启选择使用新的内核(2.6.25.19)引导系统(这一步需要一定的时间哦)也可以修改一下/etc/grub.conf这也文件让系统开机自动用新的内核引导如下:

重启之后再看一下内核版本

4、重新编译iptables

① 卸载老的iptables iptables v1.3.5,先保存一下老的控制脚本)

cp /etc/init.d/iptables /etc/init.d/iptables.bak

rpm -e iptables --nodeps 

② 合并iptableslayer7补丁

tar -jxvf iptables-1.4.2.tar.bz2 -C /usr/src/

cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/

cp  libxt_layer7.c libxt_layer7.man  /usr/src/iptables-1.4.2/extensions/

5、编译安装

cd /usr/src/iptables-1.4.2/

./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19

make && make install

cp /etc/init.d/iptables.bak /etc/init.d/iptables  --还原脚本,这样就可以用以下命令了

service iptables  {start|stop|restart|condrestart|status|panic|save} 

6、安装l7-protocols

tar -zxvf l7-protocols-2009-05-10.tar.gz -C /etc

mv /etc/l7-protocols-2009-05-10/ /etc/l7-protocols

到这里iptables已经支持layer7了可以对应用层进行控制了!!!!!!!!!!!。


本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1097176

相关文章
|
Web App开发 Go iOS开发