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

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

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

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

说明

    有时候,我们希望对证书的内容控制的非常细致,总是想让同一部门的人才能互访,而其余的部分则不可以,默认情况下,只要有合法的证书的设备,那么就能正常建立起VPN,如果想得到控制的话,在Cisco上提供一个叫做CABAC,证书访问控制来对证书的某些字段进行匹配,只有匹配的才能进行建立VPN,访问特定的资源。

    介绍下环境,CA Server是2003服务器,之前用IOS建立过VPN的介绍,这次换2003,设备左边的是路由器,而右边用的是ASA 8.0版本,它们之间建立基于证书的VPN。 NTP服务器用路由器来搭建,Windows 2003上没找到好的NTP 服务器,ASA是做不了NTP服务器的。IP 地址信息按图上所规划的,路由器身后有个网段1.1.1.0/24,ASA身后有个网段 2.2.2.0/24。

NTP服务器设置

这里NTP的时间一定要与2003的时间对应,否则整个PKI则无效,可以比2003的时间快点,因为这样可以落在证书有效范围内,但是,不要比它慢。
Router
Cisco-site_1(config)#clock timezone GMT 8
Cisco-site_1#clock set 11:11:00 18 nec 2012

ASA
Cisco-Site-2(config)# clock timezone GMT 8
Cisco-Site-2(config)# ntp server 12.1.1.2

show ntp status的时候,显示为synchronized,就证明时间已经同步了。

服务器搭建
参考之前CA Server部署那篇文章,有对于2003和SCEP插件的安装介绍。

路由器申请证书

1、创建RSA密钥对
Cisco-site_1(config)#crypto key generate rsa modulus 2048 label cciese exportable

2、创建信任点
Cisco-site_1(config)#crypto pki trustpoint IOS
Cisco-site_1(ca-trustpoint)#enrollment url http://12.1.1.1/certsrv/mscep/mscep.dll
Cisco-site_1(ca-trustpoint)#subject-name cn=Site1.ccie.com, o=ccie, ou=cciers, c=cn
Cisco-site_1(ca-trustpoint)#rsakeypair ccies

注意,微软的格式是这样获取的。

3、申请根证书
Cisco-site_1(config)#crypto pki authenticate IOS

pki

这个MD5值可以询问CA 管理员是否一致

pki

可以通过这个进行查看 。

4、申请个人证书
首先进入http://12.1.1.1/certsrv/mscep/mscep.dll 来复制一次性密码,也就是challenge password is 那段
Cisco-site_1(config)#crypto pki enroll IOS

pki

这里password和re-enter password 是输入那个复制的一次性密码。

5、CA Server颁发证书
可以在管理工具里面———证书颁发机构

pki

有个等待颁发的证书,如果是正常手续的话,可以双击这个证书查看个人信息,如果确定无误,右击进行颁发。
Dec 18 03:47:20.811: %PKI-6-CERTRET: Certificate received from Certificate Authority 当收到这个信息后,就表示证书申请成功了。

注意的地方

我们看下 show crypto pki certificates
申请过程中的状态

pki

申请后的状态

pki

它在申请过程中,其实通过RA来进行申请的,这时候Windows 2003其实是作为RA的存在,因为SCEP默认它不集成的。那为什么在路由器上它能自动识别呢。可以看下show run的配置

pki

当配置了url为微软格式后,它会自动添加一条命令 mode ra,所以,它可以自由的转换, 如果是在H3C和HW上配置的话,这个必须手动配置,否则的话,证书会申请失败。

ASA上的证书申请

1、创建RSA密钥对,在ASA上这是必须的,系统不会自动创建
Cisco-Site-2(config)# crypto key generate rsa label cciese modulus 2048

2、创建信任点
Cisco-Site-2(config)# crypto ca trustpoint ASA
Cisco-Site-2(config-ca-trustpoint)# subject-name cn=site2.ccie.com, o=ccie, ou=cciese, c=cn
Cisco-Site-2(config-ca-trustpoint)# enrollment url http://12.1.1.1/certsrv/mscep/mscep.dll
Cisco-Site-2(config-ca-trustpoint)# keypair cciese

这里ASA还是引用的12.3IOS的配置方法,而IOS 12.4以后就使用PKI的方式了

3、申请根证书
Cisco-Site-2(config)# crypto ca authenticate ASA

pki

4、申请个人证书
首先,在CA Server上刷新一次性密码,按F5即可,因为上次的密码被使用了。然后复制

Cisco-Site-2(config)# crypto ca enroll ASA

pki

5、CA Server颁发证书

pki

# The certificate has been granted by CA! ASA上收到这个提示了就证明,收到个人证书

pki

一个非常重要的问题来了,注意下,它发布CRL的方式,http://domain/certenroll/Root-ccie.crl,这个domain对于路由器和ASA来说它并不知道是多少,这会导致什么情况发生?

pki

查看crls发现为空,这是很正常的,因为ASA和路由器发送请求这个CRL时候,CA 服务器以http://domain来做为地址,而domain这个地址,对于ASA和路由器来说并不知道,所以导致CRL解析失败。

解决办法:

1、ASA和路由器上静态定义一个ip host domain 12.1.1.1 ,这样ASA和路由器就能正常解析了,但这个只适合实验环境。

2、对于工程环境来说,可以通过NAT来把CA服务器映射出来,无论是否是动态IP地址,动态IP地址可以通过一个技术解决,DDNS,只需要ASA和IOS上开启域名解析和定义一个公网的DNS服务器。建议是8.8.8.8 或者是DDNS产商的服务器。

3、关闭CL的检查,这样能互相建立VPN,但是,不建议这么做。

4、在CA Server上添加一个CRL的静态地址目录,右击Root-CCIE属性——-扩展——-添加,这种方法只能是静态的公网地址才可,否则建议使用第二种解决方案。

pki

关于使用哪种方案,取决于实际环境而定,建议使用 2、3、4, 第一种比较不太现实,但是,我这由于是实验环境,所以,可以通过这种办法解决。

pki
pki

都可以正常获取CRL,当设置了静态映射后,通过crypto pki crls request来重新获取CRL,ASA上注意参数是CA

VPN的配置

IOS上的
crypto isakmp policy 10
!
!
crypto ipsec transform-set trans esp-des esp-md5-hmac
!
crypto map l2l 10 ipsec-isakmp
set peer 12.1.1.3
set transform-set trans
match address vpn

ip access-list extended vpn
permit ip host 1.1.1.1 host 2.2.2.2
!
ip route 2.2.2.0 255.255.255.0 12.1.1.3

interface Loopback0
ip address 1.1.1.1 255.255.255.255
!

interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
crypto map l2l

ASA的配置
crypto isakmp enable outside
crypto isakmp policy 10
authentication rsa-sig
encryption des
hash sha
group 1
lifetime 86400

tunnel-group 12.1.1.2 type ipsec-l2l
tunnel-group 12.1.1.2 ipsec-attributes
trust-point ASA

crypto ipsec transform-set trans esp-des esp-md5-hmac

crypto map l2l 10 match address 100
crypto map l2l 10 set peer 12.1.1.2
crypto map l2l 10 set transform-set trans
crypto map l2l 10 set trustpoint ASA
crypto map l2l interface outside

access-list 100 extended permit ip host 2.2.2.2 host 1.1.1.1

这里注意下,ASA上面默认是预共享密钥的,所以需要改为数字签名,然后、ASA与IOS的策略是不同的,所以需要改变。 红色部分是需要注意的。

VPN已经正常建立了。

CABAC 证书访问控制

当证书只要是合法的时候,那么IOS和ASA之间建立VPN是没有任何限制的,但是,在填写证书的个人信息的时候,IOS填写的OU为cciers,为ASA填写的cciese,这样填写就是为了模拟两个不同的部门,看下证书列表的使用。

Cisco-site_1(config)#crypto pki certificate map l2l 10

issuer-name是匹配根证书,而subject-name是匹配个人证书的信息。
Cisco-site_1(ca-certificate-map)#subject-name co ou=cciers
eq=必须等于 ne=不等于 co=包含 nc=不包含 ,通常情况下使用co就行了,包含这个字段就行了。

调用这个证书访问控制
Cisco-site_1(config)#crypto isakmp profile profile
Cisco-site_1(conf-isa-prof)#match certificate l2l
Cisco-site_1(conf-isa-prof)#ca trust-point IOS

调用这个证书访问控制,然后用IOS申请的根证书进行 验证,isakmp profile的功能就不介绍了,可以调用许多策略在里面。
Cisco-site_1(config)#crypto map l2l 10 ipsec-isakmp
Cisco-site_1(config-crypto-map)#set isakmp-profile profile
调用这个profile到map里面。

这时候,只允许从同一个CA申请的证书并且要满足OU=cciers的情况下,才允许进行VPN的建立,而ASA则是cciese的,如果成功的话,那么就VPN建立不起来。 注意的是,证书访问控制控制的是当别人与自己建立VPN的时候,才会检查是否满足列表匹配的,自己与别人建立是不会进行检查的。

pki

ASA主动发起会话的时候,是不信的

pki

debug信息提示Dec 18 05:42:56.539: map_db_check_isakmp_profile profile did not match,策略不匹配profile的内容

而从路由器端发起则没什么问题

pki

ASA上的证书访问控制

ASA的证书访问控制有点特殊,之前IOS上做了证书访问控制,ASA端发起的流量被拒绝了,因为OU不匹配访问控制设置的,这次,需要在ASA上定义一个OU=cciese的策略,IOS主动发起流量,如果建立不成功,则证明访问控制是有效的。
Cisco-Site-2(config)# tunnel-group-map enable rules
Cisco-Site-2(config)# no tunnel-group-map enable ou
Cisco-Site-2(config)# no tunnel-group-map enable ike-id
Cisco-Site-2(config)# no tunnel-group-map enable peer-ip

crypto ca certificate map ASA 10
subject-name attr ou co cciese

tunnel-group-map ASA 10 12.1.1.2

在ASA上做L2L的证书访问规则比较特殊,它必须关闭其余的匹配信息,自己定义规则, 默认情况下,ASA是通过对方发送过来的地址信息或者OU位来匹配特定的Tunnel-group,但是在L2L的证书控制之中,必须关闭才能有效,所以,在ASA进行证书访问控制需要特别的小心才行,暂时还没找到什么解决的办法。关闭这些,不会影响预共享密钥的VPN建立

pki

通信不了了,

pki

在ASA上的debug信息,级别我只给了7,只显示了部分信息,它上面提示

Dec 18 14:05:44 [IKEv1]: IP = 12.1.1.2, Trying to find group via cert rules… 说12.1.1.2正在视图匹配cert 的rules规则,后面就被拒绝了。

怎么确定它是被证书规则搞定的呢,可以在规则中在添加匹配ou=cciers即可
crypto ca certificate map ASA 20
subject-name attr ou co cciers

tunnel-group-map ASA 20 12.1.1.2

注意:不要把规则都定义在一个序列号中,一个序列号匹配一个规则,所以这里定义了20

pki

这时候,VPN就建立起来了。
总结下:1、证书访问规则只对对方发起的连接有效,而自己方发起的连接则不检查
2、如果要定义多个规则,就必须用序列号区分,一个序列号对应一个匹配规则(比如定义多个OU,如果是不同字段可以在一个ID中定义)
3、如果使用的是2008服务器的话,默认情况下CRL是不允许使用HTTP来获取的,需要在属性中打开这个功能。

下载对应文档

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

关于博客资源下载说明

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

点击查看详情

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

点击查看详情


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

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


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

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

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

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