PKI系列:(5)证书下的Easy VPN【远程访问 硬件与软件拨号】 | 网络之路博客(公众号同名)(其他平台网络之路Blog)
登录
  • 欢迎网络之路博客网站,分享有用的知识点,公众号:网络之路博客,B站:网络之路Blog
  • 如果您觉得本站对您有帮助,那么赶紧使用Ctrl+D 收藏吧,支持我们下
  • 远程技术支持的淘宝店铺已经开张了哦,传送门:需要的朋友可以点击查看

PKI系列:(5)证书下的Easy VPN【远程访问 硬件与软件拨号】

【汇总】部署自己企业内部的PKI架构

文档帖子汇总实战系列学习视频学习必备软件
    博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com

说明

      Easy VPN使用证书的认证,一个字:难 ,这个难是体现在部署起来比较困难,因为Easy VPN相对是给远程用户提供连接的、或者是分支站点,通常是与CA Server不能正常通信的可能性比较大,所以只能通过离线来申请证书,Easy VPN的证书部署,是所有VPN中难点最大的一个,需要注意的地方比较多,虽然,部署起来比较难点,但是,好处还是有的,那就是相对于预共享密钥的方式来说安全的很多,这对于一个需要安全性比较高的企业来说,证书是不二的选择。

pki

图花了点时间弄出来的,最近在学画拓扑图, 地址信息根据图上描述的一样, 实现的效果是,IOS和ASA上定义两个group,这两个group给hardware和Software来使用,并且给于不同的策略。CA Server使用的是2003 CA。
一、NTP时间同步
所有设备之间的NTP需要同步

二、RootCA服务器
参考服务器部署的设置,这里省略掉。

三、EZVPN Server申请证书
包括ASA和IOS的EZVPN Server申请证书,离线方式就不介绍了,跟之前的介绍的一模一样,没什么区别,主要体现在软件客户端怎样申请。

http://12.1.1.1/certsrv/mscep/mscep.dll 申请证书之前,可以先打开SCEP的页面,使用一个一次性密码后,就按F5刷新一次。

IOS Server
Router-IOS_server(config)#$generate rsa modulus 2048 label cciese exportable
Router-IOS_server(config)#crypto pki trustpoint IOS
Router-IOS_server(ca-trustpoint)#enrollment url http://12.1.1.1/certsrv/mscep/mscep.dll
Router-IOS_server(ca-trustpoint)#rsakeypair cciese
Router-IOS_server(ca-trustpoint)#subject-name cn=Router-IOS_server.ccie.com, o=ccie, ou=cciese, c=cn

pki

下载根证书

pki

申请个人证书

ASA Server
Router-ASA-server(config)# crypto key generate rsa label cciese modulus 2048
Router-ASA-server(config)# crypto ca trustpoint ASA
Router-ASA-server(config-ca-trustpoint)# enrollment url http://12.1.1.1/certsrv/mscep/mscep.dll
Router-ASA-server(config-ca-trustpoint)# subject-name cn=ASA_server.ccie.com, o=ccie, ou=cciese, c=cn
Router-ASA-server(config-ca-trustpoint)# keypair cciese
Router-ASA-server(config-ca-trustpoint)# exit

pki

申请下载根证书

pki

申请个人证书。

四、EZVPN Router-Client申请证书

Router-Client(config)#crypto key generate rsa modulus 2048 label cciese exportable
Router-Client(config)#crypto pki trustpoint Router-Client
Router-Client(ca-trustpoint)#enrollment url http://12.1.1.1/certsrv/mscep/mscep.dll
Router-Client(ca-trustpoint)#subject-name cn=Hardware.ccie.com, o=ccie, ou=cciese, c=cn
Router-Client(ca-trustpoint)#rsakeypair cciese
Router-Client(ca-trustpoint)#revocation-check none

pki

申请下载根证书

pki

申请个人证书

这里已经申请了三张证书,分别是IOS Server、ASA Server和硬件Router-Client的证书,在Router-Client上对CRL的检查关闭,因为远程访问的VPN一般对于CA服务器的访问可能性比较小。

另外一个非常关键的地方:就是Router-Client的OU必须等于 EZVPN Server上的group name,因为在验证的时候,它会以OU来作为group进行匹配。

五、服务器颁发证书

pki

全选——-右击—–颁发即可

六、Software Router-Client离线申请根证书
关于软件离线申请证书,是EZVPN里面最讲究的,如果顺序错误了,那么认证就会失败。

1、产生申请的信息

pki

点击Enroll

pki

Online是在线通过SCEP获取证书,通常在实际工作中,离线申请比较多,所以选择 File—–注意这里File encoding:为Base-64,Next

pki

其中,CN和OU必选, OU是非常关键的,它就相当于group的name,这里为cciers,那么在Server上就必须创建一个group为cciers,然后点击 Enroll

pki

它提示,这个文件保存在这个软件的安装目录下,需要到这个目录下找到这个文件。

pki

通过记事本或者写字板打开这个文件

pki

以邮件或者QQ传给CA 管理员

在CA Server上,输入http://12.1.1.1/certsrv/

pki

进入证书页面后,先下载根证书,下载一个CA证书

pki

以Base 64形式保存到本地,建议修改一个名字,比如 Root,然后返回主页

pki

申请一个证书————-高级证书申请————使用Base 64——–输入软件客户端生成的PKCS#10的文本。

pki
pki

提交即可

进入——证书颁发机构———–挂机的申请———颁发这个证书

pki

查看挂起的证书申请

pki

以Based 64格式保存到本地,名字最好区分以下。

pki

桌面就有两个证书了,一个是根证书,另外一个是Software Router-Client的个人证书,这时候需要通过邮件或者QQ的形式发送给申请者。

这两张证书一定要放在软件客户端的 C:\Program Files\Cisco Systems\VPN Router-Client\Certificates 这个目录文件下,路径根据自己安装定义的盘符选择。

pki

把申请的两个证书放入指定的目录下

pki

点击import开始导入证书,先导入根证书———-然后个人证书——–顺序不能错误,否则证书会无效

pki

这时候store已经变为可用状态了,之前为Request状态。

VPN配置

IOS Server
Router-IOS_server(config)#crypto isakmp policy 10
Router-IOS_server(config-isakmp)#group 2
Router-IOS_server(config-isakmp)#encryption 3des
Router-IOS_server(config-isakmp)#exit

Router-IOS_server(config)#crypto isakmp identity dn
这句话非常重要,因为默认情况下,IOS是以hostname来检查的。在EZVPN下面必须以DN,因为要使用OU来匹配group
Router-IOS_server(config)#crypto isakmp Router-Client configuration group cciese
Router-IOS_server(config-isakmp-group)#save-password

Router-IOS_server(config)#ip local pool ippool 123.1.1.1 123.1.1.254
Router-IOS_server(config)#ip access-list extended split
Router-IOS_server(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any
Router-IOS_server(config-ext-nacl)#exit

Router-IOS_server(config)#crypto isakmp Router-Client configuration group cciers
Router-IOS_server(config-isakmp-group)#acl split
Router-IOS_server(config-isakmp-group)#pool ippool
Router-IOS_server(config-isakmp-group)#exit

Router-IOS_server(config)#aaa new-model n
Router-IOS_server(config)#aaa authentication login auth local
Router-IOS_server(config)#aaa authorization network auth local
Router-IOS_server(config)#username admin password cciese

Router-IOS_server(config)#crypto isakmp profile hardware
% A profile is deemed incomplete until it has match identity statements
Router-IOS_server(conf-isa-prof)#match identity group cciese
Router-IOS_server(conf-isa-prof)#Router-Client configuration address respond
Router-IOS_server(conf-isa-prof)#Router-Client authentication list auth
Router-IOS_server(conf-isa-prof)#isakmp authorization list auth
Router-IOS_server(conf-isa-prof)#virtual-template 100

Router-IOS_server(config)#crypto isakmp profile software
% A profile is deemed incomplete until it has match identity statements
Router-IOS_server(conf-isa-prof)#match identity group cciers
Router-IOS_server(conf-isa-prof)#Router-Client configuration address respond
Router-IOS_server(conf-isa-prof)#Router-Client authentication list auth
Router-IOS_server(conf-isa-prof)#isakmp authorization list auth
Router-IOS_server(conf-isa-prof)#virtual-template 101

Router-IOS_server(config)#crypto ipsec transform-set trans esp-des esp-md5-hmac

Router-IOS_server(config)#crypto ipsec profile hardware
Router-IOS_server(ipsec-profile)#set isakmp-profile hardware
Router-IOS_server(ipsec-profile)#set transform-set trans
Router-IOS_server(ipsec-profile)#exit

Router-IOS_server(config)#crypto ipsec profile software
Router-IOS_server(ipsec-profile)#set isakmp-profile software
Router-IOS_server(ipsec-profile)#set transform-set trans

Router-IOS_server(config)#interface virtual-template 100 type tunnel
Router-IOS_server(config-if)#ip unnumbered f0/0
Router-IOS_server(config-if)#tunnel mode ipsec ipv4
Router-IOS_server(config-if)#tunnel protection ipsec profile hardware
Router-IOS_server(config-if)#exit

Router-IOS_server(config)#interface virtual-template 101 type tunnel
Router-IOS_server(config-if)#tunnel mode ipsec ipv4
Router-IOS_server(config-if)#ip unnumbered f0/0
Router-IOS_server(config-if)#tunnel protection ipsec profile software
Router-IOS_server(config-if)#exit

在IOS-Server上定义了两个group,一个是关于硬件Router-Client CCIESE的,一个是关于软件Router-Client cciers的,一个推送了地址池,一个没有推送。

定义了两个ipsec profile,一个给hardware 用,一个给Software用,其实这里不需要定义,用一个即可,因为isakmp profile已经关联了虚拟模板了。

定义了两个类型Tunnel的虚拟模板,没有定义任何的源和目,这个之前介绍过了,当一个VPN拨入上来,它会以对端的源作为目的,目的作为源自动添加到虚拟接口上,因为虚拟接口是继承虚拟模板的配置的。

ASA的配置

Router-ASA-server(config)# crypto isakmp policy 10
Router-ASA-server(config-isakmp-policy)# authentication rsa-sig
Router-ASA-server(config-isakmp-policy)# group 2
Router-ASA-server(config-isakmp-policy)# encryption 3des
Router-ASA-server(config-isakmp-policy)# group 2
Router-ASA-server(config-isakmp-policy)# hash sha
Router-ASA-server(config-isakmp-policy)# lifetime 86400

Router-ASA-server(config)# crypto isakmp enable outside

Router-ASA-server(config)# ip local pool cciese 111.1.1.100-111.1.1.200
Router-ASA-server(config)# ip local pool cciers 121.1.1.100-121.1.1.200

Router-ASA-server(config)# username admin password cciese

Router-ASA-server(config)# tunnel-group cciese type remote-access
Router-ASA-server(config)# tunnel-group cciese general-attributes
Router-ASA-server(config-tunnel-general)# address-pool cciese
Router-ASA-server(config)# tunnel-group cciese ipsec-attributes
Router-ASA-server(config-tunnel-ipsec)# trust-point ASA

Router-ASA-server(config)# tunnel-group cciers type remote-access
Router-ASA-server(config)# tunnel-group cciers general-attributes
Router-ASA-server(config-tunnel-general)# address-pool cciers
Router-ASA-server(config)# tunnel-group cciers ipsec-attributes
Router-ASA-server(config-tunnel-ipsec)# trust-point ASA

Router-ASA-server(config)# crypto ipsec transform-set trans esp-des esp-md5-hmac

Router-ASA-server(config)# crypto dynamic-map ezvpn 1000 set transform-set trans
Router-ASA-server(config)# crypto map asa 1000 ipsec-isakmp dynamic ezvpn
Router-ASA-server(config)# crypto map asa interface outside

同样的,ASA上也创建了两个Tunnel group,分配不同的地址池,注意在Tunnel-group下要定义信任点

Router-Client端测试

软件
定义一些参数,平常我们使用的是group Authentication,这次证书认证使用Certificate Authentication,选中之前申请的信息的名字,作为认证的凭据。 Send CA Certificate Chain :这个需要在层次化的PKI设计中才会使用。

pki

对应的定义了两个,一个用于连接IOS,一个用于连接ASA, 如果连接IOS获取的地址是123.1.1.0网段的, ASA获取的是121.1.1.0网段的,那么就表示整个EZVPN是正确配置的。

pki

当连接ASA的时候,获取的是121.1.1.100

pki

连接IOS的时候,分配的是123.1.1.1 ,并且有隧道分割

虚拟接口自动Up了, 查看虚拟接口继承的配置,source 12.1.1.2 (就是Router-Client定义的目的), destination 12.1.1.5 (就是Router-Client的源地址),其余的都继承虚拟模板的。 如果,想对PC的流量进行统一化的管理,那么这时候可以不做隧道分割,可以在虚拟模板启用NAT,这样,所有的流量都必须经过总部才能出去。

硬件Router-Client测试
Router-Client(config)#crypto ipsec Router-Client ezvpn hardware-ios
Router-Client(config-crypto-ezvpn)#peer 12.1.1.2
Router-Client(config-crypto-ezvpn)#username admin password cciese
Router-Client(config-crypto-ezvpn)#connect auto
Router-Client(config-crypto-ezvpn)#mode network-extension
Router-Client(config-crypto-ezvpn)#exit

Router-Client(config)#interface f0/0
Router-Client(config-if)#crypto ipsec Router-Client ezvpn hardware-ios outside

Router-Client(config-if)#int lo 0
Router-Client(config-if)#ip add 1.1.1.1 255.25
Router-Client(config-if)#ip add 1.1.1.1 255.255.255.255
Router-Client(config-if)#crypto ipsec Router-Client ezvpn hardware-ios inside

pki

开始自动拨号,并且成功。

pki

隧道接口已经up了,并且虚拟接口继承虚拟模板的配置。

这时候可以启用动态路协议了。
Router-IOS_server(config)#interface virtual-template 100 type tunnel
Router-IOS_server(config-if)#ip ospf 1 area 0
Router-Client(config)#interface virtual-template 1 type tunnel
Router-Client(config-if)#ip unnumbered f0/0
Router-Client(config-if)#ip ospf 1 area 0

Router-Client(config)#crypto ipsec Router-Client ezvpn hardware-ios
Router-Client(config-crypto-ezvpn)#virtual-interface 1

这时候重新拨入VPN。

pki

拨入成功,并且OSPF的邻居已经建立。

pki

连接ASA Server
在连接ASA之前,必须把之前的配置都No掉,关于之前定一个的IOS的组。
Router-Client(config)#crypto ipsec Router-Client ezvpn hardware-asa
Router-Client(config-crypto-ezvpn)#pe
Router-Client(config-crypto-ezvpn)#peer 12.1.1.3
Router-Client(config-crypto-ezvpn)#exit
Router-Client(config)#int f0/0
Router-Client(config-if)#cry
Router-Client(config-if)#crypto ipsec Router-Client ezvpn hardware-asa outside
Router-Client(config-if)#int lo 0
Router-Client(config-if)#crypto ipsec Router-Client ezvpn hardware-asa inside

如果两个组都存在的话,那么第一个定义的有效,并且会一直提示,关于no掉配置有个很关键的地方,先要把组关联的virtual-interface 给no掉,否则话,这个组它提示正在使用can’t delete
More than one active tunnel exists. Please specify the name of tunnel

pki

已经成功拨入ASA了,并且获取了地址信息。

至此,EZVPN的证书认证全部完成。

总结:关于EZVPN PKI的部署,难点在于Router-Client的离线申请证书,顺序一定不能错误, 并且时间要保持一致,否则PKI系统无法正常运行。 最后剩下SSL VPN了,SSL VPN会介绍一个非常适用的技术,LDAP,工程中用的比较多的。

下载对应文档

百度盘下载博客资源汇总与学习思路
如果下载地址失效,请联系博主或者在下面留言,谢谢。下面也有其他您需要的资源推荐哦

关于博客资源下载说明

首先,感谢大家对网络之路博客的支持,本站所有资源都是开放下载,不做任何限制,资源都是上传在百度盘,分为两种类型:
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
想第一时间收到最新更新内容吗,点击获取~~~

点击查看详情

(广告)博主自主原创最新实战课程

点击查看详情


(广告)远程技术支持(设备调试),有搞不定的找我,价格实惠,为您解决实际工作上的问题

远程技术调试与技术支持,点击查看详情


原创与收集的内容,允许转载,转载时请务必以超链接形式标明文章原始出处,博客地址http://ccieh3c.com。

喜欢 (0)
[]
分享 (0)
公众号:网络之路博客(其他平台网络之路Blog)
分享一些自己懂的技术知识点,希望对大家有帮助。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址