如何在CentOS 5.1上设置Linux第7层包分类器

如何在CentOS 5.1上设置Linux第7层包分类器 本教程将引导您完成设置Linux 7层数据包分类器 上...

如何在CentOS 5.1上设置Linux第7层数据包分类器

介绍

本教程将引导您在CentOS 5.1上设置一个Linux第7层数据包分类器,这可以轻松适应任何其他Linux发行版。

L7过滤器是用于基于应用层数据中的模式识别数据包的Linux Netfilter的分类器。 这样可以正确分类P2P流量。
它可以分类使用不可预测端口的Kazaa,HTTP,Jabber,Citrix,Bittorrent,FTP,Gnucleus,eDonkey2000等数据包,以及在非标准端口上运行的标准协议。 它补充了与IP地址,端口号等匹配的现有分类器。 http://l7-filter.sourceforge.net/

1)下载所需的软件包

1.1)下载L7-filter内核

wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7-v2.19.tar.gz

1.2)下载L7过滤器用户空间

wget http://downloads.sourceforge.net/l7-filter/l7-filter-userspace-0.7.tar.gz

1.3)下载L7过滤器协议定义

wget http://downloads.sourceforge.net/l7-filter/l7-protocols-2008-04-23.tar.gz

重要提示:始终从http://sourceforge.net/project/showfiles.php?group_id=80085下载最新版本的L7过滤器

1.4)下载Linux Iptables 1.4.0

wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.0.tar.bz2

1.5)下载Linux内核2.6.26

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2

2)安装L7过滤器

打开一个终端,做

tar -xvf linux-2.6.26.tar.bz2

tar -xvf netfilter-layer7-v2.19.tar.gz

2.1)将补丁应用于Linux内核源码

cd linux-2.6.26
patch -p1 < ../netfilter-layer7-v2.19/kernel-2.6.25-layer7-2.19.patch

2.2)应用补丁和安装iptables 1.4.0

tar -xvf iptables-1.4.0.tar.bz2
cd iptables-1.4.0
patch -p1 < ../netfilter-layer7-v2.19/iptables-1.4-for-kernel-2.6.20forward-layer7-2.19.patch
chmod +x extensions/.layer7-test
make KERNEL_DIR=~/linux-2.6.26
make install KERNEL_DIR=~/linux-2.6.26

3)安装协议定义

tar -xvf l7-protocols-2008-04-23.tar.gz
cd l7-protocols-2008-04-23
mkdir /etc/l7-protocols
cp protocols/* /etc/l7-protocols

4)编译安装新的linux内核

cd linux-2.6.26
make menuconfig
make all
make modules_install
make install

重要提示: - 您必须启用以下选项(对于Linux 2.6.26,这些选项是正确的,但是它们往往会发生很大变化,因此如果您有不同的内核版本,则可能需要进行狩猎):

*“网络包过滤框架(Netfilter)”(Networking?Networking选项)
*“Netfilter连接跟踪支持”(...?网络包过滤框架(Netfilter)?Core Netfilter配置)
*“连接跟踪流量记帐”(在同一屏幕上)
*最后,“第7层匹配支持”
*可选,但强烈推荐:许多其他Netfilter选项,特别是“FTP支持”和其他匹配。 如果您不知道自己在做什么,请继续执行所有操作。

5)检查GRUB设置

vim /etc/grub.conf

它必须如下所示:

default=0
timeout=3
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.26)
        root (hd0,0)
        kernel /vmlinuz-2.6.26 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.26.img
title CentOS (2.6.18-53.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-53.el5.img

6)最后

我们完成了,重新启动系统并享受。

restart

7)测试l7过滤器

iptables -m layer7 --help

玩的开心!