在所有的全加密配置网络中,所有从远程节点过来的流量在到达VPN网关的内部接口之前都是加密的。然后网关将这些安全的(已经解码的)流量发送到本地下一跳节点(172.30.40.33)。在这个例子中,我们将使用我们在“旧式”实现中所使用的相同网络:172.30.40.0/24、172.30.80.0/24和172.30.60.0/24。所有其它的流量都被发送到内部防火墙接口。然后防火墙根据它的策略规则库处理VPN客户端的外部请求。将所有的流量传送到正确的位置的确是需要费一番周折。但为了支持来自非显式定义网络的VPN客户端连接,VPN网关的默认路由必须指向网关路由器的DMZ接口(63.240.22.0.1)。所有的安全网络必须被显式地定义并且使用RS的172.30.40.0/24的网络接口(172.30.40.33)作为下一跳地址。为了使Internet流量能到达防火墙的内部接口(172.30.40.1),我们实现了一条路由来检查流量,然后根据一个流量检查ACL将它转发到恰当的网关。这跟路由器决定加密哪些流量的方法一样,它根据ACL来检查流量,然后进行相应的处理。
既然我们已经解决了安全网络流量和Internet网络流量处理问题,以及在IOS路由器上实现全加密拓扑,我们就可以进行新式VPN配置了。新式和旧式VPN配置的区别很大程度上是在外加的ISAKMP模板上。在旧式配置中,VPN客户端认证、授权和IP地址处理都是作为静态密码表配置的一部分。
在一个单客户端解决方案中(其中用户社区的所有流量传输都通过单个网络访问、ISAKMP和AAA策略实现),这并不会带来任何的限制。而在多客户端环境中,由于需要实现不同的AAA和网络访问策略,这时旧式方法有些不满足要求。ISAKMP模板能够创建不同的ISAKMP模板与不同的ISAKMP客户端配置组和扩展的不同的动态密码图及/或图序列实体一起使用。
为了说明它们的区别,我们将使用新式方法重新创建半隧道和全加密VPN解决方案。就像旧式方法,VPN网关配置由两部分组成:ISAKMP和密码图配置。
ISAKMP配置
A.创建ISAKMP策略:下面这个配置实现了ISAKMP阶段1策略,它同时支持默认DES/SHA/DH-1和支持预共享密匙的更安全的标准3DES/MD5/DH-2:
outlan-rt05(config)#crypto isakmp policy 10
outlan-rt05(config-isakmp)#encr 3des
outlan-rt05(config-isakmp)#hash md5
outlan-rt05(config-isakmp)#authentication pre-share
outlan-rt05(config-isakmp)#group 2
outlan-rt05(config-isakmp)#exit
outlan-rt05(config)#crypto isakmp policy 20
outlan-rt05(config-isakmp)#hash sha
outlan-rt05(config-isakmp)#encryption des
outlan-rt05(config-isakmp)#authentication pre-share
outlan-rt05(config-isakmp)#group 1
B.配置AAA用户和组认证、授权和帐号:半隧道策略将使用本地源用户认证和组授权。全加密策略使用TACACS进行用户认证和本地源组授权。
outlan-rt05(config)#aaa authentication login local-user-auth local
outlan-rt05(config)#aaa authorization network local-group-authz local
outlan-rt05(config)#aaa authentication login aaa-auth group tacacs+
outlan-rt05(config)#tacacs-server host 172.30.40.6
outlan-rt05(config)#tacacs-server key secretkey
C.为这两个策略创建IP地址池:
outlan-rt05(config)#ip local pool OS-VPN 172.30.90.2 172.30.90.14
outlan-rt05(config)#ip local pool FC-VPN 5.0.0.2 5.0.0.254
D.创建loopback接口与地址池:
outlan-rt05(config)#interface loopback 90
outlan-rt05(config-if)#ip address 172.30.90.1 255.255.255.2
outlan-rt05(config-if)#exit
outlan-rt05(config)#interface loopback 5
outlan-rt05(config-if)#ip address 5.0.0.1 255.255.255.0
outlan-rt05(config-if)#exit
outlan-rt05(config)#
E.创建半隧道ACL:
outlan-rt05(config)#ip access-list extended SPLIT-TUNNEL
outlan-rt05(config-ext-nacl)#permit ip 172.30.40.0 0.0.0.255 172.30.90.0 0.0.0.15
outlan-rt05(config-ext-nacl)#permit ip 172.30.80.0 0.0.0.255 172.30.90.0 0.0.0.15
outlan-rt05(config-ext-nacl)#permit ip 172.30.60.0 0.0.0.255 172.30.90.0 0.0.0.15
outlan-rt05(config-ext-nacl)#exit
outlan-rt05(config)#
F.创建客户端配置组:半隧道策略的ISAKMP组和全加密策略必须分开创建:
outlan-rt05(config)#crypto isakmp client configuration group split-tunnel
outlan-rt05(config-isakmp-group)#key secretkey
outlan-rt05(config-isakmp-group)#dns 172.30.40.2
outlan-rt05(config-isakmp-group)#domain outlan.net
outlan-rt05(config-isakmp-group)#pool OS-VPN
outlan-rt05(config-isakmp-group)#acl SPLIT-TUNNEL
outlan-rt05(config-isakmp-group)#max-logins 2
outlan-rt05(config-isakmp-group)#max-users 13
outlan-rt05(config-isakmp-group)#save-password
outlan-rt05(config-isakmp-group)#banner ^
Enter TEXT message. End with the character '^'.
You are connected to OUTLAN. All outlan traffic is secured.
^
outlan-rt05(config-isakmp-group)#exit
outlan-rt05(config)# crypto isakmp client configuration group full-crypto
outlan-rt05(config-isakmp-group)#key secretkey
outlan-rt05(config-isakmp-group)#dns 172.30.40.2
outlan-rt05(config-isakmp-group)#domain outlan.net
outlan-rt05(config-isakmp-group)#pool FC-VPN
outlan-rt05(config-isakmp-group)#save-password
outlan-rt05(config-isakmp-group)#include-local-lan
outlan-rt05(config-isakmp-group)#pfs
outlan-rt05(config-isakmp-group)#max-users 253
outlan-rt05(config-isakmp-group)#max-logins 1
outlan-rt05(config-isakmp-group)#banner ^
Enter TEXT message. End with the character '^'.
This is a full crypto VPN connection.
^
outlan-rt05(config-isakmp-group)#exit
G.配置CTCP端口定义(并禁用路由器上的HTTP和HTTPS服务):
outlan-rt05(config)#crypto ctcp port 443 10000
outlan-rt05(config)#no ip http secure-server
outlan-rt05(config)#no ip http server
H.配置NAT透明活跃时间:NAT透明默认是激活的,但你需要设置一个活跃时间。然后,如果你只想使用CTCP,你可以禁用NAT回环:
outlan-rt05(config)#crypto isakmp nat keepalive 20
outlan-rt05(config)#no crypto ipsec nat-transparency udp-encaps
配置ISAKMP模板:ISAKMP模板是用来做新式配置的。注意ISAKMP组名和ISAKMP策略名应该是一样的。这不是一个硬性要求,但如果你有很多不同的组和模板,这样做可以让你更容易管理它们:
outlan-rt05(config)#crypto isakmp profile split-tunnel
% A profile is deemed incomplete until it has match identity statements
outlan-rt05(conf-isa-prof)#description ISAKMP for Split Tunneling Cisco Soft Clients
outlan-rt05(conf-isa-prof)#match identity group split-tunnel
outlan-rt05(conf-isa-prof)#client authentication list local-user-auth
outlan-rt05(conf-isa-prof)#isakmp authorization list local-group-authz
outlan-rt05(conf-isa-prof)#client configuration address respond
outlan-rt05(conf-isa-prof)#keepalive 20 retry 10
outlan-rt05(conf-isa-prof)#exit
outlan-rt05(config)#
outlan-rt05(config)# crypto isakmp profile full-crypto
% A profile is deemed incomplete until it has match identity statements
outlan-rt05(conf-isa-prof)#description ISAKMP for Full Crypto Cisco Soft Clients
outlan-rt05(conf-isa-prof)#match identity group full-crypto
outlan-rt05(conf-isa-prof)#client authentication list aaa-auth
outlan-rt05(conf-isa-prof)#isakmp authorization list local-group-authz
outlan-rt05(conf-isa-prof)#client configuration address respond
outlan-rt05(conf-isa-prof)#keepalive 20 retry 10
outlan-rt05(conf-isa-prof)#exit
outlan-rt05(config)#
密码图配置
定义了ISAKMP组和模板后,我们继续配置(更简单的)新式密码图。
A.创建转换集:因为我们仅支持Cisco VPN软件客户端,所以我们实际上只需要一个阶段2策略:
outlan-rt05(config)#crypto ipsec transform-set 3DES-MD5-Z esp-3des esp-md5-hmac comp-lzs
B.创建动态密码图:因为我们支持两个不同的VPN策略,我们有一些实现动态密码图的选项要配置。我们可以实现两个不同的图,或者实现一个图及两个序列。下面是一个实现一个图及两个序列的例子:
outlan-rt05(config)#crypto dynamic-map Software-Client 10
outlan-rt05(config-crypto-map)#set security-association lifetime seconds 12000
outlan-rt05(config-crypto-map)#set transform-set 3DES-MD5-Z
outlan-rt05(config-crypto-map)#set isakmp-profile split-tunnel
outlan-rt05(config-crypto-map)#reverse-route
outlan-rt05(config-crypto-map)#exit
outlan-rt05(config-crypto-map)#crypto dynamic-map Software-Client 20
outlan-rt05(config-crypto-map)#set transform-set 3DES-MD5-Z
outlan-rt05(config-crypto-map)#set pfs group2
outlan-rt05(config-crypto-map)#set isakmp-profile full-crypto
outlan-rt05(config-crypto-map)#reverse-route
outlan-rt05(config-crypto-map)#exit
C.创建静态密码图:
outlan-rt05(config)#crypto map outlan-ipsec-gw05 10 ipsec-isakmp dynamic Software-Client
D.安装静态密码图:一旦密码图安装好,它就可以支持客户端连接了。然而,为了支持全密码非安全流量处理,我们需要实现策略路由:
outlan-rt05(config)#int fastEthernet 0/0
outlan-rt05(config-if)#crypto map outlan-ipsec-gw05
*Dec 8 04:32:00.479: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
outlan-rt05(config-if)#exit
E:安装路由策略:正如我们上面所提到的,为了处理离线流量,我们需要路由器在处理特定类型流量时忽略它的默认路由。这个技巧是通过创建一个流量匹配ACL和一个将匹配的流量指向另一个网关的简单路由图实现的:
outlan-rt05(config)#ip access-list extended redirect
outlan-rt05(config-ext-nacl)#permit tcp 5.0.0.0 0.0.0.255 any eq 80
outlan-rt05(config-ext-nacl)#permit tcp 5.0.0.0 0.0.0.255 any eq 443
outlan-rt05(config-ext-nacl)#permit tcp 5.0.0.0 0.0.0.255 any eq ftp
outlan-rt05(config)# route-map int-acc permit 10
outlan-rt05(config-route-map)#match ip address redirect
outlan-rt05(config-route-map)#set ip next-hop 172.30.40.1
outlan-rt05(config)#interface FastEthernet0/1
outlan-rt05(config-if)#ip policy route-map int-acc
outlan-rt05(config-if)#exit
outlan-rt05(config)#
这样多策略VPN网关就配置好了。对于客户端模板配置,管理员可能为每一个ISAKMP分别创建一个客户端模板。下面是半隧道和全加密拓扑的启动器文件:
[main]
Description= New_School_ST
Host=63.240.22.2
AuthType=1
GroupName=split-tunnel
GroupPwd=secretkey
TunnelingMode=1
TcpTunnelingPort=10000
[main]
Description=New_School_FC
Host=63.240.22.2
AuthType=1
GroupName=full-crypto
GroupPwd=secretkey
TunnelingMode=1
TcpTunnelingPort=443
这就完成了软件客户端VPN配置。
【编辑推荐】
- IPsec和SSL VPNs基础知识理解
- 巧妙解决VPN网络访问故障两例
- 您的企业网络应该实现哪一种VPN?
- 一步到位 艾泰连锁机构VPN解决方案(图示)
- 中央人民广播电台采用Array SSL VPN解决方案