一.概述:
静态PAT一般是用在外部访问内部时,将外部IP的某个端口映射到内部主机的服务端口,这样外部主机通过访问外部IP的端口,就能很轻松的访问到内部主机的服务(需要策略放行),但是在看《Cisco ASA 5500 Series Configuration Guide using the CLI, 8.4 and 8.6》文档的时候,说静态PAT与静态NAT一样,也是双向的,感到很困惑,如是打算实际测试验证一下。
二.基本思路:
A.静态PAT从外网访问内网,是经常用的,主要需要验证从内部访问外部是是否做了地址转换。
B.TCP和UDP访问的源端口都是随机的,大于1023,并且正常情况下不能指定:
---因此需要找到能指定源端口的程序
---在实际工作中正好用到一款公司自主开发的windows的syslog发送工具可以指定源端口和目标端口,于是用它来测试。
C.测试环境为:
---将外部接口的UDP 514端口映射到内部一台主机的UDP514
①.从外部主机发送syslog到外部接口的UDP514,验证目标地址转换。
②.从内部被映射的主机向外部主机发送syslog,发送的时候指定源端口和目标端口都为514,在外部主机抓包,看源地址是否转换。
③.并且顺带的验证一下静态PAT优先级比动态PAT要高。
D.实际静态PAT这种双向访问是没有多大用处的,因为源端口很难手工指定的,像把外部接口的TCP23静态PAT到内部一台主机的TCP23,而正常情况下TCP源端口不可能为23端口的,因为内部出去的时候正常情况下是不会PAT的。
---有一种情况可以用的上,比如syslog发送,因为审计的时候需要审计真实地址,而不是NAT后的地址,可以配置静态PAT来实现源地址不转换(一般的主机syslog源端口是可以指定的,linux默认为UDP514):
object network Inside_Net_syslog
subnet 100.1.1.0 255.255.255.0
object network Inside_net_syslog_nonat
subnet 100.1.1.0 255.255.255.0
object network Inside_net_syslog_nonat
nat (Inside,Outside) static Inside_Net_syslog service udp syslog syslog
这样当指定Inside区100.1.1.0/24网段主机向Outside区的syslog服务器发送sylog的udp源端口为514时,就可以实现IP地址自己转自己(等于不转)。
三.测试拓扑:
Inside_PC1(.8)--100.1.1.0/24-----(.1)ASA842(.1)---202.100.1.0/24-----(.8)Outside_PC2
四.基本配置:
A.Inside_PC1
ip:100.1.1.8/24
gw:100.1.1.1
B.ASA842:
①接口配置:
interface GigabitEthernet0
nameif Inside
security-level 100
ip address 100.1.1.1 255.255.255.0
no shut
interface GigabitEthernet1
nameif Outside
security-level 0
ip address 202.100.1.1 255.255.255.0
no shut
②静态PAT配置:
object network Inside_PC1
host 100.1.1.8
object network Inside_PC1
nat (Inside,Outside) static interface service udp syslog syslog
③策略配置:
access-list Outside extended permit icmp any any
access-list Outside extended permit udp any object Inside_PC1 eq syslog
access-group Outside in interface Outside
C.Outside_PC2:
ip:202.100.1.8/24
gw:202.100.1.1
五.测试:
A.外部主机给内部主机发送syslog:
----未指定源端口
①外部主机抓包截图:
②内部主机抓包截图:
---从两个截图很容易看出:源地址为指定时为1023以上的端口;在内部主机看到数据包做了目标地址转换
B.内部主机给外部主机发送sylog:
---手工指定源端口为UDP514,发送完syslog之后,为了对比,进行ping。
①内部主机抓包截图:
②外部主机抓包截图:
---从两个截图很容易看出:当内部主机发送syslog的源地址指定为514,出了ASA防火墙,源地址做了转换;PING包没有受静态PAT的影响,源地址没有发生改变。
C.测试静态PAT与动态PAT的优先级:
①修改静态PAT的地址:
object network Inside_PC1
host 100.1.1.8
object network Inside_PC1
nat (Inside,Outside) static 202.100.1.2 service udp syslog syslog
②配置动态PAT:
object network Inside_network
subnet 100.1.1.0 255.255.255.0
object network Inside_network
nat (Inside,Outside) dynamic interface
③内部主机ping外部主机:
---外部主机抓包截图,可以看到ping走的是动态PAT。
④内部主机指定syslog源端口:
---外部主机抓包截图,可以看到走的是静态PAT,因为源地址为202.100.1.2,而不是防火墙接口地址202.100.1.1。
⑤内部主机指定sylog源端口不为静态PAT的端口:
---外部主机抓包截图,可以看到走的是动态PAT,因为源地址为防火墙接口地址202.100.1.1。
本文转自 碧云天 51CTO博客,原文链接:http://blog.51cto.com/333234/1242448,如需转载请自行联系原作者