千家信息网

远程访问虚拟专用网------EASY虚拟专用网

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,1.Easy 虚拟专用网需要解决的问题阶段1----建立管理连接协商采用何种方式建立管理连接通过DH算法共享密钥信息对等体彼此进行身份验证阶段2----建立数据连接定义对等体间保护何种流量定义用来保护
千家信息网最后更新 2024年11月22日远程访问虚拟专用网------EASY虚拟专用网

1.Easy 虚拟专用网需要解决的问题

阶段1----建立管理连接

  • 协商采用何种方式建立管理连接
  • 通过DH算法共享密钥信息
  • 对等体彼此进行身份验证

阶段2----建立数据连接

  • 定义对等体间保护何种流量
  • 定义用来保护数据的安全协议
  • 定义传输模式

2.使用XAUTH做用户验证

(1) XAUTH

IPsec 协议最初的设计并未考虑用户验证问题,所以IETF (internet  Engineering  Task Force , 因特网工程任务部) 引入了一个RFC的草案---XAUTH, 它是一个虚拟专用网网管的增强特性,提供用户名和密码的方式来验证用户身份。由于这个过程是在俩个连接建立之间完成的,所以被称为"阶段1.5"。用户验证自然就会涉及用户名和密码的存储方式,通常情况下有两种:
  1. 存储在虚拟专用网网关设备的内部数据库中
  2. 存储在第三方设备上

(2)AAA的定义

AAA是Authentication(验证),Authorization(授权),Accounting(统计)的缩写,它提供了在网络设备上配置访问控制的基本框架

验证: 用户是谁?
对用户的合法性进行验证,包括用户名,密码等信息的验证

授权:用户可以做什么?
在用户通过验证后,为用户指定其能够使用的服务等权限

统计:用户做过什么?
在用户验证,授权成功后,记录用户的操作等信息,以便用于记账

实现AAA服务器主要使用RADIUS协议和TACACS+协议
RADIUS(远程验证拨入用户服务)是一个全开放的标准协议,厂商或用户可以灵活地修改RADIUS

TACACS+(终端访问控制器访问控制系统)是Cisco设计的私有协议

  • 路由器开启AAA

Router(config)# aaa new-model

3.组策略

  • .地址池

    远程访问虚拟专用网的客户端之所以很难与虚拟专用网的网关建立连接,就是因为客户端没有固定的IP地址,在这种"动态"的情况下,最好的办法就是让使虚拟专用网设备像DHCP服务器一样为每个通过验证的客户端"推送"IP地址。这样,由于客户端的IP地址是虚拟专用网网关动态分配的,虚拟专用网设备自然也就知道该与哪个IP建立虚拟专用网连接。

  • DNS和网关

和DHCP服务器一样,除了给客户端分配IP地址以外,还要分配网关和DNS,这样客户端就拥有了内网的IP、网关及DNS等必备的资源,真正成为内网的一员

  • 共享密钥

在远程访问虚拟专用网中,虚拟专用网网关需要与多组客户端"共享密钥",因此在配置虚拟专用网时需要为每组客户端设置不同的共享密钥,客户端的密钥并不是虚拟专用网网关推送的,而是需要用户通过客户端软件配置在主机上,而这个过程一般是由公司的网络管理员来实现的,那么这个密钥自然是保存在客户端主机本地了,因此才有了"阶段1.5"的存在

  • 分离隧道

默认情况下,客户端与虚拟专用网网关建立隧道后,只能访问内网授权的资源,这是因为隧道会允许所有的流量,也就是说所有的流量必须经过隧道到达公司,自然也就不允许任何流量访问,而对于客户端而言,所以需要针对远程访问虚拟专用网配置ACL来分离隧道

  • 分离DNS

当客户端主机通过远程访问虚拟专用网连接到公司,即使隧道分离后,客户端访问Internet的web服务器时,也需要使用公司内网的DNS解析,但这不是一个合理的过程,如果客户端每次访问百度,都要经过公司内网进行DNS解析,其实是没必要的,太浪费资源了,所以要实现客户端访问公司的web服务器时,使用公司内网的DNS解析,若访问百度,则使用的DNS,如果要实现不同的域名使用不同的DNS,就需要用到了分离DNS

4.动态Crypto Map

我们无法实现在虚拟专用网设备的静态crypto map中指定客户端的地址(客户端的地址由虚拟专用网的DHCP服务分发,不是固定的),所以需要将静态crypto map中需要的参数被动态填充,使用动态crypto map 必须采用ISAKMP/IKE发起协商,而且在实现远程访问虚拟专用网的时候通常在虚拟专用网网关上同时配置静态和动态的crypto map,因为只有一台具有静态配置的设备可以发起IPSec的隧道,也正是如此,动态的crypto map很少被用于L2L(局域网to局域网)会话建立,

在实现远程访问虚拟局域网的时候,一般会先配置transform-set,因为指定传输集与peer的IP地址无关,可以将传输集直接应用到动态crypto map;由于在接口上只能配置一个crypto map,且虚拟专用网网关上必须有静态crypto map,所以需将动态crypto map 应用到静态的crypto map中,再将静态crypto map应用到接口上,这就是配置crypto map。

5.配置案例

1.配置IP 并且除了R4 别的全部做默认路由

桥接一个主机是64位的,要用虚拟专用网的客户端程序

如R3配置

R3(config)#int f0/0R3(config-if)#ip add 192.168.0.10 255.255.255.0R3(config-if)#no shutdownR3(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1

R1配置:

aaa配置如下

R1(config)#aaa new-modelR1(config)#aaa authentication login bdqn-authen localR1(config)#aaa authorization network bdqn-author localR1(config)#username bdqn secret cisco  //创建用户 加密

阶段1配置如下

R1(config)#crypto isakmp policy 10R1(config-isakmp)#encryption 3desR1(config-isakmp)#hash shaR1(config-isakmp)#authentication pre-share R1(config-isakmp)#group 2R1(config-isakmp)#exit

阶段1.5配置如下

R1(config)#ip local pool bdqn-pool 192.168.1.200 192.168.1.210          //创建地址池R1(config)#ip access-list extended split-aclR1(config-ext-nacl)#permit ip 192.168.0.0 0.0.0.255 any R1(config-ext-nacl)#exit

创建组策略如下

R1(config)#crypto isakmp client configuration group test-groupR1(config-isakmp-group)#key 123456R1(config-isakmp-group)#pool bdqn-poolR1(config-isakmp-group)#dns 192.168.0.10R1(config-isakmp-group)#acl split-aclR1(config-isakmp-group)#split-dns bdqn.comR1(config-isakmp-group)#exit

配置动态Map

R1(config)#crypto ipsec transform-set bdqn-set esp-3des esp-sha-hmac  R1(cfg-crypto-trans)#exitR1(config)#crypto dynamic-map bdqn-dymap 1R1(config-crypto-map)#set transform-set bdqn-setR1(config-crypto-map)#exitR1(config)#crypto map bdqn-stamap 1000 ipsec-isakmp dynamic bdqn-dymapR1(config)#crypto map bdqn-stamap client authentication list bdqn-authenR1(config)#crypto map bdqn-stamap isakmp authorization list bdqn-authorR1(config)#crypto map bdqn-stamap client configuration address respond //用于让客户端先发起连接R1(config)#int f0/1R1(config-if)#crypto map bdqn-stamap//应用到外接口

安装虚拟专用网的客户端

第一和第二个框位描述信息随便填,
第三个框写R1外接口的iP
下面写组策略的用户名和密码,输入两遍密码

输入aaa的账号密码

验证 用虚拟机ping

如果把R1换为防火墙

其他配置都一样

在防火墙上配置如下:

进入外接口:nameif outside
进入内接口:nameif inside
ciscoasa(config)# route outside 0 0 200.0.0.2 //防火墙走默认路由

ciscoasa(config)# username bdqn password 123456ciscoasa(config)# crypto isakmp enable outsideciscoasa(config)# crypto isakmp policy 10ciscoasa(config-isakmp-policy)# encryption 3des ciscoasa(config-isakmp-policy)# hash sha ciscoasa(config-isakmp-policy)# authentication pre-share ciscoasa(config-isakmp-policy)# group 2ciscoasa(config-isakmp-policy)# exitciscoasa(config)# ip local pool bdqn-pool 192.168.1.200-192.168.1.210ciscoasa(config)# access-list split-acl permit ip 192.168.0.0 255.255.255.0 anyciscoasa(config)# group-policy test-group internal ciscoasa(config)# group-policy test-group attributesciscoasa(config-group-policy)# split-tunnel-policy tunnelspecified ciscoasa(config-group-policy)# split-tunnel-network-list value split-aclciscoasa(config-group-policy)# exitciscoasa(config)# tunnel-group bdqn-group type ipsec-ra ciscoasa(config)# tunnel-group bdqn-group general-attributesciscoasa(config-tunnel-general)# default-group-policy test-groupciscoasa(config-tunnel-general)# exitciscoasa(config)# tunnel-group bdqn-group ipsec-attributesciscoasa(config-tunnel-ipsec)# pre-shared-key bdqn-keyciscoasa(config-tunnel-ipsec)# exitciscoasa(config)# crypto ipsec transform-set bdqn-set esp-3des esp-sha-hmac ciscoasa(config)# crypto dynamic-map bdqn-dymap 1 set  transform-set bdqn-setciscoasa(config)# crypto map bdqn-stamap 1000 ipsec-isakmp dynamic bdqn-dymapciscoasa(config)# crypto map bdqn-stamap int outside
0