• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Iptables之七层过滤模块(六)

安全管理 彭东稳 9年前 (2015-12-01) 29831次浏览 已收录 0个评论

Layer7模块介绍

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

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

7层过滤首先需要内核支持,但是遗憾的是Centos内核中并没有layer7的模块。在Layer7官方测试中,内核版本2.6.28都是经过官方测试可用的(Centos5系列使用的是2.6.28)。在Centos6中使用的内核是2.6.32版本的,接下来我们使用Centos6去测试Layer7这个模块。具体对模块的测试可以去这个网址可以查看http://l7-filter.sourceforge.net/kernelcompat

PS:安装前可以查看一下/boot目录和grup.conf文件状态,然后比较跟安装后有什么变化。

Centos6.4实现Iptables七层过滤

一、下载需要的软件包(要注意版本)

二、内核打Netfilter补丁

三、内核配置安装

1)取消模块签名认证

选择[*]  Enable loadable module support —> 取消[ ] Module signature verification (EXPERIMENTAL)
选择-*- Cryptographic API  —> 取消[ ] In-kernel signature checker (EXPERIMENTAL)

2)查看IPV4(IPV6)要支持以下功能

-*- Networking support  —>   Networking options  —>  [*] Network packet filtering framework (Netfilter)  —>  IP: Netfilter Configuration  —>  <M> IPv4 connection tracking support (required for NAT)
<M>   Full NAT
<M>     MASQUERADE target support
<M>     NETMAP target support
<M>     REDIRECT target support
-*- Networking support  —>   Networking options  —>  [*] Network packet filtering framework (Netfilter)  —>  IPv6: Netfilter Configuration

3)开启layer7模块

-*- Networking support  —>   Networking options  —>  [*] Network packet filtering framework (Netfilter)  —>  Core Netfilter Configuration
<M>  Netfilter connection tracking support
<  >  “layer7” match support
<M>  “string” match support
<M>  “time”  match support
<M>  “iprange”  match support
<M>  “connlimit”  match support
<M>  “state”  match support
<M>  “conntrack”  connection  match support
<M>  “mac”  address  match support
<M>  “multiport” Multiple port match support

4)给内核起一个命令便于识别

General setup  —>  (-2.6.28.ywnds) Local version – append to kernel release

Iptables之七层过滤模块(六)

四、内核开始编译安装

五、卸载原有Iptables

六、重启系统

Iptables之七层过滤模块(六)

PS:重启系统默认就会应用新的内核,主要是因为内核安装完之后,就会在/boot目录和grup.conf文件中添加相应的设置,如下:

Iptables之七层过滤模块(六)

Iptables之七层过滤模块(六)

七、安装新Iptables

八、安装协议特征包l7-protocol-2009

九、验证七层过滤QQ

1.开启iptables路由转发功能.

2.设置SNAT(固定公网IP).

3.不允许转发QQ协议.

4.控制QQ可以使用的时间.


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (2)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!