欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ipsec vpn 穿越 nat (nat-t)

最编程 2024-06-20 15:44:05
...

思科路由器上默认启用nat穿越功能,而思科asa防火墙默认没有启用可以用

crypto isakmp nat-traversal命令启用


如图所示,在asa防火墙上配置ipsec vpn再经过nat设备访问外网,由于ah协议对整个ip包进行验证,所以ah协议不能和nat设备一同工作,而esp只对ip包的有效数据进行验证(不包括ip包头),因而esp可以和nat设备一同工作,但不能够和pat设备协同工作,因为,esp整个有效数据加密,所以端口也被加密,因此pat设备无法得知端口号,从而丢弃数据包。要想使esp与pat同时工作,可以采取nat穿越技术,nat-t原理就是在ip头与esp头之间插入udp\tcp头。

asa基本配置:

iscoasa# conf t
ciscoasa(config)# int e0/0
ciscoasa(config-if)# nameif inside

ciscoasa(config-if)# ip add 192.168.1.1 255.255.255.0
ciscoasa(config-if)# no sh
ciscoasa(config-if)# int e0/1
ciscoasa(config-if)# nameif outside

ciscoasa(config-if)# ip add 192.168.2.1 255.255.255.0
ciscoasa(config-if)# no sh
ciscoasa(config-if)# exit
ciscoasa(config)# route outside 0 0 192.168.2.2

nat基本配置:

nat(config)#int f1/0
nat(config-if)#ip add 192.168.2.2 255.255.255.0
nat(config-if)#no sh

nat(config-if)#int f0/0
nat(config-if)#ip add 192.168.3.2 255.255.255.0
nat(config-if)#no sh

nat(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.1

nat地址转换配置:

nat(config)#access-list 1 permit any

nat(config)#ip nat inside source list 1 int f0/0 overload

nat(config)#int f0/0
nat(config-if)#ip nat outside
nat(config-if)#int f1/0
nat(config-if)#ip nat inside

R4基本配置:

R4(config)#int f1/0
R4(config-if)#ip add 192.168.4.1 255.255.255.0
R4(config-if)#no sh

R4(config)#int f0/0
R4(config-if)#ip add 192.168.5.1 255.255.255.0
R4(config-if)#no sh

R4(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.4.2

做完以上配置应确保nat设备能能够连接到R4

asa ipsec vpn配置:

ciscoasa(config)# crypto isakmp enable outside
ciscoasa(config)# crypto isakmp policy 1
ciscoasa(config-isakmp-policy)# enc
ciscoasa(config-isakmp-policy)# encryption aes
ciscoasa(config-isakmp-policy)# hash sha
ciscoasa(config-isakmp-policy)# authen
ciscoasa(config-isakmp-policy)# authentication pre-share
ciscoasa(config-isakmp-policy)# group 1
ciscoasa(config-isakmp-policy)# exit
ciscoasa(config)# crypto isakmp key Lumia920 address 192.168.4.1
ciscoasa(config)# access-list vpn permit ip 192.168.1.0 255.255.255.0 192.168.$
ciscoasa(config)# crypto ipsec trans
ciscoasa(config)# crypto ipsec transform-set vpnset esp-aes esp-sha-hmac
ciscoasa(config)# crypto map vpnmap 1 ipsec-isakmp
ciscoasa(config)# crypto map vpnmap 1 set peer 192.168.4.1
ciscoasa(config)# crypto map vpnmap 1 set tra
ciscoasa(config)# crypto map vpnmap 1 set transform-set vpnset
ciscoasa(config)# crypto map vpnmap 1 mat
ciscoasa(config)# crypto map vpnmap 1 match ad

ciscoasa(config)# crypto map vpnmap 1 match address vpn

ciscoasa(config)# crypto map vpnmap int outside

R4 ipsec vpn设置:

R4(config)#crypto isakmp policy 1
R4(config-isakmp)#enc
R4(config-isakmp)#encryption aes
R4(config-isakmp)#hash sha
R4(config-isakmp)#authen
R4(config-isakmp)#authentication pre-share
R4(config-isakmp)#group 1
R4(config-isakmp)#exit
R4(config)#crypto isakmp key Lumia920 add 192.168.3.2
R4(config)#access-list 100 permit ip 192.168.5.0 0.0.0.255 192.168.1.0 0.0.0.25

R4(config)#crypto ipsec transform-set vpnset esp-aes esp-sha-hmac

R4(cfg-crypto-trans)#exit

R4(config)#crypto map vpnmap 1 ipsec-isakmp

R4(config-crypto-map)#set peer 192.168.3.2
R4(config-crypto-map)#set tran
R4(config-crypto-map)#set transform-set vpnset
R4(config-crypto-map)#match add
R4(config-crypto-map)#match address 100
R4(config-crypto-map)#exit
R4(config)#int f1/0
R4(config-if)#crypto map vpnmap

此时192.168.1.0网段可以访问到192.168.5.0网段,但192.168.5.0主动发起的连接无法访问到192.168.1.0网段,要想5.0网段在主动发起连接可以访问到1.0网段,应该在nat设备端口映射:

nat(config)#ip nat inside source static udp 192.168.2.1 4500 int f0/0 4500
nat(config)#ip nat inside source static udp 192.168.2.1 500 int f0/0 500