主要是針對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,就沒有報錯了。瀏覽器看到是個人路由器簽發的證書。