如何在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
玩的开心!