我在之前的文章《建立IOS基于路由器的VPN网关》中提到过有两种不同的部署Cisco软件客户端的方法。第二种创建VPN客户端网关的方法是全加密的,或者我们称为“新式”拓扑。一般都认为这种拓扑比广泛应用的“半隧道VPN”更安全,这是我们在前一篇文章中讨论过的。下面是就这种全加密网络拓扑: 在所有的全加密配置网络中,所有从远程节点过来的流量在到达VPN网关的内部接口之前都是加密的。
然后网关将这些安全的(已经解码的)流量发送到本地下一跳节点(172.30.40.33)。在这个例子中,我们将使用我们在“旧式”实现中所使用的相同网络:172.30.40.0/24、172.30.80.0/24和172.3……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
我在之前的文章《建立IOS基于路由器的VPN网关》中提到过有两种不同的部署Cisco软件客户端的方法。第二种创建VPN客户端网关的方法是全加密的,或者我们称为“新式”拓扑。一般都认为这种拓扑比广泛应用的“半隧道VPN”更安全,这是我们在前一篇文章中讨论过的。下面是就这种全加密网络拓扑:
在所有的全加密配置网络中,所有从远程节点过来的流量在到达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配置。
作者
Michael J. Martin作为网络和Unix信息管理员已经在信息技术领域工作了17多年。他早期在研究和ISP方面进行的设计、实现和支持MIS基础架构的经历,为他当前在大型因特网和安全架构的工作上提供了独特的视角。作为一个网络架构师,他已经为多家公司设计过高速、高可用的LAN/WAN网络,如ANS/AOL、Philips和Edgix Corporation等,它也给许多业务和区域ISP提供网络顾问服务。Michael也撰写了很多关于网络和安全问题的文章。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
大企业分支互联需要统一管理
随着网络规模的不断扩大和VPN网关部署数量的不断增多,如何对VPN网关进行有效管理是各个企业所面临的一个大问题……
-
Cisco EzVPN的Network-to-Network VPN网关配置
本文中我们将检查Cisco EzVPN使用Cisco路由器作为VPN网关和Cisco路由器硬件客户端来支持Network-to-Network VPN拓扑。
-
如何使用Cisco路由器创建IPsec VPN
本专题将详细地、一步步地解释Cisco IOS IPSec VPN配置概念和实现基于软件及硬件的VPN网关。