版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux网络管理1项目引入在Internet网络世界漫游,随时都可能遭到各种恶意攻击,这些恶意攻击可能导致的后果是上网账号被窃取冒用、银行账号被盗用、电子邮件密码被修改、财务数据被利用、机密文件丢失、隐私曝光等等,甚至黑客通过远程控制删除硬盘上所有的资料数据,使整个计算机系统架构全面崩溃。幸运的是,我们可以通过使用防火墙来降低这些风险。防火墙旨在检查往来于Internet间的信息。对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。“netfilter/iptablesIP信息包过滤系统”是集成到Linux内核的防火墙解决方案。Linux核心里的netfilter子系统除了完成的网络防火墙功能,还可以进行网络地址转换(NAT)、数据包(package)记录、流量统计等。iptables是用户操作netfilter的唯一工具接口。为叙述便利,以下叙述将不严格区分iptables与netfilter。2项目环境图是一种常见的网络环境拓扑图。本项目主要围绕主机—Linux防火墙/路由器构建进行设计,本项目中在“Linux防火墙/路由器”主机安装3块网卡。一块网卡(Linux系统识别为eth0,IP地址为)连接网段为192.168.0的局域网(LAN);另一块网卡(系统识别为eth1,IP地址为66)连接网段为192.168.1的局域网;第3块网卡(系统识别为eth2,IP地址可以为公网地址,也可以是上层局域网地址,本项目采用一个假设公有地址8)连接Internet或上层局域网。3项
目
10Linux防火墙实现——iptables基本任务:1)使用iptables搭建简单防火墙;2)使用ufw防火墙。拓展任务:1)构建一个更完善的防火墙;2)网络地址转换(NAT);3)iptables与Squid透明代理;4)使用FireStarter防火墙。4任务1使用iptables搭建简单防火墙本任务主要构建能够完成访问外部资源,但不提供服务的Linux桌面型主机安全策略。对常见的网络环境中选取一部分并简化作为任务实验环境,如图所示,局域网环境是通过上层LAN而不是直接连接Internet,构造如此环境并不影响测试。5iptables是通过一些规则、策略构成的表对通过数据包进行处理。iptables的语法相当多,可以分为规则清除,定义策略,添加,插入、删除规则等几种。以下将依照搭建防火墙的过程(规则清除→定义策略→添加、插入、删除规则→保存规则)进行。1.查看当前iptables信息iptables內建三个表:filter、nat以及mangle,每个表都被预先设置了一或多个代表各拦截点的链,其中filter预设的三个INPUT、FORWARD、OUTPUT链。对iptables设置规则实质是对iptables表的链设置规则,更详细的参考后文归纳说明部分或其他资料。在做进一步操作之前,我们先查看iptables表信息,初步了解iptables。61)查看filter表信息。使用“iptables–L”默认是查看表filter的链。在“Linux防火墙/路由器”主机输入如下(如果没有特殊说明,以下都将在“Linux防火墙/路由器”进行操作)。student@ubuntu:~$sudoiptables-LChainINPUT(policyACCEPT)//INPUT链默认策略为接受所有包targetprotoptsourcedestination//INPUT链没有设置规则ChainFORWARD(policyACCEPT)//FORWARD链默认策略为接受所有包targetprotoptsourcedestination//FORWARD链没有设置规则ChainOUTPUT(policyACCEPT)//OUTPUT链默认策略为接受所有包targetprotoptsourcedestination//OUTPUT链没有设置规则72)查看nat表的规则。从上看出Linux系统nat表有PREROUTING、POSTROUTING、OUTPUT链,默认策略对于任何包也都接受,并没有设置规则。student@ubuntu:~$sudoiptables-tnat-LChainPREROUTING(policyACCEPT)//PREROUTING链默认策略为接受所有包targetprotoptsourcedestinationChainPOSTROUTING(policyACCEPT)//POSTROUTING链默认策略为接受所有包targetprotoptsourcedestinationChainOUTPUT(policyACCEPT)//OUTPUT链默认策略为接受所有包targetprotoptsourcedestinationstudent@ubuntu:~$83)查看nat表的详细信息。student@ubuntu:~$sudoiptables-L-vChainINPUT(policyACCEPT683packets,53617bytes)//683表示INPUT链通过的数据包数量,53617表示通过数据量
pktsbytestargetprotoptinoutsourcedestinationChainFORWARD(policyACCEPT0packets,0bytes)//FORWARD链还没有数据包通过pktsbytestargetprotoptinoutsourcedestinationChainOUTPUT(policyACCEPT745packets,53775bytes)pktsbytestargetprotoptinoutsourcedestination92.规则清除一般设置iptables之前,首先要清除所有以前设置的规则。虽然很多情况下它什么也不做,但是保险起见,不妨小心一点吧。student@ubuntu:~$sudoiptables–F//清除默认表filter所有的设置规则student@ubuntu:~$sudoiptables–X//删除表filter中用户建立的链student@ubuntu:~$sudoiptables-tnat–F//清除表nat所有的设置规则student@ubuntu:~$sudoiptables-tnat-X//清除表nat中用户建立的链103.定义策略规则清除后,接下来就是对链定义策略,策略就是当链的规则都相符是数据包的默认动作。从上面查看表信息得知,iptables表的链没有设置规则,且对任何数据包的策略都是接受的。显然,这是一种过于宽松的防火墙。1)定义策略之前检查网络连通性student@ubuntu:~$ping-c3//测试回环网络接口lo┆3packetstransmitted,3received,0%packetloss,time2007msrttmin/avg/max/mdev=0.058/0.384/1.025/0.453msstudent@ubuntu:~$ping-c3//测试局域网络其他主机┆3packetstransmitted,3received,0%packetloss,time2003msrttmin/avg/max/mdev=0.209/3.032/8.624/3.954ms112)定义filter表的INPUT链策略首先,定义一个非常严格的策略。student@ubuntu:~$sudoiptables-PINPUTDROP//设置Filter的INPUT链策略为丢弃所有包INPUT链是处理那些进入Linux主机的数据包。上命令将会为构建一个非常“安全”的防火墙,很难有哪个黑客(hacker)能攻破这样的主机,因为它将所有从网络想进入你主机的数据丢弃(drop)了。这当然是安全过头了,此时主机将相当于没有网络。123)检测配置如果ping,就会发现屏幕一直停在那里,因为ping收不到任何回应,必须按“Ctrl+C”强行终止。student@ubuntu:~$sudoiptables–L//查看Filter表信息ChainINPUT(policyDROP)//Filter表的INPUT链策略为DROP,拒绝任何包通过targetprotoptsourcedestination┆student@ubuntu:~$ping-c3 //测试回环网络接口loPING()56(84)bytesofdata.---pingstatistics---3packetstransmitted,0received,100%packetloss,time2010msstudent@ubuntu:~$ping//测试本地局域网PING()56(84)bytesofdata.---pingstatistics---9packetstransmitted,0received,100%packetloss,time8041ms134)定义其他链策略虽然Ubuntu系统其他链默认策略为允许所有包,但保险起见还是重新设置。student@ubuntu:~$sudoiptables-POUTPUTACCRPT//Filter设置OUTPUT链策略允许所有包student@ubuntu:~$sudoiptables-PFORWARDACCRPT//FORWARD链策略允许所有包student@ubuntu:~$sudoiptables–tnat-PPREROUTINGACCRPT//策略允许所有包student@ubuntu:~$sudoiptables–tnat-POUTPUTACCRPT//策略允许所有包student@ubuntu:~$sudoiptables–tnat-PPOSTROUTINGACCRPT//策略允许所有包144.定义规则1)连通局域网通过上面定义的策略,Linux主机就好比是一个没有网卡的主机。以下的规则将使主机能够与局域网连通。student@ubuntu:~$iptables-AINPUT-i!eth1-jACCEPT这条规则的意思是:接受所有来源不是网络接口eth1的数据。前面已经说明,Linux主机有三块网卡,因此将有四个网络接口:eth0、eth1分别连接不同局域网,loop是回环网(localhost),eth2连接internet或上层网络接口(如果是采用在是adsl上网,规则修改为“iptables-AINPUT-i!ppp0-jACCEPT),因此添加上述规则,即允许了局域网的访问,当然也可以访问lo接口。152)检测测试回环地址与局域网其他主机。结果显示通过主机与eth0接口连接的局域网络连通。student@ubuntu:~$sudoiptables-L–v//查看filter规则,注意INPUT链规则变化ChainINPUT(policyDROP820packets,51677bytes)pktsbytestargetprotoptinoutsourcedestination72240969ACCEPTall--!eth1anyanywhereanywhere//上条记录就是刚添加的规则┆student@ubuntu:~$ping-c3//测试回环网络接口lo┆3packetstransmitted,3received,0%packetloss,time1998msrttmin/avg/max/mdev=0.128/0.122/0.125/0.009msstudent@ubuntu:~$ping-c3//测试局域网络其他主机┆3packetstransmitted,3received,0%packetloss,time1999msrttmin/avg/max/mdev=0.262/0.293/0.339/0.038ms163)允许主机访问Web站点虽然能够进行本地局域网络访问了,但我们主机还不能访问Internet上Web站点,添加如下规则。student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--sport80-jACCEPT允许来自网络接口eth1(eth1接口能够通过上层LAN能够连接internet),并且来源端口是80的数据进入你的计算机(80端口正是www服务所使用的端口)。查看一下查看Filter表信息,显示如下。student@ubuntu:~$sudoiptables-L-v//查看规则ChainINPUT(policyDROP233packets,23252bytes)pktsbytestargetprotoptinoutsourcedestination262K12MACCEPTall--!eth1anyanywhereanywhere00ACCEPTtcp--eth1anyanywhereanywheretcpspt:www┆17到目前为止,应该能够连接Internet浏览网页,在主机浏览器中分别输入(百度网站的IP地址,建议输入之前在其他计算机上重新确认IP是否正确)与测试。图12.7所示是测试显示结果,其中上部分是直接使用IP地址,下半部分是使用域名。测试表明,使用IP地址能够访问,而使用域名出问题了,怎么回事啊,自己先想想吧。184)打开dns端口使用IP地址能够访问,而使用域名出问题了,问题肯定就出现在域名解析上。因为域名解析使用与Web不同的端口,因此要打开端口53。student@ubuntu:~$sudoiptables-AINPUT-ieth1-pudp--sport53-jACCEPT注意,域名解析使用的是udp协议。查看Filter表信息,显示如下。student@ubuntu:/etc/iptables$sudoiptables-L–v//查看规则ChainINPUT(policyDROP319packets,40985bytes)pktsbytestargetprotoptinoutsourcedestination262K13MACCEPTall--!eth1anyanywhereanywhere1358830KACCEPTtcp--eth1anyanywhereanywheretcpspt:www00ACCEPTudp--eth1anyanywhereanywhereudpspt:domain┆19在主机浏览器中再使用IP地址与域名测试,图12.8所示是测试显示结果,其中上部分是直接使用IP地址,下半部分是使用域名。205.存储/恢复iptables表iptables设置的规则在系统重新启动后将消失,因此必须进行规则保存。student@ubuntu:~$sudosh-c"iptables-save>iptabels-rule“iptables-save是存储规则的命令,但默认是在屏幕显示,因此要使用输出重定向符定向到文件。如果要恢复保存的规则,如下。student@ubuntu:~$sudosh-c"iptables-restore>iptabels-rule"21任务2使用ufw防火墙ufw是Ubuntu下的一个简易的防火墙配置工具,底层还是调用iptables来处理的,虽然功能较简单,但对桌面型应用来说比较实用,基本常用功能都有,使用也较为容易。演示22相关知识iptables机制iptables能够为Linux个人计算机系统创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。iptables只读取数据包头,不会给信息流增加负担,也无需进行验证。23相关知识1.表、拦截点、链iptables将许多组繁杂的规则集成组织成容易管理的形式,以便管理员可以进行分组测试,或关闭、启动某组规则。Linux核心的包处理流程中,共设置了五个拦截点(hookpoints),分别是PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT。內建链只能作用在这些拦截点;可以针对每个拦截点设置一系列处理规则,每条规则各代表一次影响(或监测)包处理流程的机会。拦截点的作用,以及各拦截适合处理的包类型,见表。拦截点适合处理的包类型FORWARD要通过主机的包,从一个网络接口进去,然后从另一个网络接口出去INPUT即将交给本机进程处理的包OUTPUT本机进程刚刚产生的包POSTROUTING即将从网络接口发出的包PREROUTING刚刚抵达网络接口的有效包24另一面,为用户操作方便,iptables依据应用內建三个表:filter、nat以及mangle,每个表都被预先设置了一或多个代表各拦截点的链。例如,filter预设的三个FORWARD、INPUT、OUTPUT链。这三个內建表的作用,参考表拓展:我们常看到很多资料有着“nat表格的PREROUTING链”这样的提法,隐喻着链是属于表格。然而,链与表格两者之间并没有统属关系,最多只有隐讳的关联性而已。链(chains)的真正含意是“包(package)路径上的拦截点”,而表格(tables)则是象征“处理效果”。然而,为了表达上的方便,这里仍免不了出现“某表格的某链”之类的表述。表用途说明nat已经“连线追踪”(connettiontracking)机制提供的线索来修改包的来源地址或目的地址,以达成连线追踪的效果,nat表内建的链PREROUTING、POSTROUTING以及OUTPUT。filter用于设定“入境、穿越、出境”三种性质的处理原则,内建的filter表的链包括INPUT、FORWARD以及OUTPUT。使用iptables时,如果没有刻意以-t指出要操作的表,iptables就假设你要操作filter表mangle用于执行特殊的包内容修改,例如裁掉IPoptions(需搭配扩展模组)mangle表内建的链包括PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT25图10.6、10.7、10.8所示分別展示了表与链的三种有效组合,以及各种组合所象征的包处理流程。其中图12.6所示是包经过“网络地址转换”(NAT)的流程,相关链是作用于nat表。图10.7所示是包流经“包过滤系统”的流程,相关链是作用于filter(过滤)表。图10.8所示是包流经“包内容调整系统”的流程,相关链是作用于mangle表。但为了讲述简便,本书将不详细介绍mangle表。图10.6nat表与相关链图10.7filter表与相关链图10.8mangle表与相关链262.包(package)的流程当包流经链时,必须依序通过该链里每一条规则的检验。若包符合某条规则的“筛选条件”(match),则将包交给该规则的“目标”(target)来处理,否则,就继续由同链里的下一条规则予以检验。倘若包顺利通过链里的所有规则(不符合任何规则的筛选条件),则以链结的“策略”。包实际会经过哪些链,取决于包本身的性质(转交、输入、输出、绕回),表12.3到表12.6分別列出各种性质包的路径顺序。图12.6、图12.7和图12.8所示是单看特定表时,包如何通过该表各链的详细流程。27iptables语法iptables的语法相当的多,这些语法分成规则清除、定义政策以及新增与插入规则、三部分来说明1.清除规则与观察规则1)观察规则iptables在一开始的时候,应该是没有规则的,不过,也可能在安装的时候就有选择系统自动帮您建立防火墙机制,此时系统就会有预设的防火墙规则。查看规则命令格式:iptables[-ttables][-L][-n]参数说明:-t:后面接iptables的table,例如nat或filter,如果没有-ttable
,那么默认就是-tfilter这个table;-L:列出目前的table的规则;-n:不进行IP与HOSTNAME的转换,屏幕显示讯息的速度会快很多。-v显示规则详细信息。282)清除规则清除规则命令格式:iptables[-ttables][-FXZ]参数说明:-F:清除所有的已订定的规则;-X:杀掉所有使用者建立的chain(应该说的是tables);-Z:将所有的链的计数与流量统计都清零。例,清除filter表规则student@ubuntu:~$sudoiptables–F//清除默认表filter所有的设置规则student@ubuntu:~$sudoiptables–X//删除表filter中用户建立的链student@ubuntu:~$sudoiptables–Z//将表filter计数与流量统计都清零请注意,如果在远程连机的时候管理iptables,这三个指令必须要用scripts来连续执行,不然肯定会让被主机挡在门外。292.定义政策定义规则命令格式:iptables[-ttables][-P][INPUT,OUTPUT,FORWARD,PREROUTING,OUTPUT,POSTROUTING][ACCEPT,DROP]参数说明:-P:定义政策(Policy)。注意,这个P为大写;INPUT:数据包为输入主机的方向;OUTPUT:数据包为输出主机的方向;FORWARD:数据包为不进入主机而向外再传输出去的方向;PREROUTING:在进入路由之前进行的工作;OUTPUT:数据包为输出主机的方向;POSTROUTING:在进入路由之后进行的工作;ACCEPT:放任数据包进入下以阶段处理;DROP:终结包的后续流程。链的策略主要有ACCEPT与DROP,对于自订链的策略都固定是RETURN,不能改变。303.新增与插入规则新增与插入规则较语法复杂,大概格式是:命令+操作表格+过滤条件+处置动作构成。具体格式如下:iptables[-tfilter][-AIINPUT,OUTPUT,FORWARD][-iointerface][-ptcp,udp,icmp,all][-sIP/network][--sportports][-dIP/network][--dportports]-j[ACCEPT,DROP]参数说明:-A:新增加一条规则,该规则增加在最后面,例如原本已经有四条规则,使用-A就可以加上第五条规则!-I:插入一条规则,如果没有设定规则顺序,预设是插入变成第一条规则,例如原本有四条规则,使用-I则该规则变成第一条,而原本四条变成2~5INPUT:规则设定为filtertable的INPUT链OUTPUT:规则设定为filtertable的OUTPUT链FORWARD:规则设定为filtertable的FORWARD链-i:设定数据包进入的网络接口-o:设定数据包流出的网络接口Interface:网络卡接口,例如eth0,eth1,ppp0等31-p:请注意,小写,数据包的协议。tcp:数据包为TCP协议的包;upd:数据包为UDP协议的包;icmp:数据包为ICMP协议;all:表示为所有的包。-s:来源数据包的IP或者是Network(网域)--sport:来源数据包的端口号,也课使用port1:port2,如21:23,表示允许21,22,23通过-d:目标主机的IP或者是Network(网域)--dport:目标主机的port号码-j:动作,通常是以下的动作;ACCEPT:接受该封包DROP:丢弃封包LOG:将该封包的信息记录下来(默认记录到/var/log/messages文件)以上新增与插入规则只是针对主机设置的这一部分,还有更多的,比如针对NAT的规则、针对硬件地址(MAC)分析规则等需要参考资料。324.保存与恢复防火墙规则这主要涉及两个iptables命令。1)保存规则iptables-save>将防火墙机制储存成那个文件,该文件为ASCII格式,可以进入查看。2)恢复规则iptables-restore<将那个防火墙文件的规则读入目前的Linux主机环境中。33拓展提高1)构建一个更完善的防火墙;2)网络地址转换(NAT);3)iptables与Squid透明代理;4)使用FireStarter防火墙。34任务1构建一个更完善的防火墙使用iptables搭建简单防火墙已经能够完成本地局域网相互访问,Linux主机也能够访问Internet,但如果Linux主机还提供Web、邮件服务等服务,简单服务器设置能满足要求吗?另外,一些更安全的规则也应该考虑。351.主机提供服务以下过程要在Linux主机保证运行了Apache服务器。1)配置前测试在上层局域网的主机6上打开浏览器,输入Linux主机地址66,访问Linux主机web站点;在本地局域网主机上打开浏览器,输入Linux主机地址,访问Linux主机web站点。以上两种操作,正常情况上层局域网的主机不能访问Web站点,而本地局域可以正确访问。2)添加规则允许Web服务student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport80-jACCEPT允许eth1上目的端口是80的数据包进入主机。363)添加规则后测试在上层局域网的主机打开浏览器,输入Linux主机地址66,访问Linux主机web站点;4)添加规则允许邮件服务邮件服务使用的是25、110两端口,添加规则允许进入。student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport25-jACCEPTstudent@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport110-jACCEPT对于其他服务,依照上述方法打开相应的端口。372、安全规则1)限制icmp包icmp包通常用于网络测试等,黑客常常采用icmp进行攻击。当其他主机使用ping命令(ping命令使用icmp包)测试时,主机不响应。student@ubuntu:~$sudoiptables–IINPUT-picmp–icmp-type8–jDROP注意,这里使用的是-I参数把规则添加到第一条。如果要保护局域网络其他主机对ping命令不响应可以使用如下规则。student@ubuntu:~$sudoiptables–IFORWARD-picmp–icmp-type8–jDROP添加完上述规则后在本地局域网ping一下Linux主机,测试一下。其实完全限制也并不可取,对于上述两条规则更好的是采用limit匹配扩展加以限制,规则如下。student@ubuntu:~$sudoiptables-AFORWARD-picmp-mlimit--limit1/s--limit-burst10-jACCEPTstudent@ubuntu:~$sudoiptables-AFORWARD-picmp-mlimit--limit1/s--limit-burst10-jACCEPT对不管来自哪里的icmp包都进行限制,允许每秒通过一个包,该限制触发的条件是10个包。382)处理ip碎片在TCP/IP通讯过程中,每一个网络接口都有一个最大传输单元(MTU),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数个数据包(称之为ip碎片)来传输,而接收方则对这些ip碎片再进行重组以还原整个包。完全允许ip碎片通过是有安全隐患的,对于这一点可以采用iptables的匹配扩展来进行限制。student@ubuntu:~$sudoiptables-AINPUT-f-mlimit--limit100/s--limit-burst100-jACCEPTstudent@ubuntu:~$sudoiptables-AFORWARD-f-mlimit--limit100/s--limit-burst100-jACCEPT对不管来自哪里的ip碎片都进行限制,允许每秒通100个ip碎片,该限制触发的条件是100个ip碎片。39任务2网络地址转换(NAT)到目前为止,还有一个非常重要的问题,就是局域网主机之间互访,局域网主机通过防火墙主机访问Internet,或者Internet主机通过防火墙访问本地局域网主机,要实现这就涉及到网络地址转换(NAT)。401.路由器网段的局域网与网段的局域网出于不同的网段,要实现两者之间的相互访问必须要求Linux防火墙主机能够实现路由功能,图12.12所示是一种典型多个局域网网络拓扑图。411)配置局域网主机实现实验环境网段192.168.0的局域网主机的网关要求是,网段192.168.1的局域网主机的网关要求是66。如果主机是Linux,添加一条网络路由方法如下。student@ubuntu:~$routeadd-netnetmaskgwdeveth0如果主机是Windows,要添加一条网络路由,在终端输入如下命令:routeaddmaskmetric1422)设置Linux防火墙主机要使Linux主机启动路由能力,必须将ip_forward功能打开,执行下面命令就可以。root@ubuntu:~#echo"1">/proc/sys/net/ipv4/ip_forward注意,开启路由必须在root用户下,使用sudo工具是完成不了的。如果想要在开机的时候就将ip_forward打开,可以修改/etc/sysctl.conf文件,把以下语句前的注释符去掉。net.ipv4.ip_forward=1433)测试在主机使用ping命令。student@ubuntu:~$ping-c36┆3packetstransmitted,3received,0%packetloss,time1998msrttmin/avg/max/mdev=0.589/0.704/0.830/0.101ms结果显示能够访问另外局域网主机。442.SourceNAT通常情况,使用局域网的私有IP地址是不能直接在Internet上使用。到目前为止,不同局域网主机已经能够互相访问了,但要使局域网主机能够访问Internet站点(比如,百度搜索网站)还需要Linux主机具有SourceNAT(SNAT)功能,其实通常的NAT服务器就是指这种服务器。45图12.13所示局域网连接Internet两种方式,对于大型企业单位,由于网络单元众多,更多的是采取第二种多层局域网络方式,目前我们学校机房就是采用这种方式,这里采用第二种模式作为SNAT实验环境。461)配置主机实现实验环境网段192.168.0的局域网主机的网关要求是,上层网段192.168.1的局域网主机的网关应该是更上层局域网地址或直接Internet公网地址。2)设置Linux防火墙主机SourceNAT的动作用“-jSNAT'”来指定,同时“--tosource'”指定一个IP地址或一段IP地址以及一个可选的端口。student@ubuntu:~$sudoiptables-tnat-APOSTROUTING-oeth1-jSNAT–to66有一个SNAT的特例叫做包伪装它只用于动态分配的IP地址,例如拨号上网。student@ubuntu:~$iptables-tnat-APOSTROUTING-oppp0-jMASQUERADE473)测试在主机使用ping命令。student@ubuntu:~$ping-c3如果能够ping通,说明SourceNAT配置成功,局域网主机能够访问Internet。483.DestinationNAT局域网主机可以访问Internet上的Web、Mail的服务器了,考虑安全性,Web服务器通常放在Linux防火墙主机后部的局域网内部主机上,目前为止,局域网内部主机可以连接Internet了,但Internet上主机还不能够访问Linux防火墙主机后部的Web服务器,要实现Internet能够访问局域网上的Web服务器,Linux主机还要具有DestinationNAT(DNAT)功能。491)实验环境实验环境与SourceNAT相同。2)设置Linux防火墙主机DNAT动作用“-jDNAT”来指定使用同时用“--todestination'”选项指定一个IP地址或一段IP地址,以及可以配选一个端口或一段端口值域。student@ubuntu:~$sudoiptables-tnat-APREROUTING-ieth1-ptcp--dport80-jDNAT--to:80如果端口监测标准端口80而是8080,要求修改为以下命令。student@ubuntu:~$sudoiptables-tnat-APREROUTING-ieth1-ptcp--dport80-jDNAT--to:8080503)检测查看nat表信息。以上是配置了DNAT与SNAT的nat表显示情况。如果没有问题,在上层局域网上主机浏览器中输入66就可以访问局域网主机上的Web服务器(为检测准确,首先应确定66没有运行Web服务器)。student@ubuntu:~$sudoiptables-L-tnat-vChainPREROUTING(policyACCEPT64packets,6157bytes)pktsbytestargetprotoptinoutsourcedestination00DNATtcp--eth1anyanywhereanywheretcpdpt:ChainPOSTROUTING(policyACCEPT27packets,1800bytes)pktsbytestargetprotoptinoutsourcedestination15911SNATall--anyeth1/24anywhereto:66ChainOUTPUT(policyACCEPT24packets,1610bytes)pktsbytestargetprotoptinoutsourcedestination514)用Shell脚本处理规则一个iptables防火墙规则众多,可以使用Shell脚本简化工作。#!/bin/bash#这个script是建立防火墙,基本规则定义为“拒绝所有,开放特定”的模式
EXTIF="eth2"#定义连接Internet或上层网络接口
INIF="eth0"#内部网络接口
INNET="/24"
#内部网段Open_ports="8011025"#自己机器对外开放的端口Allow_ports="80532021"#internet的数据可以进入自己机器的端口#清除所有的防火墙规则
/sbin/iptables-F
/sbin/iptables-X
/sbin/iptables-Z
/sbin/iptables-F-tnat
/sbin/iptables-X-tnat
/sbin/iptables-Z-tnat#定义防火墙策略
/sbin/iptables-PINPUT
DROP
/sbin/iptables-POUTPUT
ACCEPT
/sbin/iptables-PFORWARDACCEPT
/sbin/iptables-tnat-PPREROUTING
ACCEPT
/sbin/iptables-tnat-PPOSTROUTINGACCEPT/sbin/iptables-tnat-POUTPUT
ACCEPT#先允许信任网域,这包含lo这个内部循环接口,以及刚刚指定的内部接口网络#
重点是可以启动Linux成为NAT主机/sbin/iptables-AINPUT-ilo
-jACCEPT
524)用Shell脚本处理规则一个iptables防火墙规则众多,可以使用Shell脚本简化工作。
if["$INIF"!=""];then
/sbin/iptables-AINPUT-i$INIF-jACCEPT
echo"1">/proc/sys/net/ipv4/ip_forward
/sbin/iptables-tnat-APOSTROUTING-s$INNET-o$EXTIF-jMASQUERADE
fi#允许ICMP封包与允许已建立的联机通过
/sbin/iptables-AINPUT-mstate--stateESTABLISHED,RELATED-j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨创伤的诊断与外科治疗
- 犊牛肺炎并发症及护理
- 糖尿病性神经病变
- 通信实验室安全教育
- 2.3.1 物质的量单位-摩尔 课件高一上学期化学人教版(2019)必修第一册
- 2.1.1+共价键++课件高二上学期化学人教版(2019)选择性必修2
- 智慧酒店规划设计方案
- 美术老师述职报告
- 物联网工程知识点
- 水源污染应急处置
- 三高共管六病同防诊疗路径与一体化服务指南(2022版)20-39-30
- DB37-T 3656-2019地质灾害治理工程监理技术规范
- 装饰、装修安全教育培训试卷+答案
- 娱乐场所备案登记表样表
- 北京版小学数学二年级上册《探索规律》课件
- 医务科督导检查表格模板
- 急性颅脑损伤患者抢救流程图
- 医院糖尿病小组工作总结及工作计划
- 《沐浴心育阳光 健康快乐成长》心理健康主题班会课件
- 小学生心理健康讲座ppt
- GB∕T 20973-2020 膨润土-行业标准
评论
0/150
提交评论