基于LINUX操作系统的防火墙技术及其具体实现计算机理论..._第1页
基于LINUX操作系统的防火墙技术及其具体实现计算机理论..._第2页
基于LINUX操作系统的防火墙技术及其具体实现计算机理论..._第3页
基于LINUX操作系统的防火墙技术及其具体实现计算机理论..._第4页
基于LINUX操作系统的防火墙技术及其具体实现计算机理论..._第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要本文介绍了LINUX下常用的防火墙规则配置软件Ipchains;从实现原理、 配置方法以及功能特点的角度描述了LINUX防火墙的三种功能;并给出了一个LINUX防火墙实例作为参考。关键字LINUX 防火墙ipchains包过滤代理IP伪装1前言防火墙作为网络安全措施中的一个重要组成部分,一直受到人们的普遍关注。LINUX是这几年一款异军突起的操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。 LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核, LINUX操作系统会对接收到的数据包按一定的策略进行处理。 而用户所要做的, 就是使

2、用特定的配置软件(如 ipchains )去定制适合自己的“数据包处理策略”。2Ipchains是LINUX 防火墙配置软件 IpchainsLINUX 2.1 及其以上版本中所带的一个防火墙规则管理程序。用户可以使用它来建立、编辑、删除系统的防火墙规则。但通常,需要自己创建一个防火墙规则脚本 /etc/rc.d/rc.firewall,并使系统启动时自动运行这个脚本。一个 LINUX防火墙系统的安全机制是通过 Input 、 Output 、Forward 这三个“防火链”来实现的。而用户正是使用 ipchains 在这三个“链”上分别创建一套“防火规则”,来完成对到来数据包层层限制的目的,

3、其组织结构如图1 所示。其中,每个链都包括一组由用户创建的过滤规则,数据包依次到达每个链,并比较其中的每条规则,直到找出匹配规则并执行相应策略(如通过、拒绝等),否则执行默认策略。实际中,数据包在到达 Input 链之前还要进行测试和正常性检查, 在到路由表之前还要被判断是否被伪装, 这些,在本图中都被省略了。Ipchains经常使用的命令行格式如下:Ipchains A chain i interface p protocol ! -y s source-ip port -d destination-ip portj policy -l对各选项的说明如下表:-A <chain>添

4、加一规则到链尾。 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-j policy指明数据包的目的IP 地址及端口号。指定本规则对匹配数据包的处理策略

5、:ACCEPT、DENY或REJECT。-l在系统日志/var/log/messages中记录与该规则匹配的数据包。3LINUX 防火墙的几种常见功能由于每一个用户的要求和所处的环境都不一样, LINUX防火墙会根据用户的设置实现各种不同的功能。但一般说来,以下三种功能是大多数用户最常用到的。3.1包过滤对数据包进行过滤可以说是任何防火墙所具备的最基本的功能,而 LINUX防火墙本身从某个角度也可以说是一种“包过滤防火墙”。 在 LINUX防火墙中,操作系统内核对到来的每一个数据包进行检查,从它们的包头中提取出所需要的信息,如源 IP 地址、目的 IP 地址、源端口号、目的端口号等,再与已建立

6、的防火规则逐条进行比较,并执行所匹配规则的策略,或执行默认策略,这个过程在图1中已经形象的表现出来。值得注意的是,在制定防火墙过滤规则时通常有两个基本的策略方法可供选择:一个是默认允许一切, 即在接受所有数据包的基础上明确地禁止那些特殊的、不希望收到的数据包; 还有一个策略就是默认禁止一切, 即首先禁止所有的数据包通过,然后再根据所希望提供的服务去一项项允许需要的数据包通过。 一般说来,前者使启动和运行防火墙变得更加容易,但却更容易为自己留下安全隐患。通过在防火墙外部接口处对进来的数据包进行过滤, 可以有效地阻止绝大多数有意或无意地网络攻击, 同时,对发出的数据包进行限制, 可以明确地指定内部

7、网中哪些主机可以访问互联网, 哪些主机只能享用哪些服务或登陆哪些站点, 从而实现对内部主机的管理。 可以说,在对一些小型内部局域网进行安全保护和网络管理时,包过滤确实是一种简单而有效的手段。3.2代理LINUX防火墙的代理功能是通过安装相应的代理软件实现的。它使那些不具备公共 IP 的内部主机也能访问互联网,并且很好地屏蔽了内部网,从而有效保障了内部主机的安全。 为了清楚地描述这一重要功能的实现过程, 特假设以下典型情况,如图 2 所示:steven为内部网中一台IP 是的主机,其上安装有IE5.0浏览器,并配置为使用防火墙主机: 8080 作为代理。 firewall就是我们讨论的 LINU

8、X防火墙,有两个网络接口,分别是内部接口、外部接口 。在 firewall主机上安装有Web代理软件“ squid ”, 并配置其代理端口为8080。为 263 网站的Web服务器, IP 为, Web服务端口 80。如果要从 steven 主机访问 263 的主页,其具体的通信过程如图中所示:( 1) IE 通过 steven 的非专用端口 1110 ( 在 102465535之间随机产生 ) 与防火墙的代理端口 8080 建立连接,请求“”页面。( 2) squid 代理接收到请求后,先查找域名“”,得到地址该步骤图中省略 ) ,然后通过防火墙端口 1050 与该地址的 80 端口建立一个

9、连接,请求页面。( 3)服务器接到请求后将页面传给 squid 代理。( 4)防火墙代理得到页面后,把数据复制到( 1)中所建立的连接上, IE 得到数据并将“”页面显示出来。通过以上描述,可以清楚地了解到内部主机、 LINUX代理防火墙以及外部服务器之间是如何进行数据传输的, 那么,在 LINUX防火墙内部, 那些“防火链”又是如何工作的呢?其工作过程如图 3 所示:steven 主机发来的数据包经由内部接口 eth1 进来后,首先接受 INPUT 链的“检查”:系统内核从包头中提取出信息,与 INPUT链中所有适用于 eth1接口的过滤规则逐个比较, 直到匹配通过。 之后,该数据包被转发给

10、本地的代理进程。同样,代理进程发送给远程 Web服务器的数据包在从防火墙外部接口发送出去之前,也要经过 OUTPUT链的“检查”,即与 OUTPUT链中所有适用于 eth0接口的规则一一比较。返回的过程正好与上述相反,在此就不再赘述为了实现以上过程,我们必须在防火墙规则脚本中添加以下规则:ipchainsA input i eth1p tcp s 1110 d 8080 j ACCEPTipchains A output i eth0 p tcps 1050 d31 80j ACCEPTipcha

11、ins A inputi eth0p tcp !-ys 31 80d 1050j ACCEPTipchains A output i eth1 p tcp !y s 8080 d 1110 j ACCEPT从上文对代理功能的原理和实现的叙述中,我们可以看出, LINUX防火墙实际上扮演了一个“代理网关”的角色。 内部主机和远程服务器分别都只与防火墙进行连接,而真正的“起点”和“终点”之间却毫无联系。3.3 IP伪装IP 伪装( IP Masquerade)是 LINUX操作系统自带的又一个重要功能。

12、通过在系统内核增添相应的伪装模块, 内核可以自动地对经过的数据包进行“伪装”, 即修改包头中的源目的 IP 信息,以使外部主机误认为该包是由防火墙主机发出来的。这样做,可以有效解决使用内部保留 IP 的主机不能访问互联网的问题,同时屏蔽了内部局域网。这一点,与前面所讲的代理所达到的目的是很类似的。关于 IP 伪装在 LINUX防火墙内部的具体实现过程,请看图4。仍以图 2 中所示的典型情况为例, steven 主机的 IE 进程直接与远程的 Web服务器建立一个连接。 当数据包到达防火墙的内部接口后, 照样要例行 INPUT链的检查。之后,数据包被送到 FORWARD链,接受系统内核的“伪装处

13、理”,即将包头中的源 IP 地址改为防火墙外部接口 eth0 的地址,并在系统中做下记录, 以便一会儿对其回应包的目的 IP 进行“恢复”。这样,当该数据包顺利从外部接口出来时,其包头中源 IP 已被改为。远程服务器会认为这是从防火墙的合法地址发来的, 从而对其做出响应。 当远程服务器返回的回应包到达防火墙时,先经过 INPUT链,然后会根据系统关于 IP 伪装的记录对数据包的目的 IP 进行恢复,即将改为,最后再经过 OUTPUT链返回到 steven 主机。为了实现这个过程,我们必须在防火墙规则脚本中添加以下规则:ipchains A inputi eth1p tcp s 192.168.

14、0.2 1110 d31 80j ACCEPTipchains A output i eth0 p tcp s 1050d31 80j ACCEPTipchains A inputi eth0p tcp !-ys 31 80d 1050j ACCEPTipchains A output i eth1 p tcp !yd j ACCEPTipchainsA forward i eth01110 80 j MASQ与代理功能比较而言, IP 伪装不需要安装相应的代理软件,数

15、据包的伪装对用户来说都是“透明”的,并且整个过程都是在 IP 层实现,因此实现速度较快。缺点是不能对经过的数据包作详细的记录。以上介绍了 LINUX防火墙在实际的设置中常用到的三种功能。 但一般说来,用户在创建自己的防火墙规则脚本时, 可以根据自己的需要将这三种功能组合起来实现。4一个 LINUX防火墙实例以下是我前一段时间为某办公室搭建的 LINUX防火墙的实际配置,给出以供参考。该室网络拓扑图如图5:有两个局域网, LAN1地址:为公共网络 IP , LAN2地址为为内部保留地址。LINUX防火墙有两个内部接口:接 LAN1;接 LAN2。现对防火墙进行配置, 使 LAN2的主机通过 IP

16、 伪装访问互联网, 但只允许使用外部 Web代理服务器的 1252 端口。 LAN1中的主机被限制使用几种常用的互联网服务( DNS、 SMTP、 POP3、 HTTP和 FTP)。下面就是创建的防火墙规则脚本:#/etc/rc.d/rc.firewall#!/bin/sh# eth0-External_interface# eth1-LAN1_interface# eth2-LAN2_interface echo "Starting firewalling . . ."#Flush any existing rules from all chainsipchains -F

17、#Set the default policy to denyipchains -P input DENYipchains -P output REJECTipchains -P forward REJECT#Enable traffic on the loopback interfaceipchains -A input -i lo -j ACCEPTipchains -A output -i lo -j ACCEPT#Enable the traffic on the eth1ipchains -A input -i eth1 -j ACCEPTipchains -A output -i

18、eth1 -j ACCEPT#Forwarding rules-j ACCEPT-j MASQ#Enable incoming some ICMP messages on eth# 1.Dest_Unreachable,Service_Unavailableipchains-A input -ieth0 -p icmp -s any/0 3 -d 4/29-jACCEPT# 2.Time_Exceededipchains -A input -i eth0 -p icmp -s any/0 11 -d 4/29 -jACCEPT# 3.Allow outgoing pings to anywhereipchains-A input -ieth0 -p icmp -s any/0 0 -d 4/29-jACCEPT#Enable Proxy of 4:1252ipchains -A input -i eth0 -p tcp ! -y -s 4 1252 -j ACCEPT#DNS (53) (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论