使用Linux的iptables配置防火墙和NAT的步骤
下面介绍一个使用Linux的iptables配置防火墙和NAT功能的实验,重点讲述这个实验的步骤和方法,还有实验中要注意的一些技巧。让大家在实验中学会通信工程师需要熟悉和了解的知识
操作方法
- 01
首先是搭建实验环境,实验环境拓扑图我已经画好,一共需要开启四台虚拟机,其中外网一台Win2003,充当公网的服务器,配置了两个IP地址,202.222.101.2和202.222.101.3,一个用于Web服务器的地址,一个用于FTP服务器的地址。接下来就是安装IIS开启这两个服务。为了方便测试,还需要在2003上安装DNS服务,配置两个A记录,让它解释这两个IP地址到www.luyouqiwang.com和www.52tusiji.cn上面。首先是在2003本机上测试这两个服务是否能顺利访问,同时测试DNS是否能成功解析IP地址为主机名。开启内网DMZ区的Linux服务器,配置一个用于内网的WWW服务用于测试。首先接一台客户端测试这个内网的WWW服务器是否工作正常。然后把这个测试的PC改到inside网上,用于整个实验的测试客户机。千万注意虽然inside和DMZ都是企业的网络,但是绝对不能设置这两个为一个网段,我开始试验的时候就是把他俩设置成一个网段了,结果总是有一个ping不通,找不到原因,我以为是VMware有问题,又重新启动所有的虚拟机,重新测试结果还是不行,搞了我差不多一个上午了,最后才发现是因为两个网卡设置的一个网段,造成数据包总是发往靠前的那个网卡的地址,而那个网卡是inside的网关,并没有和DMZ直接连接,所有一直是ping不通。
- 02
下一步的实验是,使用内网的XP去ping防火墙和外网的server,会发现可以ping通防火墙但是不能ping通外网的server。然后启用防火墙的路由功能,发现就可以ping通了,因为Linux开通了转发功能后,就可以转发网卡端口之间的数据包了,自然就能ping通了。特别要注意,如果只是开启了Linux的路由功能,其实还是ping不通的,开始我试验到这里老是不通,想到纠结,考虑了很久,最后才发现如果XP去pingDMZ区就能ping通,但是ping外网server就ping不通,怎么回事啊。按理说在没有配置防火墙的时候他们之间是同等的地位的,最后我才发现是因为我当时配置外网服务器的时候并没有配网关,因为一般情况下外网是不可能指定网关的。但是我们在没有配置NAT的时候如果要测试必须指定网关,不然ping的数据知道怎么过去但不知道怎么回来,自然就会有四个超时的错误。
- 03
下一步是开启防火墙Linux的iptables功能。在现实生活中虽然防火墙开启了路由功能但是也不能ping通外网的服务器的,因为你的地址是内网的私有地址,防火墙是不会转发的,所有首先给防火墙上配置一个nat,让内网XP可以访问外网的服务,只需要对XP这个网段配置NAT,不需要对DMZ区配置NAT。在配置NAT之前,先配置上外网的网关通过内网的XP测试一下外网的server服务正常与否。还需要测试一下DNS的配置在这个网络环境中是否能运行,需要在XP上指定一个DNS为202.222.101.2。连接之后通过在2003上使用netstat –n的方式查看是什么IP访问了服务器里面的服务。然后配置NAT,配好之后通过netstat等命令,查看访问的IP是多少,是不是私有地址啦(当然不可能是了!!)