千家信息网

利用ASA的Twice NAT解决内网无法访问映射后的公网地址

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,一.概述: 默认情况下,不管是Inside还是DMZ区映射到Outside区的地址或服务,Inside和DMZ区都无法通过映射后地址来访问内部服务器。ASA8.3版本之后有一种新的NAT叫Twice-
千家信息网最后更新 2025年02月03日利用ASA的Twice NAT解决内网无法访问映射后的公网地址一.概述: 默认情况下,不管是Inside还是DMZ区映射到Outside区的地址或服务,Inside和DMZ区都无法通过映射后地址来访问内部服务器。ASA8.3版本之后有一种新的NAT叫Twice-NAT,它可以在一个NAT语句中既匹配源地址,又匹配目标地址,并且可以对源地址、目标地址,端口号,三个参数中一~三个参数的转换。二.基本思路:A.Inside区映射到Outside区①Outside区访问Inside区映射后的地址没有问题②Inside区访问Inside区映射后的地址,通过Twice NAT做源地址和目标地址转换---将源地址转换为Inside接口地址,目标地址转换为Inside设备实际地址---如果不做源地址,因为访问的数据流来回路径不同,无法建立会话③DMZ区访问Inside区映射后的地址,通过Twice NAT做目标地址转换---将目标地址转换为Inside设备的实际地址---因为两边都是实际地址,因此需要Inside和DMZ互相有对方的路由---也可以同时做源地址转换,将源地址转换为Iniside接口地址,为了便于审计,不建议这样做
B.DMZ区映射到Outside区①Outside区访问DMZ区映射后的地址没有问题②Inside区访问DMZ映射后的地址,通过Twice NAT做目标地址转换---将目标地址转换为DMZ区设备的实际地址---因为两边都是实际地址,因此需要Inside和DMZ互相有对方的路由---也可以同时做源地址转换,将源地址转换为DMZ接口地址,为了便于审计,不建议这样做---实际用模拟器测试,却发现不做源地址转换,经常报 -- bad sequence number的错误---想不来为什么会报序列号错误,即使用MPF设置set connection random-sequence-number disable,也只是缓解,还是会偶尔出现,觉得可能是模拟器的缘故③DMZ区访问DMZ映射后的地址,通过Twice NAT做源地址和目标地址转换---将源地址转换为DMZ接口地址,目标地址转换为DMZ区设备实际地址---如果不做源地址,因为访问的数据流来回路径不同,无法建立会话三.测试拓扑:R1-----SW--(Inside)----ASA---(Outside)----R4 | | | | R2 R3(DMZ)四.测试需求:A.将R2的TCP23端口映射到ASA的Outside接口的23端口上----要求R1~R4都能通访问ASA的Outside接口的23端口访问到R2的23端口B.将R3的TCP23端口映射到ASA的Outside接口的2323端口上----要求R1~R4都能通访问ASA的Outside接口的2323端口访问到R3的23端口五.基本配置:A.R1:interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.0
no shutip route 0.0.0.0 0.0.0.0 10.1.1.10B.R2interface FastEthernet0/0
ip address 10.1.1.2 255.255.255.0
no shutip route 0.0.0.0 0.0.0.0 10.1.1.10line vty 0 4
password cisco
login
C.ASA:interface GigabitEthernet0
nameif Inside
security-level 100
ip address 10.1.1.10 255.255.255.0
no shutinterface GigabitEthernet1
nameif DMZ
security-level 50
ip address 192.168.1.10 255.255.255.0
no shutinterface GigabitEthernet2
nameif Outside
security-level 0
ip address 202.100.1.10 255.255.255.0 no shutD.R3:interface FastEthernet0/0
ip address 192.168.1.3 255.255.255.0
no shutip route 0.0.0.0 0.0.0.0 192.168.1.10line vty 0 4
password cisco
login
E.R4:interface FastEthernet0/0
ip address 202.100.1.4 255.255.255.0
no shut五.ASA的NAT及策略配置:A.动态PAT允许Inside和DMZ区能访问公网object network Inside-NET
subnet 10.1.1.0 255.255.255.0
nat (Inside,Outside) dynamic interfaceobject network DMZ-NET
subnet 192.168.1.0 255.255.255.0
nat (DMZ,Outside) dynamic interfaceB.静态PAT将R2和R3映射出去:object network Inside-R2 host 10.1.1.2
nat (Inside,Outside) static interface service tcp 23 23
object network DMZ-R3
host 192.168.1.3
nat (DMZ,Outside) static interface service tcp 23 2323
C.防火墙策略:①开启icmp审查policy-map global_policy
class inspection_default
inspect icmp
②Outside口放行策略:access-list OUTSIDE extended permit tcp any object Inside-R2 eq telnet
access-list OUTSIDE extended permit tcp any object DMZ-R3 eq telnet
access-group OUTSIDE in interface Outside③DMZ口放行策略:access-list DMZ extended permit tcp any object Inside-R2 eq telnetaccess-list DMZ extended permit icmp any anyaccess-list DMZ extended deny ip any object Inside-NETaccess-list DMZ extended permit ip any anyaccess-group DMZ in interface DMZ---备注:这里只是测试,实际除非必要,尽量不要放行DMZ到Inside的访问,要放行也需要针对主机放行D.测试:①Inside区和DMZ区能访问公网:R1#PING 202.100.1.4

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/80/168 ms
R2#ping 202.100.1.4

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/67/156 ms
R3#ping 202.100.1.4

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/120/204 ms
②被映射后的端口只能被Outside区访问:R4#TELNET 202.100.1.10 23
Trying 202.100.1.10 ... Open


User Access Verification

Password:
R2>show users
Line User Host(s) Idle Location
0 con 0 idle 00:55:06
* 66 vty 0 idle 00:00:00 202.100.1.4

Interface User Mode Idle Peer Address

R2>

R4#TELNET 202.100.1.10 2323
Trying 202.100.1.10, 2323 ... Open


User Access Verification

Password:
R3>show users
Line User Host(s) Idle Location
0 con 0 idle 00:51:12
* 66 vty 0 idle 00:00:00 202.100.1.4

Interface User Mode Idle Peer Address

R3>
R1#telnet 202.100.1.10
Trying 202.100.1.10 ...
% Connection timed out; remote host not responding
六.ASA的Twice NAT配置:A.使得Inside区访问Inside区映射后的地址时,既做源地址转换,又做目标地址转换①配置对象:object network Public-R2
host 202.100.1.10
object service tcp23
service tcp destination eq telnet
②配置twice-NAT:nat (Inside,Inside) source static any interface destination static Public-R2 Inside-R2 service tcp23 tcp23③允许相同接口的访问:same-security-traffic permit intra-interface---因为访问时,既从Inside口进,又从Inside出,所以需要这条④测试:R1#telnet 202.100.1.10
Trying 202.100.1.10 ... Open


User Access Verification

Password:
R2>show users
Line User Host(s) Idle Location
0 con 0 idle 01:07:35
* 66 vty 0 idle 00:00:00
10.1.1.10

Interface User Mode Idle Peer Address

R2>

R2#telnet 202.100.1.10
Trying 202.100.1.10 ... Open


User Access Verification

Password:
R2>show users
Line User Host(s) Idle Location
0 con 0 202.100.1.10 00:00:00
* 66 vty 0 idle 00:00:00
10.1.1.10

Interface User Mode Idle Peer Address

B.使得Inside区访问DMZ区映射后的地址时,只做目标地址转换①配置对象:object network Public-R3
host 202.100.1.10
object network DMZ-R3
host 192.168.1.3
object service tcp2323
service tcp destination eq 2323
②配置twice-NAT:nat (Inside,DMZ) source static any any destination static Public-R3 DMZ-R3 service tcp2323 tcp23③测试:R1#telnet 202.100.1.10 2323
Trying 202.100.1.10, 2323 ...
% Connection timed out; remote host not responding

R3#debug ip tcp packet port 23
TCP Packet debugging is on for port number 23
R3#
*Mar 1 13:18:25.648: tcp0: I LISTEN 10.1.1.1:17155 192.168.1.3:23 seq 1568429504
OPTS 4 SYN WIN 4128
*Mar 1 13:18:25.652: tcp0: O SYNRCVD 10.1.1.1:17155 192.168.1.3:23 seq 1603796811
OPTS 4 ACK 1568429505 SYN WIN 4128
*Mar 1 13:18:25.656: tcp0: I SYNRCVD 10.1.1.1:17155 192.168.1.3:23 seq 4193850862
OPTS 4 SYN WIN 4128
*Mar 1 13:18:25.660: tcp0: O SYNRCVD 10.1.1.1:17155 192.168.1.3:23 seq 1603796811
ACK 1568429505 WIN 4128
*Mar 1 13:18:25.660: TCP0: bad seg from 10.1.1.1 -- bad sequence number: port 23 seq 4193850862 ack 0 rcvnxt 1568429505 rcvwnd 4128 len 0
④解决方法:---修改NAT,做源地址转换nat (Inside,DMZ) source static any interface destination static Public-R3 DMZ-R3 service tcp2323 tcp23⑤再次测试:R1#telnet 202.100.1.10 2323
Trying 202.100.1.10, 2323 ... Open


User Access Verification

Password:
R3>show users
Line User Host(s) Idle Location
0 con 0 idle 00:02:15
* 66 vty 0 idle 00:00:00 192.168.1.10

Interface User Mode Idle Peer Address

R3>
R2#telnet 202.100.1.10 2323
Trying 202.100.1.10, 2323 ... Open


User Access Verification

Password:
R3>show users
Line User Host(s) Idle Location
0 con 0 idle 00:03:13
66 vty 0 idle 00:00:58 192.168.1.10
* 67 vty 1 idle 00:00:00 192.168.1.10

Interface User Mode Idle Peer Address

R3>
C.使得DMZ区访问Inside区映射后的地址时,只做目标地址转换①配置对象:---前面已经定义②配置twice-NAT:nat (DMZ,Inside) source static any any destination static Public-R2 Inside-R2 service tcp23 tcp23③测试:R3#telnet 202.100.1.10
Trying 202.100.1.10 ... Open


User Access Verification

Password:
R2>show users
Line User Host(s) Idle Location
0 con 0 202.100.1.10 00:02:49
* 66 vty 0 idle 00:00:00
192.168.1.3

Interface User Mode Idle Peer Address

R2>
D.使得DMZ区访问DMZ区映射后的地址时,既做源地址转换,又做目标地址转换①配置对象:---前面已经定义②配置twice-NAT:nat (DMZ,DMZ) source static any interface destination static Public-R3 DMZ-R3 service tcp2323 tcp23③允许相同接口的访问:---前面已经配置:same-security-traffic permit intra-interface④测试:R3#telnet 202.100.1.10 2323
Trying 202.100.1.10, 2323 ... Open


User Access Verification

Password:
R3>show users
Line User Host(s) Idle Location
0 con 0 202.100.1.10 00:00:00
66 vty 0 idle 00:07:01 192.168.1.10
67 vty 1 idle 00:06:02 192.168.1.10
* 68 vty 2 idle 00:00:00 192.168.1.10

Interface User Mode Idle Peer Address

R3>


地址 目标 配置 接口 测试 端口 实际 对象 策略 设备 A. 公网 不同 相同 三个 参数 只是 同时 对方 建议 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 vscode 数据库设计 苹果手机和安卓游戏服务器不同步 如何评估服务器能运行几台虚拟机 华为t3500服务器管理口 传奇世界单机改技能数据库 数据库查找显示李姓 服务器芯片与普通桌面芯片 嘉定区智能软件开发设备 网络技术发展案例说明什么 幻塔服务器未准备好无法传送 数据库文件删不干净怎么办 网络安全有防范论文 执法依据数据库意见建议 重庆市林地变更数据库 网络安全简单的绕口令 数据库中链表查询语句 php删除数据库表中的内容 辛集公安局网络安全办理 数仓人员要懂数据库技术 数据库服务器设计与实现 能用的时间服务器地址 近五年来软件开发的失败案例 调查问卷与数据库表设计 国外软件开发注重设计模式么 陕西智慧养老软件开发电话 疫情对网络安全行情影响 at软件开发公司 亲爱的热爱的为什么是网络安全 ibm服务器授权 汝阳软件开发选哪家
0