L7-filter userspace在CentOS 5.5上的安装与配置

L7-filter (Application Layer Packet Classifier for Linux), 是Linux上的一个数据包分类器,作为iptables的扩展它加强iptables在分析封包的能力,iptables在处理封包时不是简单的基于如网络应用port号,而是用正则表达式匹配Layer7应用协议(HTTP、FTP)的传输数据,这样更能准确的分析数据包。它能使 Linux的 iptables 支持 Layer 7 (OSI应用层) 过滤功能, 限制封杀 P2P、即时通讯(MSN、QQ、AIM)软件。

那么今天就给大家讲讲如何在CentOS5.5下安装和配置L7-filter:

1.所需软件(这里给出的顺序就是你要安装的先后顺序)

libnfnetlink-0.0.41.tar.bz2

libnetfilter_queue-0.0.17.tar.bz

libnetfilter_conntrack-0.0.99.tar.bz

l7-filter-userspace-0.11.tar.gz

l7-protocols-2009-05-28.tar.gz

2.安装过程

   按照上边说的顺序安装就好了,没啥难的,需要注意的是,安装完第一个后,安装第二个就出现了如下错误:

   checking for LIBNFNETLINK... configure: error: Cannot find libnfnetlink >= 0.0.41

   说句真的,为了这个错误,我也找了好久,虽然也知道哪里错了,可就是不知道咋改,功夫不负有心人。看到这样一段话:

   The error is from pkg-config, so the important bit is that pkg-config can find the relevant .pc file.  Have a look at the pkg-config man page;
you may need to set PKG_CONFIG_PATH and possibly others depending how things are installed.

   都这样说了,还说啥呢,给出修正方法,在终端输入:

   PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
   export PKG_CONFIG_PATH

   接下来?接下来屏幕一整狂闪,success,这就是结果。窃喜吧!

3.配置使用

  在/etc/l7-protocols/protocols/中列出了所有支持的协议。

  创建/etc/l7-filter.conf文件在其中添加自己需要监视的协议,例如
  ftp 5
  http 6
  qq 68

  运行l7-filter -f /etc/l7-filter.conf,每行前面是协议名称,对应于/etc/l7-protocols/protocols下面的协议名称,这就是要告诉你,如第一行你要拦截迅雷,则必须在/etc/l7-protocols/protocols下有一个xunlei.pat文件,里边是用正则表达式写的规则。当然啦, 你想用它来定义自己的,就要对正则表达式有比较清楚的认识和了解了,然后写出自己的XXX.pat规则文件了。

4.启动l7-filter

  在终端下输入l7-filter -f /etc/l7-filter.conf,然后在iptables中添加规则,如下所示(这是我的环境,不一定对你的哈):

  iptables -A INPUT -j NFQUEUE --queue-num 0  

其实,经过上面的安装配置,你会发现没啥难的,关键在于你要把规则给弄好,这才是王道啊.

相关推荐