ASA静态PAT的双向访问测试及理解

简介:

一.概述:

   静态PAT一般是用在外部访问内部时,将外部IP的某个端口映射到内部主机的服务端口,这样外部主机通过访问外部IP的端口,就能很轻松的访问到内部主机的服务(需要策略放行),但是在看《Cisco ASA 5500 Series Configuration Guide using the CLI, 8.4 and 8.6》文档的时候,说静态PAT与静态NAT一样,也是双向的,感到很困惑,如是打算实际测试验证一下。

233804652.jpg

二.基本思路:

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:

----未指定源端口

①外部主机抓包截图:

234815501.jpg

②内部主机抓包截图:

234914530.jpg

---从两个截图很容易看出:源地址为指定时为1023以上的端口;在内部主机看到数据包做了目标地址转换

B.内部主机给外部主机发送sylog:

---手工指定源端口为UDP514,发送完syslog之后,为了对比,进行ping。

①内部主机抓包截图:

235240985.jpg

②外部主机抓包截图:

235312944.jpg

---从两个截图很容易看出:当内部主机发送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。

001732397.jpg

④内部主机指定syslog源端口:

---外部主机抓包截图,可以看到走的是静态PAT,因为源地址为202.100.1.2,而不是防火墙接口地址202.100.1.1。

001748522.jpg

⑤内部主机指定sylog源端口不为静态PAT的端口:

---外部主机抓包截图,可以看到走的是动态PAT,因为源地址为防火墙接口地址202.100.1.1。

001801655.jpg




本文转自 碧云天 51CTO博客,原文链接:http://blog.51cto.com/333234/1242448,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
1109 60
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
491 6
基于Python访问Hive的pytest测试代码实现
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
1205 1
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
523 6
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
432 2
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
330 2
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
安全 网络协议 网络安全
如何获取静态IP进行测试?静态IP有什么优点?
本文介绍了如何获取静态IP用于测试,包括联系ISP、使用DDNS和利用VPN。静态IP具有稳定性、安全性和易用性的优点,适合网络测试和特定设置。
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
357 0
|
JSON 数据格式
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
9198 0