用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机理论

基于LINUX操作系统的防火墙技术及其具体实现

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 12:07:25
【本文由PB创新网为您整理】

摘要  本文介绍了LINUX下常用的防火墙规则配置软件Ipchains;从实现原理、配置方法以及功能特点的角度描述了LINUX防火墙的三种功能;并给出了一个LINUX防火墙实例作为参考。

关键字    LINUX防火墙  ipchains  包过滤  代理  IP伪装


1      前言
防火墙作为网络安全措施中的一个重要组成部分,一直受到人们的普遍关注。LINUX是这几年一款异军突起的操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。而用户所要做的,就是使用特定的配置软件(如ipchains)去定制适合自己的“数据包处理策略”。
2      LINUX防火墙配置软件—Ipchains
Ipchains是LINUX 2.1及其以上版本中所带的一个防火墙规则管理程序。用户可以使用
它来建立、编辑、删除系统的防火墙规则。但通常,需要自己创建一个防火墙规则脚本 /etc/rc.d/rc.firewall,并使系统启动时自动运行这个脚本。
一个LINUX防火墙系统的安全机制是通过Input、Output、Forward这三个“防火链”来实现的。而用户正是使用ipchains在这三个“链”上分别创建一套“防火规则”,来完成对到来数据包层层限制的目的,其组织结构如图1所示。
 
    其中,每个链都包括一组由用户创建的过滤规则,数据包依次到达每个链,并比较其中的每条规则,直到找出匹配规则并执行相应策略(如通过、拒绝等),否则执行默认策略。实际中,数据包在到达Input链之前还要进行测试和正常性检查,在到路由表之前还要被判断是否被伪装,这些,在本图中都被省略了。
Ipchains 经常使用的命令行格式如下:
Ipchains –A chain [–i interface] [–p protocol] [[!] -y]
[–s source-ip [port]] [-d destination-ip [port]] –j policy [-l]
对各选项的说明如下表:
-A <chain>      添加一规则到链尾。chain可为input、output、forward。
-i <interface>      指定本规则适用的网络接口。通常有eth0、eth1、lo、ppp0等。
-p <protocol>      指定本规则适用的IP协议,如tcp、udp、icmp等。
[!] –y      -y表明tcp握手中的连接请求标志位SYN; ! –y 表示对该请求的响应。
-s src-ip [port]      指明数据包的源IP地址,port表示本规则适用的端口号。
-d dst-ip [port]      指明数据包的目的IP地址及端口号。
-j policy      指定本规则对匹配数据包的处理策略:ACCEPT、DENY或REJECT。
-l      在系统日志/var/log/messages中记录与该规则匹配的数据包。

3      LINUX防火墙的几种常见功能
由于每一个用户的要求和所处的环境都不一样,LINUX防火墙会根据用户的设置实现各种不同的功能。但一般说来,以下三种功能是大多数用户最常用到的。
3.1 包过滤
对数据包进行过滤可以说是任何防火墙所具备的最基本的功能,而LINUX防火墙本身从某个角度也可以说是一种“包过滤防火墙”。在LINUX防火墙中,操作系统内核对到来的每一个数据包进行检查,从它们的包头中提取出所需要的信息,如源IP地址、目的IP地址、源端口号、目的端口号等,再与已建立的防火规则逐条进行比较,并执行所匹配规则的策略,或执行默认策略,这个过程在图1中已经形象的表现出来。
值得注意的是,在制定防火墙过滤规则时通常有两个基本的策略方法可供选择:一个是默认允许一切,即在接受所有数据包的基础上明确地禁止那些特殊的、不希望收到的数据包;还有一个策略就是默认禁止一切,即首先禁止所有的数据包通过,然后再根据所希望提供的服务去一项项允许需要的数据包通过。一般说来,前者使启动和运行防火墙变得更加容易,但却更容易为自己留下安全隐患。
通过在防火墙外部接口处对进来的数据包进行过滤,可以有效地阻止绝大多数有意或无意地网络攻击,同时,对发出的数据包进行限制,可以明确地指定内部网中哪些主机可以访问互联网,哪些主机只能享用哪些服务或登陆哪些站点,从而实现对内部主机的管理。可以说,在对一些小型内部局域网进行安全保护和网络管理时,包过滤确实是一种简单而有效的手段。
3.2 代理
LINUX防火墙的代理功能是通过安装相应的代理软件实现的。它使那些不具备公共IP的内部主机也能访问互联网,并且很好地屏蔽了内部网,从而有效保障了内部主机的安全。为了清楚地描述这一重要功能的实现过程,特假设以下典型情况,如图2所示:
 
    steven为内部网中一台IP是192.168.0.2的主机,其上安装有IE5.0浏览器,并配置为使用防火墙主机192.168.0.1:8080作为代理。firewall就是我们讨论的LINUX防火墙,有两个网络接口,分别是内部接口eth1=192.168.0.1、外部接口eth0=202.117.120.1。在firewall主机上安装有Web代理软件“squid”,并配置其代理端口为8080。www.263.net为263网站的Web服务器,IP为211.100.31.131,Web服务端口80。
如果要从steven主机访问263的主页,其具体的通信过程如图中所示:
(1)IE通过steven的非专用端口1110 (在1024~65535之间随机产生)与防火墙的代理
端口8080建立连接,请求“http://www.263.net”页面。
(2)squid代

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:23,453.13000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号