柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
一、实验目的与要求
1、熟悉网络虚拟软件GNS3的功能特点及其使用方法;
2、理解防火墙的工作机制,掌握防火墙的基本配置及应用;
3、理解防火墙的动态地址转换的工作机制,掌握防火墙的动态地址转换的配置及应用;
4、理解防火墙的端口地址转换的工作机制,掌握防火墙的端口地址转换的配置及应用;
5、理解防火墙的静态地址转换的工作机制,掌握防火墙的静态地址转换的配置及应用。
二、实验原理
1、GNS3是一款具有图形化界面可以运行在多平台(包括Windows, Linux, and MacOS等)的网络虚拟软件。GNS3使用Cisco网络设备的真实映像来进行实验,解决了Cisco Packet Tracer的一些问题。但正是由于GNS3需要使用Cisco网络设备的IOS(IOS是有版权的),所以在做实验之前,需要通过准备好相应网络设备的IOS文件。比如路由器、防火墙的IOS文件。
2、ASA系列防火墙是作为PIX系列防火墙的替代产品出现的。ASA系列防火墙在提供基本防火墙的功能之外,还提供了更多的安全特性,适用于在各种网络环境中使用,并且更加便于管理、监控和维护。Cisco ASA 5500系列自适应安全设备是能够为从小型办公室/家庭办公室和中小企业到大型企业的各类环境提供新一代安全性和VPN服务的模块化安全平台。并且可以根据客户对防火墙、入侵防御(IPS)、Anti-X和VPN的要求而特别定制安全服务。
3、地址转换是防火墙的一项重要功能,也可以说是一项必备的功能。当前,几乎所有的企业网络在连入Internet时,都要做NAT。ASA IOS 7.0以前,通过防火墙的流量默认必须是要做NAT的,否则,不能通过。地址转换可以在一定程度上解决IPv4的地址紧张问题;可以隐藏内部网络,起到保护内部网络的作用。
4、端口地址转换(PAT),将多个本地地址转换成一个单个的全局地址,同时将源端口号也会转换成一个指定的端口,并形成转换前的端口与转换后的端口对应表,此时主要通过端口来区分不同的网络连接。端口号长度为16位二进制位,可以有65536个端口号,即使有些端口(比如0--1023)已经保留给特定的网络使用。还有64000多个端口,理论上,一个全局地址可以让64000多个本地地址进行地址转换。这样,可大大地缓解单位网络由于全局地址不足的上网问题。
5、静态地址转换,就是将专用IP地址与公用IP地址进行固定的映射。一般当内网或DMZ区中的使用专用IP地址的服务器想让外网的人访问时,就要将服务器的专用IP地址与全局IP地址做静态地址转换,这样方便外网用户的主动访问。
三、预习与准备
预习主流防火墙的工作原理及其配置方法的相关知识点。准备好实验设备,安装好模拟器软件GNS3。
四、实验内容与步骤
1、实验设备:
练习一:GNS3 0.8.7 模拟器软件 1套;C3745路由器IOS文件 1套;ASA防火墙IOS软件 1套。
练习二、练习三、练习四、练习五:C3745路由器 2台;ASA防火墙 1台;直通线。
2、练习一 安装与配置GNS3
(1)安装GNS3
(2)配置路由器的IOS(以GNS3 0.87为例)
1)进入路由器IOS设定窗口
在GNS3中打出“Edit”下的“IOS images and hypervisors”。进入路由器IOS的配置窗口。
图12.1 进入IOS配置
2)指定路由器IOS文件,并保存。
路由器的IOS,可以从网上下载获得,并事先存放在指定的文件夹内。操作顺序如下图所示。
图12.2 设置路由器的IOS
3)启动路由器,计算并保存路由器的idle PC值。
点击最左侧的路由器,并在出现的Routers列表中选择已设定了IOS文件的路由器,将之拖动到工作区中。右击路由器,在弹出菜单中选择并点击“Start”,启动路由器。
图12.3 启动路由器
图12.4 计算Idle PC,并保存
启动路由器后,再次右击路由器,在弹出菜单中选择并点击“Idle PC”,计算Idle PC值,并保存。(此举是为了减少CPU的占用率。根据我的经验,每次启动一个路由器时,都可计算一下Idle PC,直接选用计算后显示的那个值就可以。)
(3)配置ASA防火墙的IOS
1)进入防火墙IOS设定窗口
在GNS3中打出“Edit”下的“Preferences”。进入配置窗口。
图12.5 进入配置窗口
2)指定ASA防火墙IOS文件,并保存。
此处使用的是ASA802-K8。有二个文件,将这二个文件的路径分别填入相应的位置。具体配置如下:
Identifier name:asa802-k8-sing(自己填名称,但不能是中文)
RAM:256(使用默认的256)
Number of NICs:6(网卡数量,默认是6)
NIC model:e1000(网卡类型,默认是e1000)
Qemu Options:-hdachs 980,16,32 -vnc :1 (手动输入)
Initrd:G:\GNS3\Fw\ASA\Run\asa802-k8-sing.gz (编译文件路径)
Kernel:G:\GNS3\Fw\ASA\Run\asa802-k8.vmlinuz (内核文件路径)
Kernel cmd line:auto console=ttyS0,9600n8 nousb ide1=noprobe bigphysarea=16384 hda=980,16,32 (关键,否则无法telnet)
输入完后,点击保存。
图12.6 配置ASA IOS参数
(4)ASA802单模式初始化
1)启动,并登录ASA 802
打开GNS3,从左侧拖出ASA firewall,选择asa802-k8-sing(前面填的Identifier name);启动运行ASA5;Console登录到ASA 802上。
图12.7 启动防火墙
图12.8 登录防火墙
图12.9 登录后的窗口
回车后,此时的提示符是“#”号。
2)单模式初始化
执行单模式初始化命令。
命令:/mnt/disk0/lina_monitor
出现ciscoasa>提示符,说明已经进入了单模式中,可以进步对防火墙进行配置了。
(当ASA工作在单模式时,不能配置虚拟防火墙)
图12.10 登录后的窗口
3、练习二 ASA防火墙的基本配置
Cisco ASA防火墙接口e0/1、e0/2分别连接二个路由器R1、R2,现将ASA的e0/1口的别名设置为inside,安全级别为100,IP地址设置192.168.1.1;将ASA的e0/2口的别名设置为dmz,安全级别为50,IP地址设置192.168.2.1;并检验R1、ASA、R2之间的连通情况。网络拓扑图如图12.11所示。
图12.11 练习二实验拓扑图
(1)在ASA上配置接口名称、安全级别、IP地址
CiscoAsa(config)# interface e0/1
CiscoAsa(config-if)# nameif inside
CiscoAsa(config-if)# security-level 100
CiscoAsa(config-if)# ip address 192.168.1.1 255.255.255.0
CiscoAsa(config)# interface e0/2
CiscoAsa(config-if)# nameif dmz
CiscoAsa(config-if)# security-level 50
CiscoAsa(config-if)# ip address 192.168.2.1 255.255.255.0
(2)在路由器R1配置IP地址、默认路由
R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
R1(config)# interface f0/0
R1(config-if)# ip address 192.168.1.2 255.255.255.0
(3)在路由器R2配置IP地址、默认路由
R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.2.1
R2(config)# interface f0/0
R2(config-if)# ip address 192.168.2.2 255.255.255.0
(4)连通性检测
可以在R1上ping防火墙上的e0/1口的地址,在R2上ping防火墙上的e0/2口的地址。我们可以发现这二种操作的结果都是连通的。
如果在R1上ping路由器R2上f0/0接口的地址192.168.2.2,能通吗?为什么呢?
(是不通的,防火墙默认是不允许ICMP的包穿过防火墙的。)
如何检测R1、R2之间是否可通呢?
我们可以在R2上打开远程登录,然后从R1上可以登录到R2上。具体配置如下:
R2(config)# line vty 0 4
R2(config-line)# password abc
R2(config-line)# login
然后,在R1上远程登录R2:
R1# telnet 192.168.2.2
命令执行结果如图12.12所示。查看远程登录的情况。
图12.12 R1远程登录R2
4、练习三 ASA防火墙动态网络地址转换(动态NAT)配置(选做)
如果现在某企业网的内网有二个网段分别为192.168.1.0/24和192.168.2.0/24,希望通过动态NAT上网,且网段192.168.1.0/24转换范围为200.2.2.20--200.2.2.39,网段192.168.1.0/24转换范围为200.2.2.40--200.2.2.59。如何实现呢?网络拓扑图如图12.11所示。
(1)网络拓扑及设备基本配置
网络拓扑及设备基本配置与图1相同,并在此基础上,在路由器R1上添加一个环回地址192.168.2.1/24。其它与例1的第一步完成相同。
//在路由器R1配置IP地址、默认路由
R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1 //默认路由
R1(config)# interface f0/0
R1(config-if)# ip address 192.168.1.2 255.255.255.0
R1(config-if)# no shutdown
R1(config)# interface loopback 0 //设置回环口0
R1(config-if)# ip address 192.168.2.1 255.255.255.0
(2)在ASA上定义全局地址池
CiscoAsa(config)#global (outside) 1 200.2.2.20-200.2.2.39 netmark 255.255.255.0
CiscoAsa(config)#global (outside) 2 200.2.2.40-200.2.2.59 netmark 255.255.255.0
(3)将全局地址池映射到本地地址
CiscoAsa(config)#nat (inside) 1 192.168.1.0 255.255.255.0
CiscoAsa(config)#nat (inside) 2 192.168.2.0 255.255.255.0
请注意NAT_ID的匹配使用的。
(4)动态NAT验证
I.在路由器R1上使用192.168.1.2为源地址远程登录路由器R2
首先,从路由器R1上使用192.168.1.2为源地址远程登录路由器R2。
完整命令为:
R1(config)# telnet 200.2.2.2 /source-interface f 0/0
参数说明:
source-interface:关键字,源接口。其后的f0/0,是准备使用的IP地址所在的接口类型与编号,在这里使用的192.168.1.2在路由器的F 0/0口。
其次,在路由器R2上查看用户。可以看到当前有一个来自200.2.2.20的远程登录。
然后,在ASA防火墙上查看NAT转换表
II.在路由器R1上使用192.168.2.1为源地址远程登录路由器R2
首先,从路由器R1上使用192.168.1.2为源地址远程登录路由器R2。
192.168.2.1是环回接口loopback 0的地址。
其次,在路由器R2上查看用户。可以看到当前有一个来自200.2.2.40的远程登录。
然后,在ASA防火墙上查看NAT转换表。
从上表可以看到,192.168.1.2和192.168.2.1分别被转换为200.2.2.20和200.2.2.40。
5、练习四 ASA防火墙动态端口地址转换(动态PAT)配置(选做)
企业内网的网络地址为192.168.1.0/24,现在通过端口地址转换(PAT)访问Internet,已知分配给动态NAT的IP地址池为200.2.2.8。现在ASA防火墙上实现端口地址转换(PAT),并验证。
I.ASA防火墙、路由器等设备的基本配置
按图1建立拓扑,并按图12.13所示对各设备进行配置,并测试验证。
//在ASA上配置接口名称、安全级别、IP地址
CiscoAsa(config)# interface e0/1
CiscoAsa(config-if)# nameif inside
CiscoAsa(config-if)# security-level 100
CiscoAsa(config-if)# ip address 192.168.1.1 255.255.255.0
CiscoAsa(config-if)# no shutdown
CiscoAsa(config)# interface e0/0
CiscoAsa(config-if)# nameif outside
CiscoAsa(config-if)# security-level 0
CiscoAsa(config-if)# ip address 200.2.2.1 255.255.255.0
CiscoAsa(config-if)# no shutdown
图12.13 练习四网络拓扑及设备参数
//在路由器R1配置IP地址、默认路由
R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1 //默认路由
R1(config)# interface f0/0
R1(config-if)# ip address 192.168.1.2 255.255.255.0
R1(config-if)# no shutdown
//在路由器R2配置IP地址、默认路由、设置远程登录口令
R2(config)# ip route 0.0.0.0 0.0.0.0 200.2.2.1
R2(config)# interface f0/0
R2(config-if)# ip address 200.2.2.2 255.255.255.0
R2(config-if)# no shutdown
R2(config)# line vty 0 4
R2(config-line)# password abcd
R2(config-line)# login
完成以上配置,可通过下面的操作,对上面的配置结果进行验证。
首先,从路由器R1上远程登录路由器R2。以检测网络是否可通。
其次,在路由器R2上查看用户。可以看到当前有一个来自192.168.1.2(路由器R1)的远程登录。
请注意此处远程登录的源地址。稍后,会有与此对比的地方。
第三,在防火墙查看转换表。可以看到当前NAT转换表为空。
II.在ASA上定义全局地址池
CiscoAsa(config)#global (outside) 1 200.2.2.8 netmark 255.255.255.0
III.将全局地址池映射到本地地址
CiscoAsa(config)#nat (inside) 1 192.168.0.0 255.255.0.0
请注意NAT_ID的匹配使用的。上面的global、nat命令中,都使用了数字“1”作为NAT的标识。
IV.端口地址转换(PAT)验证
(1)从路由器R1上远程登录路由器R2。
(2)在路由器R2上查看用户。可以看到当前有一个来自200.2.2.8的远程登录。
(3)在防火墙查看转换表。可以看到当前PAT转换表的内容。
由上面的转换表的内容可知,当前转换表里有一条记录,转换类型为PAT,内部网络的本地地址192.168.1.2,端口为31729,被转换为全局地址200.2.2.8,端口为1024。
V.在路由器Router1上添加一个环回接口
R1(config)# interface loopback 0 //定义一个回环接口
R1(config-if)# ip address 192.168.2.1 255.255.255.0
VI.再次进行PAT检验
(1)在路由器Router1上分别以192.168.1.2和192.168.2.1为源地址,远程登录Router2。
(2)在ASA防火墙上查看转换表
从转换表中,我们可以看到,本地地址192.168.1.2和192.168.2.1都被转换为全局地址200.2.2.8,这二个连接转换的全局地址虽然相同,但端口是不一样的,192.168.1.2的原端口为14389,转换为的端口为1027;192.168.2.1的原端口为50138,转换为的端口为1028。
6、练习五 ASA防火墙静态地址转换(静态NAT)配置
企业内网的网络地址为192.168.1.0/24,通过ASA防火墙与外网相连,现假设想将内网中的192.168.1.2静态NAT为200.2.2.8。网络拓扑及设备各接口的IP地址如图12.14所示。现在ASA防火墙上实现静态NAT,并验证。
图12.14 练习五网络拓扑及设备参数
I.ASA防火墙、路由器等设备的基本配置
按图1建立拓扑,并按图1所示对各设备进行配置,并测试验证。
//在ASA上配置接口名称、安全级别、IP地址
CiscoAsa(config)# interface e0/1
CiscoAsa(config-if)# nameif inside
CiscoAsa(config-if)# security-level 100
CiscoAsa(config-if)# ip address 192.168.1.1 255.255.255.0
CiscoAsa(config-if)# no shutdown
CiscoAsa(config)# interface e0/0
CiscoAsa(config-if)# nameif outside
CiscoAsa(config-if)# security-level 0
CiscoAsa(config-if)# ip address 200.2.2.1 255.255.255.0
CiscoAsa(config-if)# no shutdown
//在路由器R1配置IP地址、默认路由
R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1 //默认路由
R1(config)# interface f0/0
R1(config-if)# ip address 192.168.1.2 255.255.255.0
R1(config-if)# no shutdown
//在路由器R2配置IP地址、默认路由、设置远程登录口令
R2(config)# ip route 0.0.0.0 0.0.0.0 200.2.2.1
R2(config)# interface f0/0
R2(config-if)# ip address 200.2.2.2 255.255.255.0
R2(config-if)# no shutdown
R2(config)# line vty 0 4
R2(config-line)# password abc
R2(config-line)# login
完成以上配置,可通过下面的操作,对上面的配置结果进行验证。
首先,从路由器R1上远程登录路由器R2。以检测网络是否可通。
其次,在路由器R2上查看用户。可以看到当前有一个来自192.168.1.2(路由器R1)的远程登录。
请注意此处远程登录的源地址。稍后,会有与此对比的地方。
第三,在防火墙查看转换表。可以看到当前NAT转换表为空。
II.在ASA上配置静态NAT
CiscoAsa(config)#nat (inside, outside) 200.2.2.8 192.168.1.2
请注意insdie、outside、全局地址、本地地址的顺序。
III.配置策略,并将之应用到接口上
CiscoAsa(config)#access-list out permit ip any host 200.2.2.2
CiscoAsa(config)# interface e0/0
CiscoAsa(config-if)# access-group out in interface outside
IV.静态NAT验证
此时,可以从路由器R2上远程登录路由器R1。