一、简介
iptables layer7的功能可以实现对应用层软件的过滤,例如:限制qq、迅雷等软件,这样对一些公司和学校非常有用。下面介绍具体的实现过程。
二、总体步骤概括
(1)给内核打补丁,并重新编译内核。
(2)给iptables源码打补丁,并重新编译iptables
(3)安装l7proto
三、给内核打补丁并重新编译内核
(1)下载软件包:linux-2.6.28.10.tar.gz,netfilter-layer7-v2.22.tar.gz.
(2)给内核打补丁。执行以下命令。
点击(此处)折叠或打开
#tar zxvf linux-2.6.28.10.tar.gz -C /usr/src (一定要解压到/usr/src中)
#tar zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src(同上)
#cd /usr/src #ln -s linux-2.6.28.10 linux
#cd /usr/src/linux/
#patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.2.22.pach
#cp /boot/config-2.6.18-164.el5 /usr/src/linux/.config
#make menuconfig
(4)开始编译内核
点击(此处)折叠或打开
#make
#make modules_isntall
#make install
编译安装完内核之,就可以从前系统,进入刚编译好的系统,对iptables打补丁。
四、给iptables打补丁,并重新编译iptables
(1)
点击(此处)折叠或打开
#cp /etc/init.d/iptables /tmp/
#cp /etc/sysconfig/iptables-config /tmp
(2)
点击(此处)折叠或打开
#rpm -e iptables-ipv6 iptables ipstate --nodeps (此命令卸载原有的iptables) 先下载iptables-1.4.6.tar.bz2,然后将其解压到/usr/src目录中
#tar jxvf iptables-1.4.6.tar.bz2 -C /usr/src
#cd /usr/src/iptables-1.4.6
#cp /usr/src/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/ libxt_layer7.* ./extensions/
# ./configure --prefix=/usr --with-ksource=/usr/src/linux
或者 ./confgure --prefix=/ --with-ksource=/usr/src/linux (这样下面就不用重新编辑 /etc/init.d/iptables)
# make
# make install
安装完成后启动iptables:
点击(此处)折叠或打开
#mv /tmp/iptables-conifg /etc/sysconfig/
#mv /tmp/iptables /etc/rc.d/init.d/
#vim /etc/rc.d/init.d/iptables (在末行模式下输入:%s@/sbin/$IPTABLES@/usr/sbin/$IPTABLES@g)
#service iptables start
五、安装 l7-protocls
点击(此处)折叠或打开
# tar zxvf l7-protocols-2009-05-28.tar.gz
# cd l7-protocols-2009-05-28
# make install
六、指定限制QQ规则
点击(此处)折叠或打开
# iptables [specify table & chain] -m layer7 --l7proto [protocol name] -j [action] (基本规则)
# iptables -A FORWARD -m layer7 --l7proto qq -j DROP