主要是针对Anyconnect的SSL和IKEv2,可是我看到貌似考试传统的三种SSL-×××仍然要考,也会写。今天调了一天的证书,彷佛没办法让证书有效。。。html
顺便,补充一篇关于IOS CA操做的文档,有很是好的例子。
https://community.cisco.com/t5/security-documents/ios-ca-basic-deployment-certificate-enrollment-and-signing/ta-p/3120844ios
crypto ca authenticate CA
//这条命令就是认证根此trustpoint对应的CA服务器,而且获取此服务器的public key
cyrpto ca enroll CA
//认证CA Server以后须要今后服务器上申请对应的证书web
与以前的例子不一样的是,这篇文档都是使用 terminal 关键字,即base64的方式获取或者申请证书。
CA端配置windows
CA经过terminal导出base64形式的证书
crypto pki export CA pem terminal浏览器
首先说下ASA的策略拓扑,这是取自教主的总结。
以前8.4一共有3中×××,L2L,EZ,SSL。它们的共同点都是有或是配置,或是内置的tunnel-group和group-policy。
其中tunnel-group定义了咱们如何终结一个×××,和这个×××使用什么认证方式,而认证策略,即authentication policy,和ISE同样,是让ASA配置他的外部拨号用户的数据来源(local, LDAP, ISE?)。而group-policy,顾名思义是组策略,能够狭义的理解为一个用户组使用何种策略(地址池,是否使用split tunnel,host scan等等)。服务器
第一部分:SSL-×××
先上一个基本配置less
web***
enable outside
anyconnect enable
anyconnect image disk0:......pkgide
ip local pool Anyconnect-Pool 172.16.133.2-172.16.133.100
//定义anyconnect使用的地址池工具
group-policy Anyconnect-GP internal
//定义这是个内部组,组的属性由ASA本身配置
group-policy Anyconnect-GP attributes
//组的属性,地址池,使用ssl-client,也能够配置例如split-tunnel, ACL等
***-tunnel-protocol ssl-client
address-pool value Anyconnect-Pool测试
username SSLuser password cisco123
username SSLuser attributes
***-group-policy Anyconnect-GP //这里看到用户是和group-policy绑定的
service-type remote-access
拨号成功以后的验证命令
我其实申请了证书,但彷佛没啥用。。。我很确定win7 client端已经信任了根证书。查了不少文档,可能anyconnect如今对于证书的某些位要求很严格?
https://community.cisco.com/t5/***-and-anyconnect/need-help-with-untrusted-***-server-certificate-warning/td-p/2111280
直接先配了ikev2部分吧。
group-policy Anyconnect-GP attributes
***-tunnel-group protocol ikev2 ssl-client
cyrpto ikev2 policy 10
encryption aes
integrity sha
group 2
crypto ipsec ikev2 ipsec-proposal Anyconnect-IKEv2-Proposal
protocol esp encryption 3des
protocol esp integraity sha-1
crypto dynamic-map Anyconnect-DMap 1000 set ikev2 ipsec-proposal Anyconnect-IKEv2-Proposal
crypto map Anyconnect-IKEv2-Map 1000 ipsec-isakmp dynamic Anyconnect-DMap
crypto map Anyconnect-IKEv2-Map interface outside
crypto ikev2 enable outside client-service port 443
crypto ikev2 remote-access trustpoint CA
接着修改client profile,我不清楚是否是ASDM的bug,仍是ASAv没有受权流量过小。总之client profile死活刷不出来。可是总算是推到客户端了。其中修改了部分配置以下,尤为要注意grou-policy web下的那个anyconnect profile,是和web下的anyconnect profile作关联的。
测试成功
banner
接下来改用ISE进行认证,如何使用ISE链接AD而且拿取user group不过多说明
强调一点,ISE最重要的功能,AAA服务器,
authentication policy是基于认证协议(radius, tacacs+, EAP-FAST, EAT-TLS 等等等)来决定你用哪一个identity source,能够是AD的user,能够是local user database,也能够是endpoint store。
authorization policy是基于一些不少灵活的条件,决定你的受权结果。这个结果以radius attribute来实现。
来看我这里配的例子,authentication policy条件就仅局限于radius,使用windows AD
authorization policy,
只要是特等Domain group里的user,就能够得到我配置的authorization profile
其中authorization profile要和ASA本地的group-policy名字匹配。radius attribute: 25 class
测试经过后,看下ASA的一段日志。
因而可知,反复强调一个概念,group-policy,是用户组的属性。当ISE将class=Anyconnect-GP推给ASA后,ASA直接查看本身本地的group-policy。由此,用户组拿到本身这条anyconnect tunnel的属性。
在浏览了Metha的视频以后,有些我跳过了,好比show run all tunnel-group和show run all group-policy你能够查到大部分的属性,这在项目中有特别的需求注意就能够了。
有一篇,好比使用内网的DHCP来给anyconnect分配地址,应用场景虽然不能说没有,可是少。直接参考文档就行:
https://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/118084-configure-anyconnect-00.html
https://www.petenetlive.com/KB/Article/0001050
http://www.labminutes.com/sec0124_ssl_***_anyconnect_client_address_assignment
External group policy
主要参考labminutes的录像http://www.labminutes.com/sec0125ssl***_anyconnect_client_external_group_policy
先来看ASA端的配置,这也是最简单的:
group-policy EX-Anyconnect-GP external server-group ISE password Cisco123
当anyconnect输入认证密码以后(例如我这里是AD帐户),ASA会以group policy做为用户名,Cisco123做为密码再发起一次认证。
因此在ISE里面咱们须要修改两个配置
进入identity sequence,建立一个list使得AD和internal 帐号均可以被使用
在authentication policy修改可使用的identity
接下来就是受权策略,在配置authorization profile以前,首先须要修改如下dictionary(这个修改我很是不喜欢,要不是Metha大神,我都不知道去查什么文档,因此通常group-policy在项目中遇到的仍是使用本地的)
ISE的GUI还算好的,但你看这html,须要添加两个SSL clientless 16,SSL client 32.
配置authorization profile
authorization policy的匹配条件,直接匹配防火墙的类型。。。
接下来看测试结果,PC端
ISE radius log,注意二次认证
ASA日志
SSL clientless ×××
直接参考文档:
https://www.cisco.com/c/en/us/support/docs/security-***/web***-ssl-***/119417-config-asa-00.html
http://www.labminutes.com/sec0118_ssl_***_clientless_bookmark_auto_sign_on
至于像DAP hostscan等特性,9.8的Metha的VOD都须要ISE2.2支持,以后再学。
2019 7 10补充 我知道个人证书问题错在哪里了,教主的课白听了。证书做为验证身份的工具,其验证方法就是把身份信息(subject name)作hash,和fqdn等信息传送给远端。
远端将fqdn作hash,与传送过来的hash值进行比对,得出这张证书是否能够信任。因此subject name里面的CN,OU必定要填对。
对比以前的,我在搞毛啊。
从新测试anyconnect,就没有报错了。浏览器看到是个人路由器签发的证书。