本文转自:http://guodong810.blog.51cto.com/4046313/1117323

拓扑图

要求:通过思科防火墙ASA使用内网用户可以访问外网与DMZ中的服务器,DMZ中的服务器可以发布到网络中,供外网用户访问

一.思科模拟防火墙的使用

因为我们没有真实的设备,所以我们使用一个使用linux内核的虚拟系统来模拟思科的防火墙,模拟防火墙可以自己下载,在使用时我们还要使用一个软件来连接这个模拟防火墙:nptp.ext。

首先,我们打开ASA防火墙虚拟机,再安装nptp.exe软件

打开nptp,点击”Edit”新建一个连接,参数可如下

 

 

使用连接工具进行连接

 

连接成功

二.IP地址配置

外网IP配置

ciscoasa> enable

Password:

ciscoasa# conf t

ciscoasa(config)# int eth0/0

ciscoasa(config-if)# ip add 192.168.101.150 255.255.255.0      //外网ip

ciscoasa(config-if)# no shut

ciscoasa(config-if)# nameif outside                        //外网名,一定要配置

内网IP配置

ciscoasa(config-if)# int eth0/1

ciscoasa(config-if)# ip add 192.168.1.1 255.255.255.0

ciscoasa(config-if)# no shut

ciscoasa(config-if)# nameif inside

 

DMZ  IP配置

ciscoasa(config-if)# int eth0/2

ciscoasa(config-if)# ip add 192.168.2.1 255.255.255.0

ciscoasa(config-if)# no shut

ciscoasa(config-if)# nameif dmz

 

查看路由

ciscoasa(config-if)# show route

C    192.168.1.0 255.255.255.0 is directly connected, inside

C    192.168.2.0 255.255.255.0 is directly connected, dmz

C    192.168.101.0 255.255.255.0 is directly connected, outside

注:在ASA防火墙中一定要配置nameif名字,如果不配置的话,这个端口就不能启动,在配置名字的时候,不同的名字可以有不同的优先级,内网inside是一个系统自带的值,只可配置在内网的端口上,并且它的优先级是100,属于最高的级别,而另外的一些优先级都是0,在优先级高的区域访问优先级低的区域的时候,可以直接做snat就可以通信,而优先级低的访问优先级低的区域的时候,做dnat的同时,还要做访问控制列表。

三.内网访问外网

ciscoasa(config-if)# exit

ciscoasa(config)# global (outside) 1 interface                        //指定snat使用的外网接口为nameif为outside的端口

ciscoasa(config)# nat (inside) 1 192.168.1.0 255.255.255.0             /指定内网的网段

测试

我们使用的192.168.101.0做为外网的网段,但是在测试的时候,不能使用ping命令测试,因为在默认情况下防火墙是把ping作为一种攻击手段给拒绝掉的。我现在在192.168.101.105上做了一个RDP服务器,可以进行测试

可以测试成功

四.内网访问DMZ服务器

基于前面的设置,我们只需要再做一条指令指明dmz区域即可

ciscoasa(config)# global (dmz) 1 interface

测试一下访问DMZ中的www服务器

 

五.DMZ中服务器发布

RDP服务器发布

ciscoasa(config)# int eth0/2

ciscoasa(config-if)# security-level 50        //修改DMZ区域的优先级大于outside区域

ciscoasa(config)# static (dmz,outside) tcp interface 3389 192.168.2.2 3389     //创建dmz与outside的dnat  RDP服务

ciscoasa(config)# access-list 100 permit tcp any host 192.168.101.150 eq 3389   //创建访问控制列表,允许外网访问outside端口

ciscoasa(config)# access-group 100 in interface outside                       //在outside端口上应用访问控制列表

 

测试

www服务器发布

ciscoasa(config)# static (dmz,outside) tcp interface www 192.168.2.2 www

ciscoasa(config)# access-list 100 permit tcp any host 192.168.101.150 eq 80

ciscoasa(config)# access-group 100 in interface outside

测试