论文部分内容阅读
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510020-01
一、绪论
传统的包过滤防火墙系统主要是包过滤规则以IP 信息包为基础,对IP 源地址、IP 目标地址、封装协议(TCP/UDP)、端口号等进行筛选。只有符合访问条件的数据包才被转发,其它包被丢弃。其功能设计主要是为在IP层和传输层上进行过滤的,而内容过滤在传统的包过滤防火墙上是难以做到的,其功能主要是依靠代理防火墙来实现。而笔者所在的学院包过滤防火墙主要安置在校园网和外部网络的出入口,内部网络通过这个防火墙与外网进行联系,其浏览访问Internet的作用比较多,而目前各种暴力、色情等不良信息充斥网络,如果能在边界的包过滤防火墙中加入对网页内容过滤的功能,使其既能保持包过滤防火墙对用户完全透明和过滤速度比较快的特点,又能实现一定的内容过滤功能,就大大增加了边界包过滤防火墙在校园网络安全中的实用性。本文试图利用Linux自带的包过滤防火墙模块Iptable的拓展模块,进行在包过滤防火墙上实现字符内容的过滤的功能研究。
二、Netfilter/layer7匹配简介
netfilter的设计主要是为在IP层和传输层上进行过滤的,layer7匹配的出现使得netfilter具备了一定的内容检测能力,其代码可http://l7-filter.sf.net下载,layer7可用于TCP、UDP、ICMP协议的数据内容匹配。
Layer7匹配的源码包括两个文件l7-protocols-.tar.gz和netf
ilter-layer7-.tar.gz,第一个文件是各种协议的匹配模式的定义,模式文件的后缀名为“pat”,分不同的子目录,解压后复制到某个目录下,缺省把这些文件放到/etc/l7-protocols/目录下;第二个文件是源码,以补丁形式提供,包括内核netfilter和用户层的iptables的补丁,解开压缩文件后。可用命令:patch -p1 < 来打补丁,然后重新编译内核模块和iptables模块后就能使用了。
由于模式只定义服务器段,而服务器返回的数据对于netfilter来说是属于ESTABLISHED的数据,所以要使用layer7匹配,必须是针对返回的数据进行匹配,而且要在通常的状态检测允许通过(iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT)的命令前进行,否则是检测不出什么来的。
三、网页内容的过滤的具体实现
首先我们有Iptable做NAT实现内部机器透过NAT共享能上Internet:
1.下载所需要的软件包:
下载新内核linux-2.6.19.7;下载iptables1.2.7;下载Layer-7补丁,模块协议:
l7-protocols-2007-01-13.tar.gz 和netfilter-layer7-v2.9.tar.gz
2.配置好内核选项:
把源码都放在/usr/src下:tar -jvf linux-2.6.19.7.tar.bz2#解压
3.安装下列L7补丁
安装l7协议、L7内核支持补丁。
make menuconfig进去 ,把Layer 7 match support选上 。
四、编译内核、升级iptables(略)
五、测试内容过滤功能
string模块是匹配ASCII那种汉字编码的,也就是用UltraEdit用十六进制方式打开可以直接看懂的,我们以屏蔽网页中暴力和色情关键字为例,首先我们分别转换暴力和色情的utf-8和gb2212的十六进制编码,具体结果如下:
B1A9C1A6 #暴力ASCLL码
E69AB4E48A9B #暴力UTF-8码
C9ABC7E9 #色情ASCLL码
E889B2E68384#色情UTF-8码
然后配置iptables规则:
iptables -I FORWARD -m string --hex-string "| B1A9C1A6|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E69AB4E48A9B |" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| C9ABC7E9|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E889B2E683848|" --algo bm --to 64424 -j DROP
将配置好的iptables防火墙过滤规则保存,经过测试,浏览含有“暴力”和“色情”关键字的网页时,iptables防火墙会自动对其进行过滤,阻止了客户端机器的浏览行为。
六、结论
使用Iptables配合L-7模块为校园网构建一个实用的具有字符过滤功能的包过滤防火墙系统,做为校园网边界防火墙系统,具备了对不良信息的过滤功能,以往这种过滤功能基本上是代理防火墙的工作,而代理防火墙的速度较慢,如果作为边界防火墙会大大影响内部主机的访问速度,因此我们利用Iptable的新增模块具有的网络层UTF-8码和 ASCLL码的过滤功能,将文字转换成UTF-8码和 ASCLL码的形式添加到过滤规则中去,在包过滤防火墙中实现字符的过滤,并通过测试,速度比较满意。
参考文献:
[1]唐建国,防火墙的安全及其效能分析[J].中国科技信息2007.4:120.
[2]张琦,防火墙包过滤技术剖析[J].网管员世界,2007.11:95.
[3]施怡,使用iptables构建Linux防火墙[J].福建电脑,2004.10:71.
[4]刘君尧,Linux下基于Netfilter的防火墙设计[J].微机发展,2003.13(8):25-27。
[5]杨刚、陈蜀宇,Linux中基于Netfilter/Iptables的防火墙研究[J].计算机工程与设计,2007.9,(28)17:4124.
[6]李洋、汪虎松等,RedHat Linux9.0系统与网络管理教程[M].北京:电子工业出版社,2006.07.
[7]邱桔、韦理丽,Linux下包过滤防火墙的设计与实现.计算机工程与设计.2006.7(27),13:2472-2475.
一、绪论
传统的包过滤防火墙系统主要是包过滤规则以IP 信息包为基础,对IP 源地址、IP 目标地址、封装协议(TCP/UDP)、端口号等进行筛选。只有符合访问条件的数据包才被转发,其它包被丢弃。其功能设计主要是为在IP层和传输层上进行过滤的,而内容过滤在传统的包过滤防火墙上是难以做到的,其功能主要是依靠代理防火墙来实现。而笔者所在的学院包过滤防火墙主要安置在校园网和外部网络的出入口,内部网络通过这个防火墙与外网进行联系,其浏览访问Internet的作用比较多,而目前各种暴力、色情等不良信息充斥网络,如果能在边界的包过滤防火墙中加入对网页内容过滤的功能,使其既能保持包过滤防火墙对用户完全透明和过滤速度比较快的特点,又能实现一定的内容过滤功能,就大大增加了边界包过滤防火墙在校园网络安全中的实用性。本文试图利用Linux自带的包过滤防火墙模块Iptable的拓展模块,进行在包过滤防火墙上实现字符内容的过滤的功能研究。
二、Netfilter/layer7匹配简介
netfilter的设计主要是为在IP层和传输层上进行过滤的,layer7匹配的出现使得netfilter具备了一定的内容检测能力,其代码可http://l7-filter.sf.net下载,layer7可用于TCP、UDP、ICMP协议的数据内容匹配。
Layer7匹配的源码包括两个文件l7-protocols-
ilter-layer7-
由于模式只定义服务器段,而服务器返回的数据对于netfilter来说是属于ESTABLISHED的数据,所以要使用layer7匹配,必须是针对返回的数据进行匹配,而且要在通常的状态检测允许通过(iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT)的命令前进行,否则是检测不出什么来的。
三、网页内容的过滤的具体实现
首先我们有Iptable做NAT实现内部机器透过NAT共享能上Internet:
1.下载所需要的软件包:
下载新内核linux-2.6.19.7;下载iptables1.2.7;下载Layer-7补丁,模块协议:
l7-protocols-2007-01-13.tar.gz 和netfilter-layer7-v2.9.tar.gz
2.配置好内核选项:
把源码都放在/usr/src下:tar -jvf linux-2.6.19.7.tar.bz2#解压
3.安装下列L7补丁
安装l7协议、L7内核支持补丁。
make menuconfig进去 ,把Layer 7 match support选上 。
四、编译内核、升级iptables(略)
五、测试内容过滤功能
string模块是匹配ASCII那种汉字编码的,也就是用UltraEdit用十六进制方式打开可以直接看懂的,我们以屏蔽网页中暴力和色情关键字为例,首先我们分别转换暴力和色情的utf-8和gb2212的十六进制编码,具体结果如下:
B1A9C1A6 #暴力ASCLL码
E69AB4E48A9B #暴力UTF-8码
C9ABC7E9 #色情ASCLL码
E889B2E68384#色情UTF-8码
然后配置iptables规则:
iptables -I FORWARD -m string --hex-string "| B1A9C1A6|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E69AB4E48A9B |" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| C9ABC7E9|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E889B2E683848|" --algo bm --to 64424 -j DROP
将配置好的iptables防火墙过滤规则保存,经过测试,浏览含有“暴力”和“色情”关键字的网页时,iptables防火墙会自动对其进行过滤,阻止了客户端机器的浏览行为。
六、结论
使用Iptables配合L-7模块为校园网构建一个实用的具有字符过滤功能的包过滤防火墙系统,做为校园网边界防火墙系统,具备了对不良信息的过滤功能,以往这种过滤功能基本上是代理防火墙的工作,而代理防火墙的速度较慢,如果作为边界防火墙会大大影响内部主机的访问速度,因此我们利用Iptable的新增模块具有的网络层UTF-8码和 ASCLL码的过滤功能,将文字转换成UTF-8码和 ASCLL码的形式添加到过滤规则中去,在包过滤防火墙中实现字符的过滤,并通过测试,速度比较满意。
参考文献:
[1]唐建国,防火墙的安全及其效能分析[J].中国科技信息2007.4:120.
[2]张琦,防火墙包过滤技术剖析[J].网管员世界,2007.11:95.
[3]施怡,使用iptables构建Linux防火墙[J].福建电脑,2004.10:71.
[4]刘君尧,Linux下基于Netfilter的防火墙设计[J].微机发展,2003.13(8):25-27。
[5]杨刚、陈蜀宇,Linux中基于Netfilter/Iptables的防火墙研究[J].计算机工程与设计,2007.9,(28)17:4124.
[6]李洋、汪虎松等,RedHat Linux9.0系统与网络管理教程[M].北京:电子工业出版社,2006.07.
[7]邱桔、韦理丽,Linux下包过滤防火墙的设计与实现.计算机工程与设计.2006.7(27),13:2472-2475.