百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

PKI系列:(5)证书下的Easy IPSEC 远程访问

ninehua 2024-12-05 15:12 57 浏览


说明

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

图花了点时间弄出来的,最近在学画拓扑图, 地址信息根据图上描述的一样, 实现的效果是,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

下载根证书

申请个人证书

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

申请下载根证书

申请个人证书。

四、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

申请下载根证书

申请个人证书

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

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

五、服务器颁发证书

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

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

1、产生申请的信息

点击Enroll

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

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

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

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

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

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

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

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

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


提交即可

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

查看挂起的证书申请

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

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

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

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

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

这时候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设计中才会使用。

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

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

连接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

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

隧道接口已经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。

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

连接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

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

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

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

如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog,版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注转发一波谢谢。

上一篇回顾

PKI系列:(7)部署自己企业内部的PKI架构基于域环境


下一篇学习

PKI系列:(4) 证书访问控制—CABAC

相关推荐

我常用的三个剪辑工具 免费功能强大 剪辑视频不再求人

今天特意写这篇文章分享一下我在用的三个视频剪辑工具,这三个免费,好用,功能强大,包含了我常用的手机上剪辑的视频软件,电脑端剪辑视频的软件。为什么要写这篇文章呢,还得从早上被一些垃圾剪辑软件给套路了,所...

macOS绝美流动壁纸!如何免费下载和制作?

大家好,我是dairy。我们都曾见识过Apple产品壁纸的惊艳,无论是macOS还是iOS设备壁纸,每更新一版系统版本,就会带来一波新的超美作品。从macOSMojave10.14开始,Mac系统...

适用于Windows和Mac的10款最佳照片恢复软件(免费&付费)

丢失了您的珍贵照片?让我们看看最好的免费和付费照片恢复软件,用于在Windows和Mac上恢复它们。添加图片注释,不超过140字(可选)丢失照片很容易。一个错误的点击,一个贴错标签的SD卡,然...

Typora开始收费,介绍几款免费的MarkDown编辑器

前两天,一场突如其来的新闻,让本来就不富裕的TJ君更是雪上加霜。什么事情呢?Typora,大家一定都在用吧,作为一款主打免费旗号的Markdown编辑器,Typora一直是很多小伙伴的常备工具之一,...

Mac端想找一个免费好用的视频播放器?不妨看看IINA

今天为大家带来的是一款macOS系统下的视频播放软件介绍,它便是IINA,初识这个软件的时候它应该还刚刚上架GitHub,那时候我用的比较多的Mac端视频播放软件还是VLC。其实对于这类软件,相信大部...

CotEditor - 免费开源好软件推荐!macOS 上轻量好用的纯文本编辑器

mac上一款免费好用的纯文本编辑器,平时看看文档,可以满足类似notepad++这样的工具需求。关于CotEditorCotEditor是一款运行在mac电脑上的轻量级、简洁但功能强大的...

坚果云 for Mac(网盘工具)中文免费版

推荐一款国内很受欢迎的网盘工具,坚果云forMac提供文件自动同步、数据备份、文件共享、文件搜索、下载、文件自动锁定等实用的功能,让你管理文件更加便捷,而且坚果云网盘支持与手机、平板、网页等设备互...

微软发布Mac版Office 2016测试版:免费试用

微软发布Mac版Office2016测试版:免费试用新浪手机讯3月6日上午消息,微软公司今日发布适用于苹果Mac电脑的Offic办公套装软件,目前是预览版,用户下载后可免费试用60天。从命名就可...

《极限竞速:地平线5》下月登陆PS5,实体版缺失引担忧

IT之家3月3日消息,《极限竞速:地平线5》将于4月25日登陆PlayStation5平台,但此次发行将仅以数字版形式推出。游戏开发商PlaygroundGames在X...

PS5《控制:终极版》新增扩充内容和次世代增强视觉功能

GameSourceEntertainment(GSE)宣布,《控制:终极版》已于2月2日以PSN数位版形式登陆PlayStation(R)5平台,而PS5TM《Control》终极版的盒装...

PS修图插件-DR5高级版人像精修神器重磅来袭

设计筱柒设计资源分享10-14无偿领取提示:1、评论随意评论:各抒己见2、学习领取课件私信设计筱柒:想学每天最新的优质资源不容错过哦今天的内容希望可以帮到你~2021最新DR5白金版高级PS扩...

蛐蛐下AI 运行photoshop 脚本的失败经历

正好最近有图片批处理需求~针对AI结合各种软件提升工作效率的第一个尝试~在成功使用deepseek+豆包+kimi=pptdeepseek+vscode代码助手(自动写代码,原项目自带验证和热启...

PS5赚疯了!索尼一台主机碾压四代总和,玩家:钱都去哪儿了?

阅读之前,麻烦用你发财的小手点点创作不易,感谢大家的支持!每日更新最近,索尼PS5的赚钱能力直接炸裂!数据显示,PS5自2020年发售以来,利润已经突破130亿美元,直接超过了PS1、PS2、PS3、...

PS Plus PS5会免及Collection免费阵容公开

PlayStation公开了11月欧美服PS+会免游戏阵容,PS5游戏《虫子快餐店》首发即加入会免,可在2020年11月12日至2021年1月4日期间领取。除了《虫子快餐店》之外,《中土世界战争之影...

开源 Windows 和 Office 激活器, 无需部署直接使用。

更多内容请关注我的微信公众号:VistaHub上周写了一篇永久激活Windows和Office的文章,但是需要使用NAS进行部署,给本就门槛不低的激活操作,又增加了不小的难度。今天我发现了一...