计算机理论专业论文:基于LINUX操作系统的防火墙技术及其具体实现

https://www.06tc.com/artdetail-10369.html 时间:2019-11-10 13:04:00  快讯 
04分钟前摘要本文介绍了LINUX下常用的防火墙规则配置软件Ipchains;从实现原理、配置方法以及功能特点的角度描述了LINUX防火墙的三种功能;并给出了一个LINUX防火墙实例作为参考 关键字LINUX防火墙ipchains包过滤代理IP伪装 1前言 防火墙作为网络安全措施中的一个重要组成部分,一直受到人们的普遍关注。LINUX是这几年一款异军突起的操作系统,以其公开的源代码、强大稳定的网络功能和大量的免费资源受到业界的普遍赞扬。LINUX防火墙其实是操作系统本身所自带的一个功能模块。通过安装特定的防火墙内核,LINUX操作系统会对接收到的数据包按一定的策略进行处理。而用户所要做的,就是使用特定的配置软件(如ipchains)去定制适合自己的“数据包处理策略”。 2LINUX防火墙配置软件—Ipchains Ipchains是LINUX2.1及其以上版本中所带的一个防火墙规则管理程序。用户可以使用 它来建立、编辑、删除系统的防火墙规则。但通常,需要自己创建一个防火墙规则脚本/etc/rc.d/rc.firewall,并使系统启动时自动运行这个脚本。 一个LINUX防火墙系统的安全机制是通过Input、Output、Forward这三个“防火链”来实现的。而用户正是使用ipchains在这三个“链”上分别创建一套“防火规则”,来完成对到来数据包层层限制的目的,其组织结构如图1所示。 其中,每个链都包括一组由用户创建的过滤规则,数据包依次到达每个链,并比较其中的每条规则,直到找出匹配规则并执行相应策略(如通过、拒绝等),否则执行默认策略。实际中,数据包在到达Input链之前还要进行测试和正常性检查,在到路由表之前还要被判断是否被伪装,这些,在本图中都被省略了。 Ipchains经常使用的命令行格式如下: Ipchains–Achain[–iinterface][–pprotocol][[!]-y] [–ssource-ip[port]][-ddestination-ip[port]]–jpolicy[-l] 对各选项的说明如下表: -A添加一规则到链尾。chain可为input、output、forward。 -i指定本规则适用的网络接口。通常有eth0、eth1、lo、ppp0等。 -p指定本规则适用的IP协议,如tcp、udp、icmp等。 [!]–y-y表明tcp握手中的连接请求标志位SYN;!–y表示对该请求的响应。 -ssrc-ip[port]指明数据包的源IP地址,port表示本规则适用的端口号。 -ddst-ip[port]指明数据包的目的IP地址及端口号。 -jpolicy指定本规则对匹配数据包的处理策略:ACCEPT、DENY或REJECT。 -l在系统日志/var/log/messages中记录与该规则匹配的数据包。 3LINUX防火墙的几种常见功能 由于每一个用户的要求和所处的环境都不一样,LINUX防火墙会根据用户的设置实现各种不同的功能。但一般说来,以下三种功能是大多数用户最常用到的。 3.1包过滤 对数据包进行过滤可以说是任何防火墙所具备的最基本的功能,而LINUX防火墙本身从某个角度也可以说是一种“包过滤防火墙”。在LINUX防火墙中,操作系统内核对到来的每一个数据包进行检查,从它们的包头中提取出所需要的信息,如源IP地址、目的IP地址、源端口号、目的端口号等,再与已建立的防火规则逐条进行比较,并执行所匹配规则的策略,或执行默认策略,这个过程在图1中已经形象的表现出来。 值得注意的是,在制定防火墙过滤规则时通常有两个基本的策略方法可供选择:一个是默认允许一切,即在接受所有数据包的基础上明确地禁止那些特殊的、不希望收到的数据包;还有一个策略就是默认禁止一切,即首先禁止所有的数据包通过,然后再根据所希望提供的服务去一项项允许需要的数据包通过。一般说来,前者使启动和运行防火墙变得更加容易,但却更容易为自己留下安全隐患。 通过在防火墙外部接口处对进来的数据包进行过滤,可以有效地阻止绝大多数有意或无意地网络攻击,同时,对发出的数据包进行限制,可以明确地指定内部网中哪些主机可以访问互联网,哪些主机只能享用哪些服务或登陆哪些站点,从而实现对内部主机的管理。可以说,在对一些小型内部局域网进行安全保护和网络管理时,包过滤确实是一种简单而有效的手段。 3.2代理 LINUX防火墙的代理功能是通过安装相应的代理软件实现的。它使那些不具备公共IP的内部主机也能访问互联网,并且很好地屏蔽了内部网,从而有效保障了内部主机的安全。为了清楚地描述这一重要功能的实现过程,特假设以下典型情况,如图2所示: steven为内部网中一台IP是182.168.0.2的主机,其上安装有IE5.0浏览器,并配置为使用防火墙主机182.168.0.1:8080作为代理。firewall就是我们讨论的LINUX防火墙,有两个网络接口,分别是内部接口eth1=182.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代理接收到请求后,先查找域名“www.263.net”,得到地址211.100.31.131(该 步骤图中省略),然后通过防火墙端口1050与该地址的80端口建立一个连接,请求页面。 (3)www.263.net服务器接到请求后将页面传给squid代理。 (4)防火墙代理得到页面后,把数据复制到(1)中所建立的连接上,IE得到数据并 将“www.263.net”页面显示出来。 通过以上描述,可以清楚地了解到内部主机、LINUX代理防火墙以及外部服务器之间是如何进行数据传输的,那么,在LINUX防火墙内部,那些“防火链”又是如何工作的呢?其工作过程如图3所示: steven主机发来的数据包经由内部接口eth1进来后,首先接受INPUT链的“检查”:系统内核从包头中提取出信息,与INPUT链中所有适用于eth1接口的过滤规则逐个比较,直到匹配通过。之后,该数据包被转发给本地的代理进程。同样,代理进程发送给远程Web服务器的数据包在从防火墙外部接口发送出去之前,也要经过OUTPUT链的“检查”,即与OUTPUT链中所有适用于eth0接口的规则一一比较。返回的过程正好与上述相反,在此就不再赘述 为了实现以上过程,我们必须在防火墙规则脚本中添加以下规则: ipchains–Ainput–ieth1–ptcp–s182.168.0.21110–d182.168.0.18080–jACCEPT ipchains–Aoutput–ieth0–ptcp–s202.117.120.11050–d211.100.31.13180–jACCEPT ipchains–Ainput–ieth0–ptcp!-y–s211.100.31.13180–d202.117.120.11050–jACCEPT ipchains–Aoutput–ieth1–ptcp!–y–s182.168.0.18080–d182.168.0.21110–jACCEPT 从上文对代理功能的原理和实现的叙述中,我们可以看出,LINUX防火墙实际上扮演了一个“代理网关”的角色。内部主机和远程服务器分别都只与防火墙进行连接,而真正的“起点”和“终点”之间却毫无联系。 3.3IP伪装 IP伪装(IPMasquerade)是LINUX操作系统自带的又一个重要功能。通过在系统内核增添相应的伪装模块,内核可以自动地对经过的数据包进行“伪装”,即修改包头中的源目的IP信息,以使外部主机误认为该包是由防火墙主机发出来的。这样做,可以有效解决使用内部保留IP的主机不能访问互联网的问题,同时屏蔽了内部局域网。这一点,与前面所讲的代理所达到的目的是很类似的。 关于IP伪装在LINUX防火墙内部的具体实现过程,请看图4。 仍以图2中所示的典型情况为例,steven主机的IE进程直接与远程的Web服务器建立一个连接。当数据包到达防火墙的内部接口后,照样要例行INPUT链的检查。之后,数据包被送到FORWARD链,接受系统内核的“伪装处理”,即将包头中的源IP地址改为防火墙外部接口eth0的地址,并在系统中做下记录,以便一会儿对其回应包的目的IP进行“恢复”。这样,当该数据包顺利从外部接口出来时,其包头中源IP已被改为202.117.120.1。远程服务器会认为这是从防火墙的合法地址发来的,从而对其做出响应。当远程服务器返回的回应包到达防火墙时,先经过INPUT链,然后会根据系统关于IP伪装的记录对数据包的目的IP进行恢复,即将202.117.120.1改为182.168.0.2,最后再经过OUTPUT链返回到steven主机。 为了实现这个过程,我们必须在防火墙规则脚本中添加以下规则: ipchains–Ainput–ieth1–ptcp–s182.168.0.21110–d211.100.31.13180–jACCEPT ipchains–Aoutput–ieth0–ptcp–s202.117.120.11050–d211.100.31.13180–jACCEPT ipchains–Ainput–ieth0–ptcp!-y–s211.100.31.13180–d202.117.120.11050–jACCEPT ipchains–Aoutput–ieth1–ptcp!–y–s211.100.31.13180–d182.168.0.21110–jACCEPT ipchains–Aforward–ieth0–s182.168.0.21110–d211.100.31.13180–jMASQ 与代理功能比较而言,IP伪装不需要安装相应的代理软件,数据包的伪装对用户来说都是“透明”的,并且整个过程都是在IP层实现,因此实现速度较快。缺点是不能对经过的数据包作详细的记录。 以上介绍了LINUX防火墙在实际的设置中常用到的三种功能。但一般说来,用户在创建自己的防火墙规则脚本时,可以根据自己的需要将这三种功能组合起来实现。 4一个LINUX防火墙实例 以下是我前一段时间为某办公室搭建的LINUX防火墙的实际配置,给出以供参考。 该室网络拓扑图如图5: 有两个局域网,LAN1地址:202.117.120.65/255.255.255.248 为公共网络IP,LAN2地址为182.168.0.0/255.255.255.0,为内部保留地址。LINUX防火墙有两个内部接口:202.117.120.70接LAN1;182.168.0.1接LAN2。 现对防火墙进行配置,使LAN2的主机通过IP伪装访问互联网,但只允许使用外部Web代理服务器202.117.112.34的1252端口。LAN1中的主机被限制使用几种常用的互联网服务(DNS、SMTP、POP3、HTTP和FTP)。 下面就是创建的防火墙规则脚本: #/etc/rc.d/rc.firewall #!/bin/sh #eth0---External_interface #eth1---LAN1_interface #eth2---LAN2_interface echo"Startingfirewalling..." #Flushanyexistingrulesfromallchains ipchains-F #Setthedefaultpolicytodeny ipchains-PinputDENY ipchains-PoutputREJECT ipchains-PforwardREJECT #Enabletrafficontheloopbackinterface ipchains-Ainput-ilo-jACCEPT ipchains-Aoutput-ilo-jACCEPT #Enablethetrafficontheeth1 ipchains-Ainput-ieth1-jACCEPT ipchains-Aoutput-ieth1-jACCEPT #thetrafficontheeth2onlyenabllingusingtheWEBPROXY ipchains-Ainput-ieth2-ptcp-s182.168.0.0/241024:65535-d202.117.112.341252-jACCEPT ipchains-Aoutput-ieth2-ptcp!-y-s202.117.112.341252-d182.168.0.0/241024:65535-jACCEPT #Forwardingrules ipchains-Aforward-ieth0-s202.117.120.64/28-jACCEPT ipchains-Aforward-ieth0-s182.168.0.0/24-jMASQ ipchains-Aforward-ieth1-d202.117.120.64/28-jACCEPT #EnableoutgoingthepacketsfromLANontheExternal_Interface ipchains-Aoutput-ieth0-jACCEPT #EnableincomingsomeICMPmessagesoneth #1.Dest_Unreachable,Service_Unavailable ipchains-Ainput-ieth0-picmp-sany/03-d202.117.120.64/28-jACCEPT #2.Time_Exceeded ipchains-Ainput-ieth0-picmp-sany/011-d202.117.120.64/28-jACCEPT #3.Allowoutgoingpingstoanywhere ipchains-Ainput-ieth0-picmp-sany/00-d202.117.120.64/28-jACCEPT #EnableProxyof202.117.112.34:1252 ipchains-Ainput-ieth0-ptcp!-y-s202.117.112.341252-jACCEPT #DNS(53)(DNS:202.117.112.3)—clientmodes ipchains-Ainput-ieth0-pudp-s202.117.112.353-d202.117.120.64/281024:65535-jACCEPT ipchains-Ainput-ieth0-ptcp!-y-s202.117.112.353-d202.117.120.64/281024:65535-jACCEPT #SMTP(25)EnablesendingmailthrougharemoteSMTPgateway ipchains-Ainput-ieth0-ptcp!-y-sany/025-d202.117.120.64/281024:65535-jACCEPT #POP(110)--EnablereceivingmailfromaremotePOPserver ipchains-Ainput-ieth0-ptcp!-y-sany/0110-d202.117.120.64/281024:65535-jACCEPT #HTTP(80)--EnableaccessingremoteWEBsitesasaclient ipchains-Ainput-ieth0-ptcp!-y-sany/080-d202.117.120.64/281024:65535-jACCEPT #FTP(20,21)--EnableaccessingremoteFTPservers ipchains-Ainput-ieth0-ptcp!-y-sany/021-d202.117.120.64/281024:65535-jACCEPT ipchains-Ainput-ieth0-ptcp-sany/020-d202.117.120.64/281024:65535-jACCEPT ipchains-Ainput-ieth0-ptcp!-y-sany/01024:65535-d202.117.120.64/281024:65535-jACCEPT echo"done" exit0 5结束语 本文着重从防火墙内部工作过程的角度分别对LINUX防火墙的包过滤、代理以及IP伪装功能进行了剖析,同时涉及到了一些网络配置、用ipchains具体实现等方面的内容。文末给出的实例已在实际中调试通过。 参考文献 1RobertL.Ziegler,《Linux防火墙》人民邮电出版社,2000.10 2W.RichardStevens,《TCP/IP详解卷一:协议》机械工业出版社,2000.4.1 3RustyRussell,“LinuxIPCHAINS-HOWTO”,netfilter.samba.org,Jul4,2000 5RawnShah,“UsingyouroldPentiumsandLinuxtocreateaFirewall”,Independent 6technologistandfreelancejournalist,September,1888 1、“跳早族” 为什么跳槽 春节刚过,2011年的应届毕业生们已经铆足了劲儿开始找工作,各公司、单位也已开始忙着“招兵买马”,期待着新鲜血液的加入。然而,当不少应届生感叹“找不到工作”时,不少往届生正上演着“频繁跳槽”的 2、在抱怨中成长 抱怨,是每个人都会有的情绪。工作中、生活中、社会关系中……任何时候都不会事事尽如人意,对自己不合意的人或事就会抱怨,这本无可厚非。问题是,该如何抱怨才会给自己带来益处?如果不审时度时地使自己的“抱怨” 3、2010年到新工作单位上班自我介绍范文 本文提供一篇到新工作单位上班自我介绍范文,关于到新工作单位上班自我介绍范文的详细内容如下。 大家好,我是刚被公司从**部门调过来的***,来接任你们之前**主管的工作,当然了,不是因 4、李彦宏:创业尽量专注熟悉领域 11月5日消息,百度公司创始人、董事长兼首席执行官李彦宏告诫创业者,创业要专注于自己的领域,并且要有前瞻性的眼光要有向前看两年。 李彦宏称,他创业之初美国IT界最火的是电子商务,无数人涌入了 5、写好简历真朴实的方法 一份简历,好比是产品的广告和说明书,既要在短短几页篇幅里把你的形象和其他竞争者区分开来,又要切实地把你对于用户的价值令人信服地表现出来。这份个人文件正好可以被用作推销你自己的有力宣言。 首先,无论你的 6、电子简历常见错误分析 简历错误一:疏密不当、字体混乱 “密不透风,疏可跑马”这时中国书法的章法布局,想不被招聘者喜欢,你尽可以对自己的简历胡搭乱设一番。还有的朋友喜欢变换各种字体和格式,“仿宋、黑体、倾斜、加粗……”轮 7、如何正确的对个人经历进行取舍 在写一份个人简历时,对你以往的经历应该有取舍地来写,以下几点或许可以帮助你。 1、工作经历中的间隙:很多人在工作经历中有间隙,如能合理解释,如就学、生育,那你只需将此写进履历即可。有时,你可以填入 8、语文专业论文:浅谈小学语文课堂教学中创新能力的培养 浅谈小学语文课堂教学中创新能力的培养 河北省万全县北沙城小学 梁荣 创新是一个民族进步的灵魂, 是一个国家不断发展的动力。素质教育是创新教育的体现, 创新教育是素质教育的最高形式 8、中国矿业大学力顶学生创业 张文清、党文琦、董蓓蓓,3名来自中国矿业大学徐海学院英语专业的在校大学生,为了创业的梦想走到了一起,创办了惜墨翻译工作室。初见3位女孩,青涩、文静、腼腆,笔者很难把她们和“老板”联系在一起。交 10、莫做职场让人厌恶的雷人新人 冬天的怀抱把人紧紧的锁在被窝里,使人困倦上班的生活,我想大家都有过这样的挣扎。匆忙的刷牙洗脸,提上自己的包就赶往公司,一路上买了早餐,到了公司差不多快到点了,狼吞虎咽一番就开始上班,人来了,可是心
2019年11月10日 13:04:00
本文链接地址:  https://www.06tc.com/artdetail-10369.html