本文檔提供如何使用FlexVPN工具包在IOS上設定遠端訪問的示例配置。
遠端訪問VPN允許使用各種作業系統的終端客戶端通過不安全介質(例如網際網路)安全地連線到公司或家庭網路。在所顯示的場景中,VPN隧道在使用IKEv2協定的Cisco IOS路由器上終止。
本檔案介紹如何透過EAP-MD5方法使用存取控制伺服器(ACS)對使用者進行驗證和授權。
Cisco IOS路由器有兩個介面 — 一個指向ACS 5.3:
本文件沒有特定需求。
本文中的資訊係根據以下軟體和硬體版本:
ACS 5.3,帶補丁6
採用15.2(4)M軟體的IOS路由器
採用AnyConnect 3.1.01065的Windows 7 PC
在IKEv1中,XAUTH用於第1.5階段,您可以在IOS路由器本機上以及使用RADIUS/TACACS+遠端執行使用者驗證。IKEv2不再支援XAUTH和1.5階段。它包含內建EAP支援,在IKE_AUTH階段完成。最大的優勢在於IKEv2設計,而EAP是眾所周知的標準。
EAP支援兩種模式:
通道 — EAP-TLS、EAP/PSK、EAP-PEAP等
非隧道 — EAP-MSCHAPv2、EAP-GTC、EAP-MD5等
在本示例中,使用非隧道模式中的EAP-MD5,因為它是當前在ACS 5.3中支援的EAP外部身份驗證方法。
EAP只能用於驗證啟動器(客戶端)到響應方(本例中為IOS)。
首先,您需要建立憑證授權單位(CA)並為IOS路由器建立身分憑證。使用者端會根據該憑證驗證路由器的身分。
IOS上的CA配置如下所示:
crypto pki server CA grant auto hash sha1 eku server-auth client-auth
您需要記住擴展金鑰用法(EAP需要Server-Auth,對於RSA-SIG,也需要客戶端 — Auth)。
在加密pki伺服器CA中使用no shutdown命令啟用CA。
接下來,為證書啟用簡單證書註冊協定(SCEP)並配置信任點。
ip http server crypto pki trustpoint CA-self enrollment url http://10.1.1.2:80 fqdn 10.1.1.2 ip-address 10.1.1.2 subject-name cn=10.1.1.2,ou=TAC revocation-check none eku request server-auth client-auth
然後驗證並註冊憑證:
(config)#crypto pki authenticate CA-self Certificate has the following attributes: Fingerprint MD5: 741C671C 3202B3AE 6E05161C 694CA53E Fingerprint SHA1: 8C99513C 2198470F 7CB58FA2 32D8AA8D FC31D1ED % Do you accept this certificate? [yes/no]: yes Trustpoint CA certificate accepted. R1(config)#crypto pki enroll CA-self % % Start certificate enrollment .. % Create a challenge password. You will need to verbally provide this password to the CA Administrator in order to revoke your certificate. For security reasons your password will not be saved in the configuration. Please make a note of it. Password: Re-enter password: % The subject name in the certificate will include: cn=10.1.1.2,ou=TAC % The subject name in the certificate will include: 10.1.1.2 % Include the router serial number in the subject name? [yes/no]: no % The IP address in the certificate is 10.1.1.2 Request certificate from CA? [yes/no]: yes % Certificate request sent to Certificate Authority % The 'show crypto pki certificate verbose CA-self' command will show the fingerprint. R1(config)# *Dec 2 10:57:44.141: CRYPTO_PKI: Certificate Request Fingerprint MD5: BF8EF4B6 87FA8162 9079F917 698A5F36 *Dec 2 10:57:44.141: CRYPTO_PKI: Certificate Request Fingerprint SHA1: AC13FEA3 295F7AE6 7014EF60 784E33AF FD94C41D R1(config)# *Dec 2 10:57:44.198: %PKI-6-CERTRET: Certificate received from Certificate Authority
如果不想在AnyConnect中包含提示消息,請記住cn需要等於AnyConnect配置檔案中配置的主機名/IP地址。
在本示例中,cn=10.1.1.2。因此,在AnyConnect中,10.1.1.2在AnyConnect xml配置檔案中輸入為伺服器的IP地址。
您需要設定Radius和AAA驗證與授權:
aaa new-model radius-server host 192.168.56.202 key cisco aaa group server radius SERV server 192.168.56.202 aaa authentication login eap-list group SERV aaa authorization network eap-list group SERV
首先,在ACS中新增新的網路裝置(Network Resources > Network Devices and AAA Clients > Create):
新增使用者(使用者和身份庫>內部身份庫>使用者>建立):
新增使用者以進行授權。在本示例中,它是IKETEST。密碼必須為「cisco」,因為它是IOS傳送的預設密碼。
接下來,為使用者建立授權配置檔案(Policy elements > Authorization and Permissions > Network Access > Authorization Profiles > Create)。
在本示例中,它稱為POOL。在本示例中,輸入拆分隧道AV對(作為字首),並將Framed-IP-Address作為要分配給所連線客戶端的IP地址。所有支援的AV對清單可在此處找到:http://www.cisco.com/en/US/docs/ios-xml/ios/sec_conn_ike2vpn/configuration/15-2mt/sec-apx-flex-rad.html
然後,您需要在「訪問策略」中啟用EAP-MD5(用於身份驗證)和PAP/ASCII(用於授權)支援。本示例中使用的是預設值(Access Policies > Default Network Access):
在訪問策略中為建立條件並分配已建立的授權配置檔案。在這種情況下,將建立NDG:Location in All Locations的條件,因此對於所有Radius授權請求,將提供POOL授權配置檔案(訪問策略>訪問服務>預設網路訪問):
如果使用者可以正確進行驗證,您應該能夠在IOS路由器上進行測試:
R1#test aaa group SERV user3 Cisco123 new-code User successfully authenticated USER ATTRIBUTES username 0 "user3" addr 0 192.168.100.200 route-set 0 "prefix 10.1.1.0/24"
您需要建立IKEv2建議和策略(您可能不需要建立,請參閱CSCtn59317)。 在本例中,只為其中一個IP地址(10.1.1.2)建立策略。
crypto ikev2 proposal PROP encryption 3des integrity sha1 group 2 crypto ikev2 policy 5 match address local 10.1.1.2 proposal PROP
然後,建立將繫結到虛擬模板的IKEV2配置檔案和IPsec配置檔案。
確保按照配置指南中的建議關閉http-url cert。
crypto ikev2 profile PROF match identity remote address 0.0.0.0 match identity remote key-id IKETEST authentication remote eap query-identity authentication local rsa-sig pki trustpoint CA-self aaa authentication eap eap-list aaa authorization user eap list eap-list IKETEST virtual-template 1 no crypto ikev2 http-url cert crypto ipsec transform-set transform1 esp-3des esp-sha-hmac crypto ipsec profile PROF set transform-set transform1 set ikev2-profile PROF interface Virtual-Template1 type tunnel ip unnumbered Ethernet0/0 tunnel mode ipsec ipv4 tunnel protection ipsec profile PROF
在本示例中,根據在ACS配置中建立的使用者IKETEST設定授權。
匯出IOS上的CA證書(確保匯出身份證書並只參加第一部分):
R1(config)#crypto pki export CA-self pem terminal % CA certificate: -----BEGIN CERTIFICATE----- MIIB8zCCAVygAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDEwJDQTAe Fw0xMjExMjYxNzMzMzlaFw0xNTExMjYxNzMzMzlaMA0xCzAJBgNVBAMTAkNBMIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvDR4lHOcrj42QfHpRuNu4EyFrLR8H TbPanXYV+GdCBmu53pDILE00ASEHByD6DYBx01EZuDsiolJ7t2MPTguB+YZe6V4O JbtayyxtZGmF7+eDqRegQHHC394adQQWl2ojgQiuTHeRDTqDJR8i5gN2Ee+KOsr3 +OjnHjUmXb/I6QIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE AwIBhjAfBgNVHSMEGDAWgBTH5Sdh69q4HAJulLQYLbYH0Nk9zzAdBgNVHQ4EFgQU x+UnYevauBwCbpS0GC22B9DZPc8wDQYJKoZIhvcNAQEFBQADgYEADtBLiNXnl+LC PIgJ0nl/jH5p2IwVlzwbPbZcOsZ9mn54QaqrhmhbHnmqKQJl/20+JPE6p+4noICq VBrxoiX2KYQ1OwmEScPpQ2XJ9vhGqtQ4Xcx3g20HhxxFDfp2XuW7hwU0W8dTCmZw 4vodj47qEXKI6pGuzauw9MN1xhkNarc= -----END CERTIFICATE-----
將BEGIN CERTIFICATE和END CERTIFICATE之間的部分複製並貼上到Windows中的記事本中,然後儲存為檔案CA.crt。
您需要將其安裝為受信任的根證書頒發機構(按兩下檔案>安裝證書>將所有證書放入以下儲存>受信任的根證書頒發機構):
在C:\ProgramData\Cisco\Cisco中,AnyConnect Secure Mobility Client\Profile建立檔案「whatever.xml」並貼上以下內容:
<?xml version="1.0" encoding="UTF-8"?> <AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd"> <ClientInitialization> <UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon> <AutomaticCertSelection UserControllable="true"> false</AutomaticCertSelection> <ShowPreConnectMessage>false</ShowPreConnectMessage> <CertificateStore>All</CertificateStore> <CertificateStoreOverride>false</CertificateStoreOverride> <ProxySettings>Native</ProxySettings> <AllowLocalProxyConnections>true</AllowLocalProxyConnections> <AuthenticationTimeout>12</AuthenticationTimeout> <AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart> <MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect> <LocalLanAccess UserControllable="true">false</LocalLanAccess> <ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin> <IPProtocolSupport>IPv4,IPv6</IPProtocolSupport> <AutoReconnect UserControllable="false">true <AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend </AutoReconnectBehavior> </AutoReconnect> <AutoUpdate UserControllable="false">true</AutoUpdate> <RSASecurIDIntegration UserControllable="false"> Automatic</RSASecurIDIntegration> <WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement> <WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment> <AutomaticVPNPolicy>false</AutomaticVPNPolicy> <PPPExclusion UserControllable="false">Disable <PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP> </PPPExclusion> <EnableScripting UserControllable="false">false</EnableScripting> <EnableAutomaticServerSelection UserControllable="false">false <AutoServerSelectionImprovement>20</AutoServerSelectionImprovement> <AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime> </EnableAutomaticServerSelection> <RetainVpnOnLogoff>false </RetainVpnOnLogoff> </ClientInitialization> <ServerList> <HostEntry> <HostName>IOSEAP-MD5</HostName> <HostAddress>10.1.1.2</HostAddress> <PrimaryProtocol>IPsec <StandardAuthenticationOnly>true <AuthMethodDuringIKENegotiation>EAP-MD5</AuthMethodDuringIKENegotiation> <IKEIdentity>IKETEST</IKEIdentity> </StandardAuthenticationOnly> </PrimaryProtocol> </HostEntry> </ServerList> </AnyConnectProfile>
確保10.1.1.2條目與為身份證書輸入的CN=10.1.1.2完全相同。
在此情況中,未使用SSL VPN,因此請確保在IOS上禁用了HTTP伺服器(no ip http server)。 否則,您會收到AnyConnect中的錯誤消息「Use a browser to gain access(使用瀏覽器獲取訪問許可權)」。
在AnyConnect中連線時,應提示您輸入密碼。在本示例中,建立的是User3
之後,使用者會連線。
R1#show ip inter brief | i Virtual Virtual-Access1 10.1.1.2 YES unset up up Virtual-Template1 10.1.1.2 YES unset up down R1# show ip route 192.168.100.200 Routing entry for 192.168.100.200/32 Known via "static", distance 1, metric 0 (connected) Routing Descriptor Blocks: * directly connected, via Virtual-Access1 Route metric is 0, traffic share count is 1 R1#show crypto ikev2 sa IPv4 Crypto IKEv2 SA Tunnel-id Local Remote fvrf/ivrf Status 1 10.1.1.2/4500 110.1.1.100/61021 none/none READY Encr: 3DES, Hash: SHA96, DH Grp:2, Auth sign: RSA, Auth verify: EAP Life/Active Time: 86400/94 sec IPv6 Crypto IKEv2 SA R1#show crypto session detail Crypto session current status Code: C - IKE Configuration mode, D - Dead Peer Detection K - Keepalives, N - NAT-traversal, T - cTCP encapsulation X - IKE Extended Authentication, F - IKE Fragmentation Interface: Virtual-Access1 Uptime: 00:04:06 Session status: UP-ACTIVE Peer: 192.168.56.1 port 61021 fvrf: (none) ivrf: (none) Phase1_id: IKETEST Desc: (none) IKEv2 SA: local 10.1.1.2/4500 remote 10.1.1.100/61021 Active Capabilities:(none) connid:1 lifetime:23:55:54 IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.100.200 Active SAs: 2, origin: crypto map Inbound: #pkts dec'ed 1 drop 0 life (KB/Sec) 4160122/3353 Outbound: #pkts enc'ed 0 drop 0 life (KB/Sec) 4160123/3353
您可以執行調試(debug crypto ikev2)。
在VPN中AnyConnect的Advanced選項中,可以檢查Route Details以檢視分割隧道網路:
請記得,在IKEv2中,將SHA1放在簽名雜湊和完整性策略中時(請參閱思科錯誤ID CSCtn59317(僅限註冊客戶))。
IOS身份證書中的CN必須等於ACS XML配置檔案中的主機名。
如果要在身份驗證期間使用傳遞的Radius AV對,而完全不使用組的授權,可以在IKEv2配置檔案中使用以下命令:
aaa authorization user eap cached
授權始終使用密碼「cisco」進行組/使用者授權。在使用時可能會造成混淆
aaa authorization user eap list SERV (without any paramaters)
因為它將嘗試使用作為使用者和密碼「cisco」傳遞到AnyConnect中的使用者進行授權,該密碼可能不是該使用者的密碼。
如果發生任何問題,您可以分析以下輸出並將其提供給Cisco TAC:
debug crypto ikev2
debug crypto ikev2 internal
DART輸出
如果未使用SSL VPN,請記住禁用ip http伺服器(no ip http server)。 否則,AnyConnect將嘗試連線到HTTP伺服器並接收結果「使用瀏覽器獲取訪問許可權」。
上述結構可供參考,以展示最小的工作結構。
思科建議儘可能使用下一代加密技術(NGC)。
有關遷移的最新建議,請訪問以下網站:http://www.cisco.com/web/about/security/intelligence/nextgen_crypto.html
選擇NGC配置時,請確保客戶端軟體和頭端硬體都支援它。建議使用ISR第2代路由器和ASR 1000路由器作為前端,因為它們支援NGC。
在AnyConnect端,自AnyConnect 3.1版本起,支援NSA的Suite B演算法套件。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
14-Jan-2013 |
初始版本 |