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

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

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


说明

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

相关推荐

DOTA7.22版本更新了什么 7.22版本更新内容一览

[海峡网]《DOTA2》7.22版本近日上线了,7.22版本后DOTA2迎来了全面A杖时代,而某些英雄的A杖效果过于IMBA,导致冰娃很快发布了新补丁7.22b,一起来看看吧。7.22b削弱了当前一些...

网易电竞平台发布首款游戏DOTA 六大革新机制首曝

网易首款专业电竞平台今日对外发布,并宣告将于6月20日正式开启首轮精英测试,首款平台游戏则是大名鼎鼎的DOTA。网易电竞平台作为国内最专业的新一代电子竞技游戏平台,致力于为电子竞技玩家提供更稳定、更快...

水友吐槽最失望的全明星 冷板凳的选手们

本次全明星采取主持人随机现场观众,报喜爱的选手名字进行10V10比赛,然而很多人气选手均没有上场的机会,国外水友粉粉吐槽应该改善投票方式Handa711:V社的套路需要改变一下了。这次全明星太逊。Sl...

Dota2:NB假赛事件再起风波,中单AQ直接自爆,茶队被牵连其中

就在前一天,一则消息的传出,让整个Dota2圈子甚至是电竞圈都感到意外:TI4冠军、TI7亚军得主Newbee战队,涉嫌打假赛从中获利,被CDA联盟以及IMBA传媒共同出面,将其永久封禁,禁止参加CD...

DOTA的世界,LOL玩家你不懂! dota?

◆IntroductionDOTA玩家与LOL玩家究竟有什么不同,看完你就知道了,不要有任何优越感哦,都是玩游戏的,没必要!....暗牧对蛮王说:给自己5秒的人永远不是真男人。龙骑对龙姬说:你身上流的...

Dota2:肉核体系已完全没落?刚被、混沌、幽鬼等英雄胜率垫底

哈喽大家好,这里是蜻蜓队长Zwj。想必大家都能感觉得到,越是大赛职业战队们就越偏爱刚被、潮汐、斧王、幽鬼这种进可攻退可守的肉核型英雄;而在7.30更新后,这些英雄却几乎绝迹了。下面,就让队长带大家一起...

探访上海IMBA电竞体验中心 电子竞技高手荣誉相册引人注目

来源:环球网2021年5月10日,上海,探访世界级电子竞技品牌赛事之一“SL-iS7CS:GO群星联赛”举办地IMBA电竞体验中心,整排的电竞职业高手荣誉相册和手模吸引眼球。作为普陀区首个设在商业...

dota2IMBA Tinker修补匠进阶攻略 dota修补匠外号

他曾经是某个版本第一无解后期,刷新BKB骑脸的感觉,酸爽。但是随后的版本更新在刷新下面加了一行小字,不可以刷新BKB,tinker修补匠就再次跌下神坛。也许你是tinker的忠实粉丝,也许你怀念那个B...

《DOTA2》新版本6.83c降临:寒冬飞龙登场、斧王遭削弱

新年将至,《DOTA2》也迎来了全新版本6.83c,本次的新版本也是亮点多多,除了加入万众期待的英雄“寒冬飞龙”之外,冰女MM的全新至宝也一并公开,相信届时又有大批土豪会为自己的冰女换上漂亮的装扮。除...

dota2imba虚空假面攻略 dota2虚空假面出什么装备

本文由17173DOTA2特约作者[41酱]原创提供,未经许可禁止转载。节奏快,人头多,就是干是他的标签,比起有着冗长无聊的farm时间的普通模式,来一场imba绝对可以战个痛快。200人头?那只是起...

OMG模式中,你拿到这些技能就赢了一半

?技能征召(OMG)是什么?技能征召是DOTA2中普通匹配的一种模式,与全英雄选择、加速模式、随机征召并列,在点击“开始DOTA”后选择普通匹配可以勾选。该模式偏娱乐,可以自由组合搭配自己的技能,刚接...

DOTA2编辑器开放 米米亚将制作DOTA2版IMBA

今天(8月7日)上午,IceFrog在微博发布消息,称V社官方发布了DOTA2自定义游戏制作工具——Dota2WorkshopToolsAlpha供广大开发者使用[本站相关报道],这可能是一个在...

以现在的眼光来看,dota中最离谱的英雄是谁?老玩家:27技能卡尔

哈喽大家好,这里是蜻蜓队长Zwj。大家应该都知道,dota1远古时期中的很多英雄都是很imba的(成长或技能),而在聊起远古时期中最离谱的英雄时队长就想到了手握27个不同技能的召唤师。召唤师/祈求者聊...

Dota2:美女解说公然辱骂Ti冠军队,被教育不知悔改,遭Imba开除

近期国内外的刀圈,最重要的赛事可以说是DPC联赛第二赛季的比赛了,国内的S级联赛方面竞争还是非常激烈的,一度出现了6支战队同为2胜2负的盛况,茶队这边近期状态不错取得了4连胜高举榜首,SAG难求一胜,...

DOTA2采访EG.Cr1t-:无敌斩斩莲花很糟糕!最大的对手就是VG

北京时间11月21日,MDL成都Major媒体日上EG战队EG.Cr1t-接受我们采访。采访中他对于昨天剑圣斩莲花感到非常难受,并且认为VG就是他们本次比赛最大的对手。Q:对于EG在这次Major的...