ASA 防火墙上NAT的基本原理与路由器上一样,只不过只用定义一下内网地址和进行转换后的地址就可以了,不需要进入接口再应用了。基本上两条命令即可完成一种NAT的配置。ASA上的NAT有动态NAT、动态PAT、静态NAT和静态PAT四种类型。
1、动态NAT(可以说是一对一,但不是静态的,一般不使用动态NAT)的配置步骤如下:
将内网10.0.0.0/8进行NAT转换为170.16.1.100~172.16.1.200:
ciscoasa(config)# nat (inside) 1 10.0.0.0 255.0.0.0 #定义需要进行NAT的内网地址
ciscoasa(config)# global (outside) 1 172.16.1.100-172.16.1.200 #定义全局地址池,
OK了。
ciscoasa(config)# show xlate detail #在进行第一次通信后,
即可通过该命令来查看NAT转换信息
上述配置中的1为nat-id,定义NAT转换时,需要nat-id匹配,才可进行转换。
若是要为inside区域内的所有网段实施动态NAT,配置命令如下:
ciscoasa(config)# nat (inside) 1 0 0 #0 0 表示任意网段
2、动态PAT(多对一,节省公网IP)的配置步骤如下:
动态PAT与路由器上的PAT相同,即可以多个私网地址转换为一个公网地址,也可直接使用outside接口。配置如下:
将20.0.0.0/8网段使用动态PAT转换为172.17.10.10
ciscoasa(config)# nat (inside) 2 20.0.0.0 255.0.0.0 #定义需要进行NAT的内网地址
ciscoasa(config)# global (outside) 2 172.17.10.10 #定义全局地址,OK了
也可以将20.0.0.0/8这个网段直接使用outside接口的IP地址进行转换,配置命令如下:
ciscoasa(config)# global (outside) 2 interface
3、静态NAT(一对一,常用来对DMZ区域的服务器实施这种NAT)的配置步骤如下:
ciscoasa(config)# static (dmz,outside) 172.16.1.201 192.168.1.1 #当DMZ区域
的192.168.1.1与outside通信时,
使用的地址是172.16.1.201,也就是说,想在外网访问192.168.1.1这个服务器上的服务,
那么需要使用172.16.1.201作为目的地址。
需要注意的是,在进行NAT转换时,不止需要配置地址转换,ACL也会影响是否能够通信成功。
下面配置一下ACL,使外网可以成功访问到192.168.1.1的服务。
ciscoasa(config)# access-list out_to_dmz permit ip any host 172.16.1.201
#允许所有主机访问映射地址172.16.1.201
ciscoasa(config)# access-group out_to_dmz in int outside #应用到outside接口
个人在实验过程中,在进行以上的ACL配置后,会出现访问不成功的时候,再继续配置一条允许所有主机访问服务器的真实IP即可,两条ACL名称一样,同样应用到outside接口。
4、配置静态PAT(与路由器上的端口映射类似),配置如下:
ciscoasa(config)# static (dmz,outside) tcp 172.16.1.201 http 192.168.1.1 http
#DMZ区域的192.168.1.1服务器80端口与outside进行通信时,
使用172.16.1.201的HTTP端口
ciscoasa(config)# static (dmz,outside) tcp 172.16.1.201 23 192.168.1.10 23
#当DMZ区域的192.168.1.10服务器23端口与外网进行通信,
使用的是172.16.1.201地址的23端口
ciscoasa(config)# access-list out_to_dmz permit ip any host 172.16.1.201
#配置ACL,若对安全要求比较高,由于上述两个服务都是使用TCP协议,
这里ACL规则中的ip命令字,可以改为tcp。
ciscoasa(config)# access-group out_to_dmz in int outside
静态PAT已经配置好了,现在外网用户在不同的软件平台,使用172.16.1.201作为目的地,即可访问到不同的服务。(同理,若是无法访问成功,那么就再加一条ACL:允许所有主机访问服务器的真实IP即可,两条ACL名称一样,同样应用到outside接口。)
经过以上配置可以看出,需要注意配置的语法,顺序有些变化,而且,在配置静态PAT时,可以指定服务名称,也可以直接指定端口号,个人建议还是直接指定端口号靠谱些
原文地址:https://blog.51cto.com/14154700/2385798