防火墙实现七层过滤 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    系统环境:RHEL5 [ 2.6.18-8.el5xen ]

    软件环境:

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

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

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/netfilter-layer7-v2.20.tar.gz

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/l7-protocols-2008-10-04.tar.gz

    目标功能:

    为iptables增加layer7补丁,实现应用层过滤,

防火墙实现七层过滤

    实施操作:

    1、重新编译内核

    (1)为内核打layer7的补丁

    //解压内核补丁安装包和layer7协议安装包

    [root@server ~]# tar -jxvf linux-2.6.25.19.tar.gz2 -C /usr/src/

    [root@server ~]# tar -zxvf netfilter-layer7-v2.20.tar.gz -C /usr/src/

    [root@server ~]# cd /usr/src/linux-2.6.25.19/

    //为内核打上layer7补丁

    [root@server linux-2.6.25.19]# patch -p1 < /usr/src/netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch

    (2)编译配置新内核

    //生成内核的编译文件

    [root@server linux-2.6.25.19]# cp /boot/config-2.6.18-164.el5 .config

    [root@server linux-2.6.25.19]# make menuconfig

    HOSTCC  scripts/basic/fixdep    //使用旧内核配置

    /bin/sh: gcc: command not found

    //安装menuconfig所依赖的相关安装包

    [root@server linux-2.6.25.19]# yum install gcc

    [root@server linux-2.6.25.19]# yum install ncurses-devel

    安装完后再重新执行make menuconfig命令

    [root@server linux-2.6.25.19]# make menuconfig

    执行完make menuconfig命令后出现以下界面,如下图所示:

   

    //配置内核,具体如下操作:

    在“Networking ---> Networking Options ---> Network Packet filtering framework (Netfilter) ”处主要注意两个地方:

    1) ---> Core Netfilter Configuration

    将“Netfilter connection tracking suport (NEW)”选择编译为模块(M)(注:选择按空格键),需选取此项才能看到layer7支持的配置。

    将layer7、string、state、time、IPsec、iprange、connlimit……等编译成模块,根据需要看着办。

    2) ---> IP: Netfilter Configuration

    将“IPv4 connection tracking support (require for NAT)”编译成模块(M)。

    将“ Full NET”下的“MASQUERADE target support”和“REDIRECT target support”编译成模块(M)。

    编辑配置完后保存退出,然后编译、安装,

电脑资料

防火墙实现七层过滤》(https://www.unjs.com)。

    (3)编译及安装模块、新内核,然后冲重新引导新内核启动

    //编译及安装模块、新内核

    [root@server linux-2.6.25.19]# make && make modules_install && make install

    //编译安装成后后,重启选择使用新的内核(2.6.25.19)引导系统

    在重新启动时先按下任意键进入以下界面,如下图所示:

   

    然后选择上图所显示的内核(2.6.25.19)引导系统启动。

    2、重新编译iptables

    (1)卸载现有的iptables

    //把原来的iptables控制脚本文件复制一份

    [root@server ~]# cd /etc/init.d/

    [root@server init.d]# cp iptables iptables.bk

    //卸载现有的iptables

    [root@server ~]# yum remove iptables

    (2)为iptables打上layer7补丁

    //解压iptables源码安装包

    [root@server ~]# tar -jxvf iptables-1.4.2.tar.bz2 -C /usr/src/

    //为iptables打上layer7补丁

    [root@server ~]# cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/

    [root@server iptables-1.4.1.1-for-kernel-2.6.20forward]# cp libxt_layer7.c libxt_layer7.man /usr/src/iptables-1.4.2/extensions/

    (3)编译安装

    //切换到iptables解压目录下进行编译

    [root@server ~]# cd /usr/src/iptables-1.4.2/

    [root@server iptables-1.4.2]# ./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19

    //执行make和make  install

    [root@server iptables-1.4.2]# make && make install

    (4)安装l7-protocols模式包

    [root@server ~]# tar -zxvf l7-protocols-2008-10-04.tar.gz -C /etc

    [root@server ~]# mv /etc/l7-protocols-2008-10-04 /etc/l7-protocols

    3、iptables+layer7规则示例

    (1)layer7 match(基于l7协议的限制)

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto qq -j DROP    //过滤qq

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto msnmessenger -j DROP

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto msn-filetransfer -j DROP

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto xunlei -j DROP    //过滤迅雷

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto edonkey -j DROP

    [root@server ~]# iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

最新文章