linux之防火墙篇三layer7应用层过滤

一、准备工作  


   1、iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙。以基于网络层的数据包过滤机制为主,同时提供少量的传输层、数据链路层的过滤功能。难以判断数据包对应于何种应用程序(如:QQ、迅雷等)。

  安装netfilter-layer7补丁包的作用是为Linux内核、iptables添加相应的补丁文件,重新编译安装后提供基于应用层(第7层)的扩展功能。通过独立的l7-protocols协议包提供对各种应用层协议的特征识别与定义,便于更新。


   2、整体实现过程

   1、添加内核补丁,重新编译内核,重启系统并以新内核引导系统

   2、给下载的iptables打补丁,并重新制作成rpm包安装

   3、安装i7-protocols协议包

   4、使用iptables命令设置应用层过滤规则


  3、 需求描述

   

   1、重新编译Linux内核,添加l7-filter应用层过滤补丁

   2、重新编译iptables,添加l7-filter应用层过滤补丁

   3、设置过滤规则,禁止使用QQ、MSN等聊天工具

   4、设置过滤规则,禁止使用迅雷、电驴等下载工具


4、下载所需要的包:

Linux内核源码包:kernel-2.6.32-431.5.1.el6.src.rpm

lftp 172.16.0.1:/pub/Sources/sources/kernel


iptables源码包:iptables-1.4.20.tar.bz2

lftp 172.16.0.1:/pub/Sources/sources/iptables


layer7补丁包源码包:netfilter-layer7-v2.23.tar.bz2

lftp 172.16.0.1:/pub/Sources/sources/iptables


协议定义包:l7-protocols-2009-05-28.tar.gz

lftp 172.16.0.1:/pub/Sources/sources/iptables

 


5、查看系统和防火墙版本

#查看系统版本
[root@localhost ~]# uname -sr
Linux 2.6.32-431.el6.x86_64
#查看防火墙版本
[root@localhost ~]# rpm -qa | grep iptables
iptables-ipv6-1.4.7-11.el6.x86_64
iptables-1.4.7-11.el6.x86_64

提示:下载相应补丁包,linux内核补丁版本一定要与所下载内核版本号一致,否则打内核补丁时出现找不到文件提示!



二、实战

 

    别忘了开发包租~

yum groupinstall -y "Desktop Platform Development"
yum groupinstall -y "Server Platform Development"
yum groupinstall -y "Development tools"


   1、解压并编译内核

useradd mockbuild        //添加安装src格式的软件包需要的用户
rpm -ivh kernel-2.6.32-431.5.1.el6.src.rpm         //安装内核会在当前用户目录下生成一个rpmbuild目录,而目录中有我们需要源码格式的内核文件
tar xf rpmbuild/SOURCES/linux-2.6.32-431.5.1.el6.tar.bz2 -C /usr/src/
cd /usr/src/
ln -sv linux-2.6.32-431.5.1.el6/ linux        //切换目录为内核创建软链接,也可以重命名为linux;建议创建链接文件

   

   2、给内核打补丁

tar xf netfilter-layer7-v2.23.tar.bz2 -C /usr/src/  //解压缩layer7
cd /usr/src/linux      //切换到内核目录为内核打补丁
patch -p1 < ../netfilter-layer7-v2.23/kernel-2.6.32-layer7-2.23.patch
cp /boot/config-2.6.32-431.el6.x86_64 /usr/src/linux/.config        //拷贝当前系统的config编译配置文件为模板编译内核
make menuconfig        //配置内核参数


       配置内核参数


按方向键"↑ ↓"选择内核参数,以"--->"结尾的表示还有子选项,按回车键进入子选项; "← →"选择菜单项;"Tab"键切换到菜单项


空格键选择内核编译类型:


[ ]:空选型表示不需要再新内核中使用该功能。

[M]:表示将此项功能编译为模块,以便在需要时加载。

[*]:将此功能直接编入新内核,作为内核的一部分。

执行完"make menuconfig"命令后会进入内核编辑模式,紫色表示选中,按回车进入下一级菜单;如下图


【图1】


【图2】选中的内核参数,按回车键进入下一级菜单:


【图3】选中的内核参数,按回车键进入下一级菜单:


【图4】选中的内核参数,按回车键进入下一级菜单:


【图5】选中的内核参数,按"空格键"选择为"<M>"表示编译成内核模块,启用这一项表示让内核支持7层过虑功

图5选择Exit退出到图1页面


选择"【图6】"选中的内核参数,按回车键进入下一级菜单:


取消【图7】选中的内核参数,不编译此项功能:


选中【图8】内核参数,按回车键进入下一级菜单




取消【图9】选中的内核参数,不编译此项功能:


一直选择Exit,直至出现【图10】中提示,选择"Yes"保存并退出:


注释:【图6】到【图9】不编译那两项内核参数的原因是因为,我们是从红帽下载的最新的内核文件,虽然版本看着像是有点老,但这是红帽一惯的命名风格,其实内核文件中包含了目前最新内核的新特性;而netfilter-layer7并不支持新的内核,于是就改了netfilter-layer7文件让它支持新的内核;从红帽官方下载的内核文件在编译时需要密钥验证,我们又没有密钥,所以就去掉上面那两项内核参数,在编译时不让检查密钥验证,这样我们就能顺利的编译安装通过了。而netfilter-layer7文件点上面的链接可以直接下载,我已上传到51cto上面,但是在下载前需要登录51cto;当然如果不使用这里的netfilter-layer7,从官方网站下载也可以,但是那就要下载老一点版本的内核了,其他做法都是一样的。

   

   3、编译并安装内核


本文出自 “斜视天花板” 博客,请务必保留此出处http://lemidi.blog.51cto.com/8601832/1386301

linux之防火墙篇三layer7应用层过滤,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。