版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux网络管理项目引入在Internet网络世界漫游,随时都可能遭到各种恶意攻击,这些恶意攻击可能导致的后果是上网账号被窃取冒用、银行账号被盗用、电子邮件密码被修改、财务数据被利用、机密文件丢失、隐私曝光等等,甚至黑客通过远程控制删除硬盘上所有的资料数据,使整个计算机系统架构全面崩溃。幸运的是,我们可以通过使用防火墙来降低这些风险。防火墙旨在检查往来于Internet间的信息。对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。“netfilter/iptablesIP信息包过滤系统”是集成到Linux内核的防火墙解决方案。Linux核心里的netfilter子系统除了完成的网络防火墙功能,还可以进行网络地址转换(NAT)、数据包(package)记录、流量统计等。iptables是用户操作netfilter的唯一工具接口。为叙述便利,以下叙述将不严格区分iptables与netfilter。项目环境图是一种常见的网络环境拓扑图。本项目主要围绕主机—Linux防火墙/路由器构建进行设计,本项目中在“Linux防火墙/路由器”主机安装3块网卡。一块网卡(Linux系统识别为eth0,IP地址为)连接网段为192.168.0的局域网(LAN);另一块网卡(系统识别为eth1,IP地址为66)连接网段为192.168.1的局域网;第3块网卡(系统识别为eth2,IP地址可以为公网地址,也可以是上层局域网地址,本项目采用一个假设公有地址8)连接Internet或上层局域网。项
目
10Linux防火墙实现——iptables基本任务:1)使用iptables搭建简单防火墙;2)使用ufw防火墙。拓展任务:1)构建一个更完善的防火墙;2)网络地址转换(NAT);3)iptables与Squid透明代理;4)使用FireStarter防火墙。任务1使用iptables搭建简单防火墙本任务主要构建能够完成访问外部资源,但不提供服务的Linux桌面型主机安全策略。对常见的网络环境中选取一部分并简化作为任务实验环境,如图所示,局域网环境是通过上层LAN而不是直接连接Internet,构造如此环境并不影响测试。iptables是通过一些规则、策略构成的表对通过数据包进行处理。iptables的语法相当多,可以分为规则清除,定义策略,添加,插入、删除规则等几种。以下将依照搭建防火墙的过程(规则清除→定义策略→添加、插入、删除规则→保存规则)进行。1.查看当前iptables信息iptables內建三个表:filter、nat以及mangle,每个表都被预先设置了一或多个代表各拦截点的链,其中filter预设的三个INPUT、FORWARD、OUTPUT链。对iptables设置规则实质是对iptables表的链设置规则,更详细的参考后文归纳说明部分或其他资料。在做进一步操作之前,我们先查看iptables表信息,初步了解iptables。1)查看filter表信息。使用“iptables–L”默认是查看表filter的链。在“Linux防火墙/路由器”主机输入如下(如果没有特殊说明,以下都将在“Linux防火墙/路由器”进行操作)。student@ubuntu:~$sudoiptables-LChainINPUT(policyACCEPT)//INPUT链默认策略为接受所有包targetprotoptsourcedestination//INPUT链没有设置规则ChainFORWARD(policyACCEPT)//FORWARD链默认策略为接受所有包targetprotoptsourcedestination//FORWARD链没有设置规则ChainOUTPUT(policyACCEPT)//OUTPUT链默认策略为接受所有包targetprotoptsourcedestination//OUTPUT链没有设置规则2)查看nat表的规则。从上看出Linux系统nat表有PREROUTING、POSTROUTING、OUTPUT链,默认策略对于任何包也都接受,并没有设置规则。student@ubuntu:~$sudoiptables-tnat-LChainPREROUTING(policyACCEPT)//PREROUTING链默认策略为接受所有包targetprotoptsourcedestinationChainPOSTROUTING(policyACCEPT)//POSTROUTING链默认策略为接受所有包targetprotoptsourcedestinationChainOUTPUT(policyACCEPT)//OUTPUT链默认策略为接受所有包targetprotoptsourcedestinationstudent@ubuntu:~$3)查看nat表的详细信息。student@ubuntu:~$sudoiptables-L-vChainINPUT(policyACCEPT683packets,53617bytes)//683表示INPUT链通过的数据包数量,53617表示通过数据量
pktsbytestargetprotoptinoutsourcedestinationChainFORWARD(policyACCEPT0packets,0bytes)//FORWARD链还没有数据包通过pktsbytestargetprotoptinoutsourcedestinationChainOUTPUT(policyACCEPT745packets,53775bytes)pktsbytestargetprotoptinoutsourcedestination2.规则清除一般设置iptables之前,首先要清除所有以前设置的规则。虽然很多情况下它什么也不做,但是保险起见,不妨小心一点吧。student@ubuntu:~$sudoiptables–F//清除默认表filter所有的设置规则student@ubuntu:~$sudoiptables–X//删除表filter中用户建立的链student@ubuntu:~$sudoiptables-tnat–F//清除表nat所有的设置规则student@ubuntu:~$sudoiptables-tnat-X//清除表nat中用户建立的链3.定义义策略规则清除除后,接接下来就就是对链链定义策策略,策策略就是是当链的的规则都都相符是是数据包包的默认认动作。。从上面面查看表表信息得得知,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.954ms2)定义义filter表的INPUT链策策略首先,定定义一个个非常严严格的策策略。student@ubuntu:~$sudoiptables-PINPUTDROP//设设置Filter的的INPUT链链策略为为丢弃所所有包INPUT链是是处理那那些进入入Linux主主机的数数据包。。上命令令将会为为构建一一个非常常“安全全”的防防火墙,,很难有有哪个黑黑客(hacker))能攻破破这样的的主机,,因为它它将所有有从网络络想进入入你主机机的数据据丢弃(drop)了了。这这当然是是安全过过头了,,此时主主机将相相当于没没有网络络。3)检测测配置如果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,time8041ms4)定义义其他链链策略虽然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//策略允许所有包4.定义义规则1)连通通局域网网通过上面面定义的的策略,,Linux主主机就好好比是一一个没有有网卡的的主机。。以下的的规则将将使主机机能够与与局域网网连通。。student@ubuntu:~$iptables-AINPUT-i!eth1-jACCEPT这这条规则则的意思思是:接接受所有有来源不不是网络络接口eth1的数据据。前面面已经说说明,Linux主机机有三块块网卡,,因此将将有四个个网络接接口:eth0、eth1分分别连接接不同局局域网,,loop是回回环网((localhost),eth2连接internet或上上层网络络接口((如果是是采用在在是adsl上上网,规规则修改改为“iptables-AINPUT-i!ppp0-jACCEPT),因因此添加加上述规规则,即即允许了了局域网网的访问问,当然然也可以以访问lo接口口。2))检检测测测试试回回环环地地址址与与局局域域网网其其他他主主机机。。结果果显显示示通通过过主主机机与与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.038ms4))打打开开dns端端口口使用用IP地址址能能够够访访问问,,而而使使用用域域名名出出问问题题了了,,问问题题肯肯定定就就出出现现在在域域名名解解析析上上。。因因为为域域名名解解析析使使用用与与Web不同同的的端端口口,,因因此此要要打打开开端端口口53。student@ubuntu:~$sudoiptables-AINPUT-ieth1-pudp--sport53-jACCEPT注意意,,域域名名解解析析使使用用的的是是udp协议议。。查看看Filter表表信信息息,,显显示示如如下下。。在主主机机浏浏览览器器中中再再使使用用IP地址址与与域域名名测测试试,,图图12.8所示示是是测测试试显显示示结结果果,,其其中中上上部部分分是是直直接接使使用用IP地址址,,下下半半部部分分是是使使用用域域名名。。5.存存储储/恢恢复复iptables表表iptables设置置的的规规则则在在系系统统重重新新启启动动后后将将消消失失,,因因此此必必须须进进行行规规则则保保存存。。student@ubuntu:~$sudosh-c"iptables-save>iptabels-rule““iptables-save是是存存储储规规则则的的命命令令,,但但默默认认是是在在屏屏幕幕显显示示,,因因此此要要使使用用输输出出重重定定向向符符定定向向到到文文件件。。如果果要要恢恢复复保保存存的的规规则则,,如如下下。。student@ubuntu:~$sudosh-c"iptables-restore>iptabels-rule"任务务2使使用用ufw防防火火墙墙ufw是是Ubuntu下下的的一一个个简简易易的的防防火火墙墙配配置置工工具具,,底底层层还还是是调调用用iptables来来处处理理的的,,虽虽然然功功能能较较简简单单,,但但对对桌桌面面型型应应用用来来说说比比较较实实用用,,基基本本常常用用功功能能都都有有,,使使用用也也较较为为容容易易。。演示示相关关知知识识iptables机机制制iptables能能够够为为Linux个个人人计计算算机机系系统统创创建建一一个个防防火火墙墙,,也也可可以以为为一一个个子子网网创创建建防防火火墙墙以以保保护护其其它它的的系系统统平平台台。。iptables只只读读取取数数据据包包头头,,不不会会给给信信息息流流增增加加负负担担,,也也无无需需进进行行验验证证。。相关关知知识识1.表表、、拦拦截截点点、、链链iptables将将许许多多组组繁繁杂杂的的规规则则集集成成组组织织成成容容易易管管理理的的形形式式,,以以便便管管理理员员可可以以进进行行分分组组测测试试,,或或关关闭闭、、启启动动某某组组规规则则。。Linux核核心心的的包包处处理理流流程程中中,,共共设设置置了了五五个个拦拦截截点点(hookpoints),,分分别别是是PREROUTING、、INPUT、、FORWARD、、POSTROUTING以以及及OUTPUT。。內內建建链链只只能能作作用用在在这这些些拦拦截截点点;;可可以以针针对对每每个个拦拦截截点点设设置置一一系系列列处处理理规规则则,,每每条条规规则则各各代代表表一一次次影影响响(或或监监测测)包包处处理理流流程程的的机机会会。。拦截点的的作用,,以及各各拦截适适合处理理的包类类型,见见表。拦截点适合处理的包类型FORWARD要通过主机的包,从一个网络接口进去,然后从另一个网络接口出去INPUT即将交给本机进程处理的包OUTPUT本机进程刚刚产生的包POSTROUTING即将从网络接口发出的包PREROUTING刚刚抵达网络接口的有效包另一面,,为用户户操作方方便,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以及OUTPUT图10.6、10.7、10.8所所示分別別展示了了表与链链的三种种有效组组合,以以及各种种组合所所象征的的包处理理流程。。其中图图12.6所示示是包经经过“网网络地址址转换””(NAT)的的流程,,相关链链是作用用于nat表。。图10.7所示示是包流流经“包包过滤系系统”的的流程,,相关链链是作用用于filter(过过滤)表表。图10.8所示示是包流流经“包包内容调调整系统统”的流流程,相相关链是是作用于于mangle表。但但为了讲讲述简便便,本书书将不详详细介绍绍mangle表。图10.6nat表与相关链图10.7filter表与相关链图10.8mangle表与相关链2.包((package)的的流程当包流经经链时,,必须依依序通过过该链里里每一条条规则的的检验。。若包符符合某条条规则的的“筛选选条件””(match),则则将包交交给该规规则的““目标””(target)来来处理,,否则,,就继续续由同链链里的下下一条规规则予以以检验。。倘若包包顺利通通过链里里的所有有规则(不符合合任何规规则的筛筛选条件件),则则以链结结的“策策略”。。包实际会会经过哪哪些链,,取决于于包本身身的性质质(转交交、输入入、输出出、绕回回),表表12.3到表表12.6分別別列出各各种性质质包的路路径顺序序。图12.6、图12.7和图12.8所示是是单看特特定表时时,包如如何通过过该表各各链的详详细流程程。iptables语法法iptables的的语法相相当的多多,这些些语法分分成规则则清除、、定义政政策以及及新增与与插入规规则、三三部分来来说明1.清除除规则与与观察规规则1)观察察规则iptables在在一开始始的时候候,应该该是没有有规则的的,不过过,也可可能在安安装的时时候就有有选择系系统自动动帮您建建立防火火墙机制制,此时时系统就就会有预预设的防防火墙规规则。查看规则则命令格格式:iptables[-ttables][-L][-n]参数说明明:-t:后后面接iptables的的table,,例如nat或filter,如如果没有有-ttable
,那那么默认认就是-tfilter这个个table;-L:列列出目前前的table的的规则;;-n:不不进行IP与与HOSTNAME的的转换,,屏幕显显示讯息息的速度度会快很很多。-v显显示规则则详细信信息。2)清除除规则清除规则则命令格格式: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来来连续续执行,,不然肯肯定会让让被主机机挡在门门外。2.定义义政策定义规则则命令格格式: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,不能能改变。。3.新增增与插入入规则新增与插插入规则则较语法法复杂,,大概格格式是::命令+操作表表格+过过滤条件件+处置置动作构构成。具具体格式式如下::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等-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)分析析规则等需需要参考资资料。4.保存与与恢复防火火墙规则这主要涉及及两个iptables命令令。1)保存规规则iptables-save>filename将防火墙机机制储存成成filename那个个文件,该该文件为ASCII格式,,可以进入入查看。2)恢复规规则iptables-restore<filename将filename那个个防火墙文文件的规则则读入目前前的Linux主主机环境境中。拓展提提高1)构建一一个更完善善的防火墙墙;2)网络地地址转换((NAT));3)iptables与Squid透透明代理;;4)使用FireStarter防火火墙。任务1构建建一个更完完善的防火火墙使用iptables搭建建简单防火火墙已经能能够完成本本地局域网网相互访问问,Linux主机机也能够访访问Internet,但如如果Linux主机机还提供Web、邮邮件服务等等服务,简简单服务器器设置能满满足要求吗吗?另外,,一些更安安全的规则则也应该考考虑。1.主机提提供服务以下过程要要在Linux主机机保证运行行了Apache服服务器。1)配置前前测试在上层局域域网的主机机6上打开浏浏览器,输输入Linux主机机地址66,,访问Linux主主机web站点;在在本地局域域网主机上打打开浏览器器,输入Linux主机地址址,,访问Linux主主机web站点。以上两种操操作,正常常情况上层层局域网的的主机不能能访问Web站点,,而本地局局域可以正正确访问。。2)添加规规则允许Web服务务student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport80-jACCEPT允许eth1上目的的端口是80的数据据包进入主主机。3)添加规规则后测试试在上层局域域网的主机机打开浏览览器,输入入Linux主机地地址66,访访问Linux主机机web站站点;4)添加规规则允许邮邮件服务邮件服务使使用的是25、110两端口口,添加规规则允许进进入。student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport25-jACCEPTstudent@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport110-jACCEPT对对于其其他服服务,,依照照上述述方法法打开开相应应的端端口。。2、安安全规规则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个个包。。2)处处理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碎片片。任务2网络络地址址转换换(NAT)到目前前为止止,还还有一一个非非常重重要的的问题题,就就是局局域网网主机机之间间互访访,局局域网网主机机通过过防火火墙主主机访访问Internet,,或者者Internet主机机通过过防火火墙访访问本本地局局域网网主机机,要要实现现这就就涉及及到网网络地地址转转换((NAT))。1.路路由器器网段的局局域网网与网网段的局局域网网出于于不同同的网网段,,要实实现两两者之之间的的相互互访问问必须须要求求Linux防防火墙墙主机机能够够实现现路由由功能能,图图12.12所所示是是一种种典型型多个个局域域网网网络拓拓扑图图。1)配配置局局域网网主机机实现现实验验环境境网段192.168.0的局局域网网主机机的网网关要要求是是,,网段段192.168.1的的局域域网主主机的的网关关要求求是66。如果主主机是Linux,添添加一一条网网络路路由方方法如如下。。student@ubuntu:~$routeadd-netnetmaskgwdeveth0如果主机机是是Windows,要要添加一一条网络络路由,,在终端端输入如如下命令令:routeaddmaskmetric12)设置置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=13)测试试在主机使用用ping命令令。student@ubuntu:~$ping-c36┆3packetstransmitted,3received,0%packetloss,time1998msrttmin/avg/max/mdev=0.589/0.704/0.830/0.101ms结果显示示能够访访问另外外局域网网主机。。2.SourceNAT通常情况况,使用用局域网网的私有有IP地地址是不不能直接接在Internet上使用用。到目目前为止止,不同同局域网网主机已已经能够够互相访访问了,,但要使使局域网网主机能能够访问问Internet站站点(比比如,百百度搜索索网站))还需要要Linux主主机具有有SourceNAT(SNAT)功能能,其实实通常的的NAT服务器器就是指指这种服服务器。。图12.13所所示局域域网连接接Internet两两种方式式,对于于大型企企业单位位,由于于网络单单元众多多,更多多的是采采取第二二种多层层局域网网络方式式,目前前我们学学校机房房就是采采用这种种方式,,这里采采用第二二种模式式作为SNAT实验环环境。1)配置置主机实实现实验验环境网段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-jMASQUERADE3.DestinationNAT局域网主主机可以以访问Internet上的的Web、Mail的的服务器器了,考考虑安全全性,Web服服务器通通常放在在Linux防防火墙主主机后部部的局域域网内部部主机上上,目前前为止,,局域网网内部主主机可以以连接Internet了,,但Internet上主机机还不能能够访问问Linux防防火墙主主机后部部的Web服务务器,要要实现Internet能够够访问局局域网上上的Web服务务器,Linux主机机还要具具有DestinationNAT(DNAT)功能能。1)实验验环境实验环境境与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:80803)检测测查看nat表信信息。以上是配配置了DNAT与SNAT的的nat表显示示情况。。如果没有有问题,,在上层层局域网网上主机机浏浏览器中中输入66就可以以访问局局域网主主机上的Web服服务器((为检测测准确,,首先应应确定66没有运运行Web服务务器)。。4)用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
4)用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-jACCEPT
AICMP="033/441112141618"
fortyicmpin$AICMP
do
/sbin/iptables-AINPUT-i$EXTIF-picmp--icmp-type$tyicmp-jACCEPT
done#开放数据能出入的端口forPortin"$Allow_ports";do
/sbin/iptables-AINPUT-ippp0-ptcp-sport$Port-jACCEPT
/sbin/iptables-AINPUT-ippp0-pudp-sport$Port-jACCEPTdoneforPortin"$Open_ports";do/sbin/iptables-AINPUT-ippp0-ptcp-dport$Port-jACCEPT/sbin/iptables-AINPUT-ippp0-pudp-dport$Port-jACCEPTdone任务3iptables与与Squid透透明代理理2.配置置SquidSquid配置置文件是是/etc/squid3/squid.conf,配配置参数数相对丰丰富,默默认不允允许代理理,因此此要修改改“http_accessdenyall”为““http_accessallowall”;要要做透明明代理,,还要修修改squid.conf的的http_port参数数。student@ubuntu:~$cat/etc/squid3/squid.conf┆http_port:3128transparent┆#http_accessdenyall修改为http_accessallowall┆3.配配置iptables1)开开启路路由root@ubuntu:~#sudoecho1>/proc/sys/net/ipv4/ip_forward2)2)把把所有有流向向53端口口的udp与tcp请求求转发发到外外网的的DNS服服务器器地址址,我我这DNS地地址::8,你你换成成你的的。student@ubuntu:~$sudoiptables-tnat-APREROUTING-pudp--dport53-jDNAT--to8student@ubuntu:~$sudoiptablesnat-APREROUTING-ptcp--dport53-jDNAT--to83)把把所有有内网网80端口口的请请求转转发到到3128端口口,让让squid处处理student@ubuntu:~$sudoiptables-tnat-APREROUTING-ieth0-ptcp--dport80-jREDIRECT--to-port31284)4)开开启SNAT功功能由于内内网要要访问问DNS的的,必必须开开启SNAT功功能student@ubuntu:~$sudoiptables-tnat-APOSTROUTING-oeth1-jSNAT--to665.客客户端端配置置透明代代理客客户端端配置置较简简单,,配置置网关关、DNS都为为Linux防防火墙墙地址址:。任务4使使用Firestarter防火火墙FireStarter是基基于GTK+、、独立立于iptables图图形界界面防防火墙墙配置置工具具,也也是一一套开开源的的软件件。虽虽然FireStarter不及及iptables的的强大大和灵灵活,,但对对于小小型局局域网网和家家庭共共享上上网的的配置置具有有直观观、简简单、、易用用的优优势。。演示谢谢谢大大家家9、静静夜夜四四无无邻邻,,荒荒居居旧旧业业贫贫。。。。12月月-2212
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 口腔护理服务协议2025
- 康复设备使用合同(2025年医疗)
- 2025年AI虚拟主播授权协议
- 酒店预订合同(2025年会员价)
- 高校文职面试题库及答案
- 辽源公务员面试题及答案
- 民航集团面试题目及答案
- 深度解析(2026)《GBT 34578-2017火力发电厂热工仪表与执行装置运行维护与试验技术规程》
- 深度解析(2026)《GBT 34319-2017硼镁肥料》
- 深度解析(2026)《GBT 34188-2017粘土质耐火砖》
- 食管癌的护理查房知识课件
- 高三日语二轮复习阅读专题课件
- 《双重差分法与调节效应模型:解析绿色债券价值影响》12000字(论文)
- 粉色小清新小红帽英语情景剧
- 期中测试卷(试题)2024-2025学年人教版数学六年级上册
- 幕墙工程安装施工计算书
- 室性心律失常共识解读
- 围产期母婴感染B族链球菌的防治及专家共识防治指南PPT课件院内培训
- 1例内镜下经鼻腔-蝶窦垂体瘤切除术的护理
- DB13T 3035-2023 建筑消防设施维护保养技术规范
- 断桥铝门窗工程施工组织方案
评论
0/150
提交评论