济群信息IT服务-企业云网 技术社区

标题: Cisco系列:Easy-VPN详细剖析(路由器、防火墙) [打印本页]

作者: 孤独的骗子    时间: 2019-8-28 00:59
标题: Cisco系列:Easy-VPN详细剖析(路由器、防火墙)
一、 EASY-VPN简介
   Ipsecvpn实现站点到站点的VPN
   Easyvpn实现远程VPN
  1. Easy-vpn面临的问题
1)因为整个ipsec VPN加密传输的根本就是事先配置在设备上的预共享秘钥,一旦秘钥外泄,整个ipsec VPN所作的努力全都会付之东流
2)建立L2L IPSEC VPN时,双方都有固定的ip地址,这样我们才有可能在配置crypto map的时候指定对方的peer,才有可能配置crypto ACL来定义哪些流量将触发链接的建立。但是对于远程访问VPN而言,客户端一侧的ip是不可能固定的
3)通过建立动态crypto map,映射到静态crypto map上的方法实现将xauth和组策略绑定到端口上,因为端口是不允许绑定动态crypto map的。
  2. XAUTH
1)Xauth(扩展认证),Ipsec协议最初的设计并未考虑用户验证的问题,所以IETF引入了一个RFC的草案—XAUTH
2)Xauth提供用户名和密码的方式来验证用户身份,用于解决easy-vpn密钥外泄的问题。
3)既然存在用户验证自然就会涉及用户名和密码的存储方式,通常情况下有两种方式:
l存储在VPN网关设备的内部数据库中。
l存储在第三方设备上,如一台AAA服务器
AAA服务器主要使用RADIUS(remote authentication dial in user server,远程验证拨入用户服务)协议和TACACS+(terminal access controller access control system,终端访问控制器访问控制系统)协议

Radius是通用协议,协议类型为UDP。
Tacacs+是思科独有的协议,只有思科的设备才能使用,但是协议类型是TCP相对radius安全很多
  3. 组策略
1)因为客户端的IP是不固定的,所以在配置crypto的时候无法指定peer,这时我们可以让VPN网关去推送这些策略给客户端。
2)策略主要包括:
l  地址池:分配客户端地址
l  DNS和网关:和DHCP一样,分配给客户端网关IP和DNS
l  共享密钥:分配密钥给客户端
l  分离隧道:实现客户端在连接VPN的同时可以访问internet
l  分离DNS:实现客户端访问内网的网站使用内网的DNS,访问外网的网站,使用运营商的DNS
二、实例(路由器)

  R1的VPN配置
    R1(config)#intf 0/1
    R1(config-if)#ipadd 192.168.1.1 255.255.255.0
    R1(config-if)#nosh
    R1(config-if)#exit
    R1(config)#intf 0/0
    R1(config-if)#ipadd 202.2.2.1 255.255.255.0
    R1(config-if)#nosh
    R1(config-if)#exit
    R1(config)#iproute 0.0.0.0 0.0.0.0 202.2.2.2
首先配置xauth
    R1(config)#aaa new-model
      开启AAA
    R1(config)#aaa authentication login benet-authen local
      配置VPN客户端认证方式,local为本地认证,也就是在路由器上手动配置账户
    R1(config)#aaa authorization network benet-author local
      为远程访问VPN客户端进行授权
    R1(config)#username benet secret 123
      为客户端创建账户
    R1(config)#cryptoisakmp policy 10
    R1(config-isakmp)#encryption3des
    R1(config-isakmp)#hashsha   
    R1(config-isakmp)#authenticationpre-share
    R1(config-isakmp)#group2
      配置isakmp策略
    R1(config-isakmp)#exit
定义组策略
    R1(config)#ip local pool benet-pool 172.16.0.1 172.16.0.10
      创建地址池
    R1(config)#ip access-list extended split-acl
    R1(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any
      配置隧道分离需要的ACL
    R1(config-ext-nacl)#exit
    R1(config)#cryptoisakmp client configuration group benet-group
    R1(config-isakmp-group)#keybenet-key       预共享密钥
    R1(config-isakmp-group)#poolbenet-pool     应用之前配置的地址池
    R1(config-isakmp-group)#dns202.16.41.51    指定DNS
    R1(config-isakmp-group)#aclsplit-acl         调用隧道分离
    R1(config-isakmp-group)#split-dnsbenet.com  分离DNS
      配置用户组及其密钥,并且关联地址池等
    R1(config-isakmp-group)#exit
    R1(config)#crypto ipsec transform-set benet-set esp-3desesp-sha-hmac
    R1(cfg-crypto-trans)#exit
      配置传输集
创建动态crypto和静态crypto并关联
    R1(config)#crypto dynamic-map benet-dymap 1
    R1(config-crypto-map)#set transform-set benet-set
      创建动态crypto并且关联传输集
    R1(config)#cryptomap benet-stamap 1000 ipsec-isakmp dynamic benet-dymap
      配置静态crypto关联动态crypto
    R1(config)#cryptomap benet-stamap client authentication list benet-authen
      配置静态crypto关联指定授权方式
    R1(config)#cryptomap benet-stamap isakmp authorization list benet-author
      配置静态crypto授权客户端使用IPsecVPN隧道
    R1(config)#cryptomap benet-stamap client configuration address respond
      让客户端首先发起连接
    R1(config)#intf 0/0
    R1(config-if)#cryptomap benet-stamap
      将静态map应用到接口
    R1(config-if)#end
    *Mar  1 00:08:34.355: %CRYPTO-6-ISAKMP_ON_OFF:ISAKMP is ONr
    R1#wr
    Buildingconfiguration...
    [OK]

   然后在客户端安装vpnclient去测试
三、 Asa配置实例

   R1的配置

ASA防火墙的VPN配置
    ciscoasa#conf t
    ciscoasa(config)#int e 0/0
    ciscoasa(config-if)#nameif inside
    ciscoasa(config-if)#security-level 100
    ciscoasa(config-if)#ip add 192.168.1.1 255.255.255.0
    ciscoasa(config-if)#no sh
    ciscoasa(config-if)#exit
    ciscoasa(config)#int e 0/1
    ciscoasa(config-if)#nameif outside
    ciscoasa(config-if)#security-level 0
    ciscoasa(config-if)#ip add 202.1.1.1 255.255.255.0
    ciscoasa(config-if)#no sh
    ciscoasa(config-if)#exit
    ciscoasa(config)#route outside 0.0.0.0 0.0.0.0 202.1.1.2
首先配置isakmp第一阶段的传输集
    ciscoasa(config)# username benet password 123
      创建认证用户
    ciscoasa(config)# crypto isakmp enable outside
      启用asa的crypto功能
    ciscoasa(config)#crypto isakmp policy 10
    ciscoasa(config-isakmp-policy)#encryption 3des
    ciscoasa(config-isakmp-policy)#hash sha
    ciscoasa(config-isakmp-policy)#authentication pre-share
    ciscoasa(config-isakmp-policy)#group 2
      配置isakmp第一阶段的传输集
    ciscoasa(config-isakmp-policy)#exit
定义组策略,阶段1.5
    ciscoasa(config)# ip local pool benet-pool172.16.0.1-172.16.0.10
      定义分配给客户端的地址池
    ciscoasa(config)# access-list split-acl permit ip 192.168.1.0255.255.255.0 any
      隧道分离实现访问VPN的同时,可以连接internet
    ciscoasa(config)# group-policy test-group internal

      Internal表示策略定义在本地,external表示策略定义在第三方服务器上(一般是AAA服务器上)。
    ciscoasa(config)# group-policy test-group attributes
      进入定义组策略的子命令行
    ciscoasa(config-group-policy)# split-tunnel-policytunnelspecified
      Tunnelall:所有流量必须走隧道,即不做分离隧道,这是默认设置。
      Tunnelspcified:所有匹配acl的流量走隧道。
      Excludespecified:所有不匹配ACL的流量走隧道。
    ciscoasa(config-group-policy)# split-tunnel-network-listvalue split-acl
      关联隧道分离
    ciscoasa(config-group-policy)#exit
    ciscoasa(config)#tunnel-group benet-group type ipsec-ra
    ciscoasa(config)#tunnel-group benet-group general-attributes
    ciscoasa(config-tunnel-general)#address-pool benet-pool

    ciscoasa(config-tunnel-general)#default-group-policy test-group
    ciscoasa(config-tunnel-general)#exit
      定义隧道组,将组策略关联,这里和路由器稍有区别
    ciscoasa(config)# tunnel-group benet-group ipsec-attributes
    ciscoasa(config-tunnel-ipsec)# pre-shared-key benet-key
    ciscoasa(config-tunnel-ipsec)# exit
      定义隧道组的共享密钥
isakmp第二阶段
    ciscoasa(config)# crypto ipsec transform-set benet-setesp-3des esp-sha-hmac
      设置传输集指定加密算法和身份验证算法
    ciscoasa(config)# crypto dynamic-map benet-dymap 1 settransform-set benet-set
      创建动态map并且关联ipsec
    ciscoasa(config)# crypto map benet-stamap 1000 ipsec-isakmpdynamic benet-dymap
      创建静态map并且映射动态map
    ciscoasa(config)# crypto map benet-stamap interface outside
      将静态map映射到接口
    ciscoasa(config)#end
    ciscoasa#wr
    Buildingconfiguration...

     最后验证方式和路由器一样




欢迎光临 济群信息IT服务-企业云网 技术社区 (http://forum.jiquninfo.com/) Powered by Discuz! X3.2