iptables实现7层过滤

简介:

简介:在Linux的防火墙体系Netfilter下有一个独立的模块L7 filter 。从字面上看Netfilter是对网络数据的过滤,L7 filter是基于数据流应用层内容的过滤。不过实际上 L7 filter的本职工作不是对数据流进行过滤而是对数据流进行分类。它使用模式匹配算法把进入设备的数据包应用层内容与事先定义好的协议规则进行比对,如果匹配成功就说明这个数据包属于某种协议。 

L7 filter是基于数据流工作的,建立在Netfilter connstrack功能之上。因为一个数据流或者说一个连接的所有数据都是属于同一个应用的,所以L7 filter没有必要对所有的数据包进行模式匹配,而只匹配一个流的前面几个数据包 (比如10个数据包)。当一个流的前面几个数据包包含了某种应用层协议的特征码时 (比如QQ,MSN,迅雷等),则这个数据流被L7 filter识别;当前面几个数据包的内容没有包含某种应用层协议的特征码时,则L7 filter放弃继续做模式匹配,这个数据流也就没有办法被识别。

总体步骤:
1、7层过滤首先需要内核支持,因此重新编译内核,给新内核加入Layer 7补丁;
2、卸载系统自带的iptables,先保存旧的的配置信息,新的可以引用;
3、安装Layer 7;
4、安装Layer 7协议;


所需要的源码包和补丁包:
linux-2.6.28.10.tar.gz    

下载地址:  http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.10.tar.gz
netfilter-layer7-v2.22.tar.gz
iptables-1.4.6.tar.bz2
l7-protocols-2009-05-28.tar.gz

以上的三个软件包,下载地址:

http://down.51cto.com/data/362187

步骤如下:

 
 
  1. 为内核打上l7filter的补丁: 
  2. #tar zxvf  linux-2.6.28.10.tar.gz  -C  /usr/src            
  3. 解压内核到/usr/src 
  4.  
  5. #tar zxvf  netfilter-layer7-v2.22.tar.gz  -C  /usr/src 
  6. 解压l7filter到/usr/srcc 
  7.  
  8. #cd /usr/src 
  9. #ln -sv  linux-2.6.28.10  linux 
  10. #cd /usr/src/linux/ 
  11. #patch -p1  <  ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch 
  12. 为内核打上l7filter的补丁 
  13.  
  14. #cp /boot/config-2.6.18-164.el5  /usr/src/linux/.config 
  15. 为编译内核提供一个config模版 
  16.  
  17. #make  menuconfig 


进入图形化界面,配置内核参数,根据自身的需要进行适当的增删
但要让内核支持l7filter则以下选项必须选上:

 
 
  1. Networking support → Networking Options →Network packet filtering framework →Core Netfilter Configuration 
  2. <M>  Netfilter connection tracking support 
  3. <M>  “layer7” match support 
  4. <M>  “string” match support 
  5. <M>  “time”  match support 
  6. <M>  “iprange”  match support 
  7. <M>  “connlimit”  match support 
  8. <M>  “state”  match support 
  9. <M>  “conntrack”  connection  match support 
  10. <M>  “mac”  address  match support 
  11. <M>   "multiport" Multiple port match support 
  12.  
  13.  
  14. Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configuration 
  15. <M> IPv4 connection tracking support (required for NAT) 
  16. <M>   Full NAT 
  17.     <M>     MASQUERADE target support 
  18.     <M>     NETMAP target support 
  19.     <M>     REDIRECT target support  


#make
#make modules_install
#make install



内核编译完成后,重新启动操作系统,使用新的内核启动。
华丽的分割线

---------------------------------------------------------------------------------------------

使用新内核启动系统后:
到此,内核对l7filter的支持已经具备,接下来只需要重新编译安装iptbales,由于编译安装iptables后,并不会提供SysV风格的启动脚本,因此我们在卸载之前安装的那个iptables时,对其进行一下备份,将其保存在家目录中:
#cp /etc/init.d/iptables ~/iptables
#cp /etc/sysconfig/iptables-config ~/

#rpm -e iptables-ipv6  iptables  iptstate  --nodeps
卸载之前安装的iptables,因为其具有依赖性,所以这里使用"--nodeps"
#tar jxvf iptables-1.4.6.tar.bz2 –C  /usr/src
#cd /usr/src/iptables-1.4.6
#cp ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*   ./extensions/
#./configure  --prefix=/usr  --with-ksource=/usr/src/linux
#make
#make install


安装l7filter协议
#tar zxvf l7-protocols-2009-05-28.tar.gz
#cd l7-protocols-2009-05-28
#make install
#mv ~/iptables  /etc/rc.d/init.d/

启动支持l7filter的iptables
#service iptables start








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/826283,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
存储 运维 负载均衡
解析iptables原里及设置规则
【4月更文挑战第21天】本文就是针对对iptables了解不多,需要知道其基本原理,数据包处理流向及常用的配置设置等进行总结叙述,以达到在最短的时间内找到所需求的知识,进行常规配置操作。
64 4
解析iptables原里及设置规则
|
网络协议 网络安全 开发工具
|
安全 网络安全 网络虚拟化
防火墙应用层过滤 (二)
⭐本文介绍⭐ 面对各种🐓行为,华为欸防火墙提供了强大的防护能力、VPN功能及应用层的探测识别技术。而应用层过滤技术则可以更有针对性地加固企业地安全建设。所谓的应用层过滤,就是针对OSI的七层报头做检查,其工作效率虽然比传统的包过滤防火墙低,但是其对安全性的提升确是普通防火墙所不具备的。加之随着计算机的发展,今天的硬件处理速度已经不再成为网络瓶颈,所以一款防火墙是否具备应用层探测,能够探测多少应用已经成为衡量防火墙好坏的主要标准。本文重点介绍华为的应用层技过滤技术和实验配置。
防火墙应用层过滤 (二)
|
域名解析 缓存 安全
防火墙应用层过滤 (一)
⭐本文介绍⭐ 面对各种🐓行为,华为欸防火墙提供了强大的防护能力、VPN功能及应用层的探测识别技术。而应用层过滤技术则可以更有针对性地加固企业地安全建设。所谓的应用层过滤,就是针对OSI的七层报头做检查,其工作效率虽然比传统的包过滤防火墙低,但是其对安全性的提升确是普通防火墙所不具备的。加之随着计算机的发展,今天的硬件处理速度已经不再成为网络瓶颈,所以一款防火墙是否具备应用层探测,能够探测多少应用已经成为衡量防火墙好坏的主要标准。本文重点介绍华为的应用层技过滤技术和实验配置。
防火墙应用层过滤 (一)
|
消息中间件 网络协议 Linux
|
网络协议
IPTables六—— IPTable规则优化IPSet
六、IPSet iptables在进行包过滤的时候,对每个数据包都过滤一遍iptables中的规则。假设我们有如下三条规则: -s 1.1.1.1 -p tcp accpet -s 2.2.2.2 -p tcp accpet -s 3.3.3.3 -p tcp accpet 那么当一个数据包源地址是3.3.3.3的时候,它首先去匹配第一条规则,不匹配再匹配第二条,最后在第三条匹配中了。
1286 0