主要是针对Anyconnect的SSL和IKEv2,但是我看到貌似考试传统的三种SSL仍然要考,也会写。今天调了一天的证书,似乎没办法让证书有效。。。

顺便,补充一篇关于IOS CA操作的文档,有非常好的例子。 https://community.cisco.com/t5/security-documents/ios-ca-basic-deployment-certificate-enrollment-and-signing/ta-p/3120844

crypto ca authenticate CA //这条命令就是认证根此trustpoint对应的CA服务器,并且获取此服务器的public key cyrpto ca enroll CA //认证CA Server之后需要从此服务器上申请对应的证书

与之前的例子不同的是,这篇文档都是使用 terminal 关键字,即base64的方式获取或者申请证书。 CA端配置

CA通过terminal导出base64形式的证书 crypto pki export CA pem terminal

首先说下ASA的策略拓扑,这是取自教主的总结。 之前8.4一共有3中×××,L2L,EZ,SSL。它们的共同点都是有或是配置,或是内置的tunnel-group和group-policy。 其中tunnel-group定义了我们如何终结一个XXX,和这个XXX使用什么认证方式,而认证策略,即authentication policy,和ISE一样,是让ASA配置他的外部拨号用户的数据来源(local, LDAP, ISE?)。而group-policy,顾名思义是组策略,可以狭义的理解为一个用户组使用何种策略(地址池,是否使用split tunnel,host scan等等)。

第一部分:SSL-××× 先上一个基本配置

web*** enable outside anyconnect enable anyconnect image disk0:......pkg

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 XXX-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 webXXX下的那个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_XXX_anyconnect_client_address_assignment

External group policy

主要参考labminutes的录像http://www.labminutes.com/sec0125_ssl_XXX_anyconnect_client_external_group_policy

先来看ASA端的配置,这也是最简单的: group-policy EX-Anyconnect-GP external server-group ISE password Cisco123 当anyconnect输入认证密码之后(例如我这里是AD账户),ASA会以group policy作为用户名,Cisco123作为密码再发起一次认证。 所以在ISE里面我们需要修改两个配置

  1. 本地账号
  2. authentication policy不仅仅使用AD,也需要使用internal user internal user账号

进入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,就没有报错了。浏览器看到是我的路由器签发的证书。