iptables 建置 Linux 防火墙.docx
- 文档编号:2995080
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:20
- 大小:32.97KB
iptables 建置 Linux 防火墙.docx
《iptables 建置 Linux 防火墙.docx》由会员分享,可在线阅读,更多相关《iptables 建置 Linux 防火墙.docx(20页珍藏版)》请在冰豆网上搜索。
iptables建置Linux防火墙
iptables建置Linux防火墙
linux下iptables应用2006-10-2702:
07:
24阅读24评论0字号:
大中小
使用iptables建置Linux防火墙
作者:
李忠宪shane@mail.spps.tp.edu.tw2002/11/282003/03/09
修订前言防火墙在校园内一直被认为陌晦高深,很少有系管师有勇气进行计划性的实验,基本上这份讲义也可以当成测试报告来阅读,是笔者秉持我不入地狱、谁入地狱的精神,冒着生命危险,蛮干出来的成果,也藉此抛砖引玉,希望能带动国内能力高于笔者许多的众家高手,一起来进行有利于校园网络的公益研究!
壹、什么是防火墙
防火墙是一套能够在两个或两个以上的网络之间,明显区隔出实体线路联机的软硬件设备组合。
被区隔开来的网络,可以透过封包转送技术来相互通讯,透过防火墙的安全管理机制,可以决定哪些数据可以流通,哪些资料无法流通,藉此达到网络安全保护的目的。
防火墙产品可以概略归类为硬件式防火墙和软件式防火墙,但实际上无论是硬件式或软件式防火墙,它们都需要使用硬件来作为联机介接,也需要使用软件来设定安全政策,严格说两者间的差别并不太大。
我们只能从使用的硬件与操作系统来加以区分,硬件式防火墙是使用专有的硬件,而软件式防火墙则使用一般的计算机硬件,硬件式防火墙使用专有的操作系统,而软件式防火墙则使用一般的操作系统。
防火墙依照其运作方式来分类,可以区分为封包过滤式防火墙(PacketFilter)、应用层网关式防火墙(Application-LevelGateway,也有人把它称为Proxy防火墙)、电路层网关式防火墙(Circuit-LevelGateway)。
其中被广为采用的是封包过滤式防火墙,本文要介绍的iptables防火墙就是属于这一种。
封包过滤是最早被实作出来的防火墙技术,它是在TCP/IP四层架构下的IP层中运作。
封包过滤器的功能主要是检查通过的每一个IP数据封包,如果其标头中所含的数据内容符合过滤条件的设定就进行进一步的处理,主要的处理方式包含:
放行(accept)、丢弃(drop)或拒绝(reject)。
要进行封包过滤,防火墙必须要能分析通过封包的来源IP与目的地IP,还必须能检查封包类型、来源埠号与目的埠号、封包流向、封包进入防火墙的网卡接口、TCP的联机状态等数据。
防火墙由于种种理由价格一直居高不下,对于贫穷的中小学来讲要采购一台防火墙,简直是不可能的任务,而由于Linux的风行,使用Linux来充作软件式防火墙,似乎是不错的解决之道,本文拟介绍以Linux上最新最强大的iptables防火墙软件,建置出适合学校使用的过滤规则,让缺钱的学校能有一套好用的防火墙来看守校园网络的大门。
贰、Linux防火墙演变简史
Linux最早出现的防火墙软件称为ipfw,ipfw能透过IP封包标头的分析,分辨出封包的来源IP与目的地IP、封包类型、来源埠号与目的埠号、封包流向、封包进入防火墙的网卡界面......等,并藉此分析结果来比对规则进行封包过滤,同时也支持IP伪装的功能,利用这个功能可以解决IP不足的问题,可惜这支程序缺乏弹性设计,无法自行建立规则组合(ruleset)作更精简的设定,同时也缺乏网址转译功能,无法应付越来越复杂的网络环境,而逐渐被淘汰。
取而代之的ipchains,不但指令语法更容易理解,功能也较ipfw优越;ipchains允许自订规则组合(ruleset),称之为user-definechains,透过这种设计,我们可以将彼此相关的规则组合在一起,在需要的时候跳到该组规则进行过滤,有效将规则的数量大幅缩减,以往ipfw仅能进行循序过滤,导致规则又臭又长的毛病,就不药而愈了。
除了这个明显的好处以外,ipchains并能结合本身的端口对应功能和redir程序的封包转送机制,模拟出网址转译的能力,而满足NAT的完整需求,堪称为一套成熟的防火墙作品。
防火墙软件的出现,确实曾经让骇客们晚上睡不着觉,因为防火墙的阻隔能够有效让内部网络不设防的单机不致于暴露在外,也能有效降低服务器的能见度,减少被攻击的机会,骇客过去所用的网络探测技术因此受到严格的挑战,越来越多的攻击对象躲藏在防火墙后方,让骇客难以接近,因此必须针对新的情势,研究出新的探测技术,藉以规避防火墙的检查,达到发现目标并进而攻击入侵的目的,新的技术非常多,本文并不拟进一步讨论,请自行参考CERT组织的技术文件,网址是www.cert.org,想看中文请连到www.cert.org.tw。
iptables作为ipchains的新一代继承人,当然也针对骇客不断推陈出新的探测技术拟出一些因应之道,那就是对封包的联机状态,作出更详细的分析,例如:
是否为新联机或响应封包、是否为转向联机、联机是否失去响应,联机时间是否过长......等等,透过这样的分析能对一些可能被骇客利用的弱点加以阻隔(请详见后文的说明),另外也开发出真正的封包改写能力,不需要透过其它程序的协助来仿真网址转译,除此之外,iptables也获得系统核心的直接支持,不需要像ipchains那样需要自行重新编译核心。
iptables优越的性能使它取代了ipchains,成为网络防火墙的主流,而ipchains并未被淘汰,目前ipchains已经转型成单机防火墙,在安装新版Linux时,会自动被安装启用,以保护单机上未被使用的通讯端口。
参、iptables防火墙概论
iptables防火墙的指令非常类似于ipchains,使用过ipchains的人应该很容易上手,但是iptables的机制与ipchains有很大的不同,使用ipchains的概念来设定规则,将会使防火墙无法正常运作。
ipchains跟iptables最大的不同在于对INPUT、FORWARD、OUTPUT三个网络函式的定义不同,这三个网络函式是TCP/IP驱动程序的一部分,结构如下图所示,是介于网卡驱动程序和应用程序的中间,Linux核心预设会启用INPUT、OUTPUT和LOOPBACK,而FORWARD函式则必须自行启用,可以使用下面指令,或直接修改/etc/sysconfig/network组态档:
echo"1">/proc/sys/net/ipv4/ip_forward左图为ipchains概念下的运作图从上图可以知道ipchains如何处理封包的流动,分述如下:
•IPINPUT:
所有封包都由IPINPUT函式负责处理,所以设定过滤规则时,几乎都是设定在INPUT规则炼上。
•IPFORWARD:
目的IP非本机的IP,这些封包需要进一步作转送处理,此函式用来处理IP伪装和Port转送。
•IPOUTPUT:
所有流出的封包都由这个函式处理,通常不需设定任何规则。
iptables除了上述三支函式以外,还使用两个新的函式:
Prerouting、Postrouting。
现在来比较一下iptables的运作模式(loopback接口与上图相同,所以省略不画):
从上图可以知道iptables如何处理封包的流动,分述如下:
•IPINPUT:
只有要到达本机的封包才会由INPUT函式处理,所以会让来自内部网络的封包无条件放行,来自外部网络的封包则过滤是否为响应封包,若是则放行。
•PREROUTING:
需要转送处理的封包由此函式负责处理,此函式用来做目的地IP的转译动作(DNAT)。
•IPFORWARD:
所有转送封包都在这里处理,这部分的过滤规则最复杂。
•POSTROUTING:
转送封包送出之前,先透过这个函式进行来源IP的转译动作(SNAT)。
•IPOUTPUT:
从本机送出去的封包由这个函式处理,通常会放行所有封包。
iptables和ipchains都可以自行定义规则群组(rule-set),规则群组被称为规则炼(chains),前面所描述的函式,也都有相对应的规则炼(INPUT、FORWARD、OUTPUT、Prerouting、Postrouting),为了有别于自行定义的规则炼,这些规则炼我们就称为内建规则炼,其运作流程仿真如下图:
从上面两张假想图,学员们不难了解ipchains为什么要叫做chains,因为它是将所有规则串接成一个序列逐一检查过滤,就像一条铁链一样一个环接一个环,在过滤过程中只要符合其中一条规则就会立即进行处理,如果处理动作是跳到某个规则群组,则继续检查群组内之规则设定,但如果处理动作是ACCEPT、REJECT、DROP、REDIRECT或MASQUERADE,则会中断过滤程序,而不再继续检查后面的规则设定,在这样的结构之下,有时候规则顺序的对调会产生完全相反的结果,这一点在设定防火墙时不能不谨慎。
而iptables是采用规则堆栈的方式来进行过滤,当一个封包进入网卡,会先检查Prerouting,然后检查目的IP判断是否需要转送出去,接着就会跳到INPUT或Forward进行过滤,如果封包需转送处理则检查Postrouting,如果是来自本机封包,则检查OUTPUT以及Postrouting。
过程中如果符合某条规则将会进行处理,处理动作除了ACCEPT、REJECT、DROP、REDIRECT和MASQUERADE以外,还多出LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK等,其中某些处理动作不会中断过滤程序,某些处理动作则会中断同一规则炼的过滤,并依照前述流程继续进行下一个规则炼的过滤(注意:
这一点与ipchains不同),一直到堆栈中的规则检查完毕为止。
透过这种机制所带来的好处是,我们可以进行复杂、多重的封包过滤,简单的说,iptables可以进行纵横交错式的过滤(tables)而非炼状过滤(chains)。
虽然iptables为了扩充防火墙功能,而必须采用比较复杂的过滤流程,但在实际应用时,同一规则炼下的规则设定还是有先后顺序的关系,因此在设定规则时还是必须注意其中的逻辑。
肆、订定校园网络安全政策在实际设定防火墙之前,我们必须根据校园网络的安全需求,先拟定一份安全政策,拟定安全政策前必须搜集以下资料:
1.找出需要过滤保护的服务器
2.条列出被保护的服务器将提供何种网络服务
3.一般工作站,需要何种等级的保护
4.了解网络架构与服务器摆放位置根据这些数据,我们可以决定安全政策。
以石牌国小为例:
1.校内使用NAT虚拟网络,IP数量需要两组C,所有IP均需作IP伪装
2.校园内安全需求不高,服务器与工作站摆在同一网段,不需采用DMZ设计
3.由于服务器功能经常扩充,所有服务器均采用一对一对应,不使用port转送功能
4.所有工作站均能自由使用网络资源,不限制只能看网页5.服务器提供之服务包含:
dns、web、mail、ftp、wam、webmin、ssh、rdp、pcaw,不提供proxy及其它网络服务
6.为增进校园网络之安全性,采用正面表列方式进行封包过滤(定义想放行之封包,其余封包一律阻挡)还有一些网络安全须注意的事项,则是每所学校都应防范的,没有等差之别,例如:
联机被绑架、阻断式攻击、连接端口扫描......等。
伍、iptables指令语法:
iptables[-ttable]command[match][-jtarget/jump]
-t参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iptables 建置 Linux 防火墙