1、前言
在 Cisco ASA 設定 IPSec VPN Client 連接驗證設定時通常採用 VPN Group Name 及 Group Password 來進行簡單的連接驗證,本篇實作為利用 Microsoft CA 派發憑證給 Cisco VPN Client 來進行此一驗證動作提高安全性。文章目錄
1、前言2、實作環境
3、Microsoft CA / Certificate 設定
安裝 IIS 服務
安裝 Certificate 服務
4、Cisco ASA CA 設定
確認 Cisco ASA 設備系統時間、日期、時區
Cisco ASA 產生憑證要求 CSR (Certificate Signing Request)
提交憑證要求 CSR 至 Windows CA Server
安裝 RootCA 及 ASA Certificate 至 Cisco ASA 設備
設定 VPN (IPSec) 使用憑證驗證及相關設定
設定 Cisco VPN Client
5、補充
補充一:備份使用者憑證
補充二:Windows CA Server 撤銷使用者憑證
補充三:Cisco ASA 下載 CRL
6、CA 憑證機制完成後 Running Config 內容
7、參考
8、MeFAQ
Q1.因為 Cisco ASA 的 CA 憑證到期,但是更換後 VPN Client 無法連接成功?
2、實作環境
Cisco ASA 5510 Series * 2台- Cisco Adaptive Security Appliance Software Version 8.0(4) - asa804-k8.bin
- Device Manager Version 6.1(3) - asdm-613.bin
- 憑證要求 CSR (Certificate Signing Request): ASA_CSR.txt
Windows Server 2003 R2 Standard Edition SP2
- CA Server IP: 192.168.1.10
- DNS Servers: 192.168.1.20, 192.168.1.30
- WINS Servers: 192.168.1.20, 192.168.1.30
- VPN Client IP Range: 192.168.1.101 ~ 200
- RootCA 憑證: Weithenn_RootCA.cer
- ASA 憑證: asaca.cer
3、Microsoft CA / Certificate 設定
安裝 IIS 服務
此次實作為使用者屆時使用瀏覽器來向獨立根 CA (Standard-alone Root CA) 申請憑證,安裝 IIS 服務以便屆時提供憑證服務,請依如下步驟安裝 IIS 【開始】 >> 【控制台】 >> 【新增或移除程式】 >> 【新增/移除 Windows 元件】 >> 【Application Server】 >> 【詳細資料】 >> 【IIS】
安裝完畢後確定 IIS 服務有啟動且並使用下列指令來確定系統有 Listen Port 80。
C:\> netstat -na | find ":80"
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
安裝 Certificate 服務
請依下列步驟來安裝獨立根 CA (Standard-alone Root CA)。 【開始】 >> 【控制台】 >> 【新增或移除程式】 >> 【新增/移除 Windows 元件】 >> 【Certificate Services】
安裝完成後確定是否把屆時提供使用者申請憑證服務的網頁放入 IIS 內。
4、Cisco ASA CA 設定
確認 Cisco ASA 設備系統時間、日期、時區
在進行設定以前請先確定 Cisco ASA 設備系統時間、日期、時區是否與 CA 伺服器相同。Cisco ASA 產生憑證要求 CSR (Certificate Signing Request)
操作 Cisco ASA 來產生憑證要求 CSR (Certificate Signing Request),以便等一下提交給 Windows CA Server,請依下列步驟來產生 CSR (Certificate Signing Request)1. 開啟【ASDM】 >> 【Configuration】 >> 【Device Management】 >> 【Certificate Management】 >> 【Identity Certificates】 >> 【Add】。
2. Add Identity Certificate。
2-1. Trustpoint Name: 此設定檔名稱此例為 Weithenn_VPN。
2-2. Key Pair: 建立 Private Key 此例將 Key 命名為 Private.key。
2-3. Certificate Subject DN: 此憑證申請書的資訊。
2-3-1. Common Name(CN): 填入 CA 伺服器的 FQDN,此例為 CA.weithenn.org。
2-3-2. Department(OU): 填入組織或部門別,此例為 IT。
2-3-3. Company Name(O): 填入公司名稱,此例為 Weithenn Research。
2-3-4. Country(C): 填入國碼,此例為 TW(Taiwan)。
2-3-5. Location(L): 填入地區,此例為 Taipei。
2-3-6. Email Address(EA): 填入連絡人 E-Mail。
完成上述設定後按下 【Add Certificate】後 Cisco ASA 會提示您將此憑證要求 CSR (Certificate Signing Request) 存檔至您的本機以便等一下送給 Windows CA Server 來申請憑證用,此例為將憑證要求 CSR 存檔為 ASA_CSR.txt 內容類似如下顯示
-----BEGIN CERTIFICATE REQUEST-----
MIIB/DCCAWUCAQAwgYwxITAfBgNVBAcTGE5laWh1IERpc3QuLCBUYWlwZWkgQ2l0
eTELMAkGA1UEBhMCVFcxFDASBgNVBAoTC0RLU0ggVGFpd2FuMQswCQYDVQQLEwJJ
VDEiMCAGA1UEAaMZVFdaMDUuZWR3YXJka2VsbGVyLmNvbS50dzETMBEGCSqGSIb3
DQEJAhYEREtTSDCBnzANBgkqhkiG7w0BAQEFAAOBjQAwgYkCgYEAoNaaNRiZE1nE
+kI0Ih0IQ+aQa3PADyw2dVHzqdi1RVJlhkTwoBmeX+dMQn9MVf2jezmjYE6T2Cff
xBXP0WDAbaZ31Rb1Udh//igbRC57DEg7DEZjVtlomjim7+W9HaDeS1+IAUl0dgqo
PjJR23Z6KDwOigcE1fP+WbRhuHdtaZkCAwEAAaAvMC0GCSqGSIb3DQEJDjEgMB4w
CwYDVR0PBAQDAgWgMA9GA1UdEQQIdAaCBERLU0gwDQYJKoZIhvcNAQEEBQADgYEA
FDh+CJnk8Tn0SkJCbRUMKiKxOy1auGw5NKKxdSRWGVQFwCx5qjoQg1TAXu/HIEDf
v+S7GVfaojdyM0qhoLiyPJyHVSumdLYOwBdEAjsTvcs1I/ek9Rji/5N7eNiZPju
XbLw3OYK/0EpgAhqN8X/Zw73jckz08hhfkBzwjRmLadd
-----END CERTIFICATE REQUEST-----
提交憑證要求 CSR 至 Windows CA Server
1. 送出憑證要求 CSR(Certificate Signing Request) 申請1-1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 http://192.168.1.10/certsrv)。
1-2. 點選【要求憑證】。
1-3. 點選【進階憑證要求】。
1-4. 點選【用 Base-64 編碼的 CMC 或 PKCS #10 檔案來提交憑證要求,或用 Base-64 編碼的 CMC 或 PKCS #7 檔案提交更新要求】。
1-5. 貼上【ASA_CSR.txt 內容】至已儲存的要求區塊內。
1-6. 按下【提交】。
1-7. 憑證擱置 (等待 Windows CA Server 發行您提交的憑證)。
2. Windows CA Server 發行憑證
2-1. 登入 Windows CA Server。
2-2. 開啟【憑證授權】。
2-3. 點選【擱置要求】 >> 【點擊欲發行的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 可在【已發出的憑證】內看到剛才發行的憑證。
3. 下載 ASA Certificate 憑證
3-1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 http://192.168.1.10/certsrv)。
3-2. 點選【檢視擱置中的憑證要求狀態】。
3-3. 點選【已儲存要求的憑證(時間)】。
3-4. 點選【Base 64】 >> 【下載憑證】並命名為 asaca.cer 此憑證為 Cisco ASA Certificate 為屆時匯入 Identity Certificates 內用。
安裝 RootCA 及 ASA Certificate 至 Cisco ASA 設備
1. 下載 RootCA 憑證1-1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 http://192.168.1.10/certsrv)。
1-2. 點選【下載 CA 憑證、憑證鏈結或 CRL】。
1-3. 點選【Base 64】 >> 【下載 CA 憑證】並命名為 Weithenn_RootCA.cer。
2. 安裝 RootCA 憑證至 Cisco ASA 的 CA Certificates 內
開啟【ASDM】 >> 【Configuration】 >> 【Device Management】 >> 【Certificate Management】 >> 【CA Certificates】 >> 【Add】 >> 【貼上 RootCA 憑證內容 (PEM格式)】 >> 按下【Install Certificate】。
憑證安裝完成後,查看憑證內容是否正確 (有效期限為 10 年)。
3. 安裝 ASA Certificate 憑證至 Cisco ASA 的 Identity Certificates 內
開啟【ASDM】 >> 【Configuration】 >> 【Device Management】 >> 【Certificate Management】 >> 【Identity Certificates】 >> 【Install】 >> 【貼上 ASA Certificate 內容 (Base 64 格式)】 >> 按下【Install Certificate】。
設定 VPN (IPSec) 使用憑證驗證及相關設定
1. 設定 IKE Policy開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPsec】 >> 【IKE Policies】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
- Priority: 65535
- Authentication: rsa-sig
- Encryption: 3des
- D-H Group: 2
- Hash: md5
- Lifetime: 86400 seconds
2. 設定 IPSec Transform Sets
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPSec】 >> 【IPSec Transform Sets】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
- Set Name: Weithenn-3DES-MD5
- Mode: Tunnel
- ESP Encryption: 3DES
- ESP Authentication: MD5
3. 設定 Crypto Maps
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPSec】 >> 【Crypto Maps】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
- Interface: wan
- Priority: 10
- Transform Sets: Weithenn-3DES-MD5
4.設定 IPSec Rules Group Policies
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Group Policies】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
- Name: Weithenn_Policy
- DNS Servers: 192.168.1.20, 192.168.1.30
- WINS Servers: 192.168.1.20, 192.168.1.30
5. 設定 VPN Client IP Range
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Address Assignment】 >> 【Address Pools】 >> 【Add】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
- Name: VPN_Client_IP_Pool
- Starting IP Address: 192.168.1.101
- Ending IP Address: 192.168.1.200
- Subnet Mask: 255.255.255.0
6.建立 Cisco ASA 本機使用者帳號 (因為尚未結合 RADIUS 身份驗證)
【Configuration】 >> 【Remote Access VPN】 >> 【AAA/Local Users】 >> 【Local Users】 >> 【Add】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
- Username: vpnuser
- Password: 12345678
- Confirm Password: 12345678
7. 設定 IPsec Connection Profiles
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【IPsec Connection Profiles】 >> 【Edit】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
- Name: DefaultRAGroup
- Identity Certificates: 選擇 ASA Certificate (Identity Certificates)
- Server Group: LOCAL
- Client Address Pools: VPN_Client_IP_Pool
- Group Policy: Weithenn_Policy
設定 Cisco VPN Client
1. 安裝 Cisco VPN Client (vpnclient-win-msi-5.0.02.0090-k9.exe)2. 安裝 RootCA 至 Cisco VPN Client
開啟 Cisco VPN Client >> 【Certificates】 >> 【Show CA/RA Certificates】 >> 【Import】 >> 選擇 RootCA 匯入【Weithenn_RootCA.cer】。
3. 提交使用者憑證需求
3-1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 http://192.168.1.10/certsrv)。
3-2. 點選【要求憑證】。
3-3. 點選【進階憑證要求】。
3-4. 點選【向這個 CA 建立並提交一個要求。】後填入如下相關資訊。
3-4-1. 識別資訊名稱: Weithenn Wang (填入使用者相關資訊)。
3-4-2. 所需的憑證類型: 用戶端驗證憑證。
3-4-3. 金鑰選項: 選擇【建立新的金鑰組】及【Microsoft Enhanced Cryptographic Provider v1.0】,在金鑰使用方式: 選擇【二者皆是】,金鑰大小: 輸入【1024】、選擇【自動金鑰容器名稱】、勾選【將金鑰標示成可匯出】。
3-4-4. 其他選項,要求格式: 選擇【PKCS10】,雜湊演算法: 選擇【MD5】。
3-5. 憑證擱置 (等待 Windows CA Server 發行您提交的憑證)。
4. Windows CA Server 發行使用者憑證
登入 Windows CA Server 後,開啟【憑證授權】,然後點選【擱置要求】 >> 【點擊欲發行的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 可在【已發出的憑證】內看到剛才發行的憑證。
5. 安裝使用者憑證至電腦 (將同步安裝至 Cisco VPN Client)
5-1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 http://192.168.1.10/certsrv)。
5-2. 點選【檢視擱置中的憑證要求狀態】。
5-3. 點選【用戶端驗證憑證(時間)】 >> 點選【安裝這個憑證】 >> 【是】顯示安裝憑證成功。
5-4. 此時開啟 IE 或 MMC 查看使用者憑證資訊時可看到剛才安裝的使用者憑證資訊。
5-5. 此時開啟 Cisco VPN Client 查看 Certificates 可發現有 RootCA 及剛才安裝的使用者憑證資訊。
6. 設定 Cisco VPN Client 使用憑證進行驗證
6-1. 建立 Cisco VPN Client 連線設定。
6-2. 填入設定檔名稱、Cisco VPN IP Address、選擇使用剛才的使用者憑證進行驗證。
6-3. 設定檔建立完成後按下 Connect 後若驗證成功即跳出帳號密碼驗證視窗,此時請輸入剛才建立的 ASA 使用者帳號 vpnuser 及密碼即可登入 VPN,登入成功後即可看到右下角有鎖頭圖示。
5、補充
補充一:備份使用者憑證
未避免使用者的電腦重灌或其它因素造成該使用者憑證無法使用而無法登入 VPN,建議申請使用者憑證及設定連結 VPN 成功後將該使用者憑證進行備份 (含 Private Key),備份步驟如下 (以 IE 8 操作為例),其中保護私密金鑰密碼為當日後使用者電腦重灌後匯入 .pfx 時會詢問您當初所設定的保護密碼 (您也可設為空白)。開啟 【IE8】 >> 【工具】 >> 【網際網路選項】 >> 【內容】 >> 【憑證】 >> 【點選要匯出的憑證】 >> 【匯出】 >> 【憑證匯出精靈】 >> 【是,匯出私密金鑰】 。
選擇【個人資訊交換 - PKCS #12 (.PFX)】 選項。
接著輸入私密金鑰保護密碼 。
選擇匯出的檔案路徑,最後按下完成即可。
補充二:Windows CA Server 撤銷使用者憑證
若該憑證的使用者離職為落實公司安全政策,您可至 Windows CA Server 將該使用者憑證撤銷 (那麼 VPN Client 使用憑證驗證時即會失敗),至於撤銷理由請自行選擇即可(本例為選擇已取代) 完成後 Windows CA Server 預設為一週更新 CRL(Certificate Revocation List) 一次,您可自行調整更新時間或手動更新 CRL。Windows CA Server 發行使用者憑證
登入 Windows CA Server,開啟【憑證授權】, 點選【已發出的憑證】 >> 【點擊欲撤銷的憑證】 >> 【右鍵後選擇所有工作】 >> 【撤銷憑證】 >> 【理由代碼】 >> 可在【已撤銷的憑證】內看到剛才撤銷的憑證。
Windows CA Server 預設為一週更新 CRL(Certificate Revocation List) 一次,您可自行調整更新時間 (小時、天、週、月、年) 或手動更新 CRL。
手動更新 CRL 方式為點選【已撤銷的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 【新的 CRL】 >> 【確定】 如此即馬上更新 CRL 內容。
補充三:Cisco ASA 下載 CRL
設定 Cisco ASA 下載 Windows CA Server 憑證撤銷清單 CRL(Certificate Revocation List),請開啟 【ASDM】>> 【Configuration】 >> 【Remote Access VPN】 >> 【Certificate Management】 >> 【CA Certificates】 >> 【Edit】 >> 【CRL Retrieval Policy】 >> 【Add】 >> 【Static URLs (如下)】 >> 【OK】Static URLs (本次實作環境為 http://192.168.1.10/certsrv/certcrl.crl?Type=base&Renewal=0&Enc=bin)
設定完成後按下【Request CRL】Cisco ASA 將會立即向 Microsoft CA Server 下載最新 CRL。
6、CA 憑證機制完成後 Running Config 內容
下列為 Cisco ASA 5510 設定憑證機制完成後,所增加的 Running Config 內容。ip local pool VPN_Client_IP_Pool 192.168.1.101-192.168.1.200 mask 255.255.255.0
crypto ipsec transform-set Weithenn-3DES-MD5 esp-3des esp-md5-hmac
crypto ipsec security-association lifetime seconds 28800
crypto ipsec security-association lifetime kilobytes 4608000
crypto dynamic-map wan_dyn_map 10 set transform-set Weithenn-3DES-MD5
crypto dynamic-map wan_dyn_map 10 set security-association lifetime seconds 28800
crypto dynamic-map wan_dyn_map 10 set security-association lifetime kilobytes 4608000
crypto map wan_map 10 ipsec-isakmp dynamic wan_dyn_map
crypto map wan_map interface wan
crypto ca trustpoint Weithenn_VPN
revocation-check crl none
enrollment terminal
subject-name CN=CA.weithenn.org,OU=IT,O=Weithenn Research,C=TW,L=Taipei
keypair Private.key
crl configure
policy both
url 1 http://192.168.1.10/certsrv/certcrl.crl?Type=base&Renewal=0&Enc=bin
no protocol ldap
no protocol scep
crypto ca certificate chain Weithenn_VPN
certificate 1aee8272000000000004
30820482 3082036a a0030201 02020a1a ee827200 00000000 04300d06 092a8648
...略...
86f70d01 01050500 30573112 3010060a 09922689 93f22c64 01191602 74773113
8ebe022a f458
quit
certificate ca 7533849e14a3efa54fe8c736fe2495a2
30820421 30820309 a0030201 02021075 33849e14 a3efa54f e8c736fe 2495a230
...略...
4f241149 fc2478d6 63417e59 7f408e08 d0b66413 bac8a17e f25861e6 067c5656
d8700c60 e8
quit
crypto isakmp enable wan
group-policy Weithenn_Policy internal
group-policy Weithenn_Policy attributes
wins-server value 192.168.1.20 192.168.1.30
dns-server value 192.168.1.20 192.168.1.30
vpn-tunnel-protocol IPSec l2tp-ipsec webvpn
default-domain value weithenn.org
username vpnuser password I6nJr5tTLhr4X1lA encrypted
username vpnuser attributes
memberof DefaultRAGroup
tunnel-group DefaultRAGroup general-attributes
address-pool VPN_Client_IP_Pool
default-group-policy Weithenn_Policy
tunnel-group DefaultRAGroup ipsec-attributes
trust-point Weithenn_VPN
7、參考
- Cisco PIX 500 Series Security Appliances Configuration Examples and TechNotes
- ASA/PIX 8.x and VPN Client IPSec Authentication Using Digital Certificates with Microsoft CA Configuration Example - Cisco Systems
- Windows Server 技術中心 - 撤銷憑證與公佈 CRL
8、MeFAQ
Q1.因為 Cisco ASA 的 CA 憑證到期,但是更換後 VPN Client 無法連接成功?
Error Message:因為 Cisco ASA 的 CA 憑證到期,但是更換 Cisco ASA 的 CA 後 VPN Client 卻無法連接成功了?
Ans:
雖然更新了 Cisco ASA CA 憑證,但是記得要指定與 VPN Client 溝通時的設定 (IPsec Connection Profiles),請依下列步驟將新匯入的 Cisco ASA CA 憑證進行套用。
【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【IPsec Connection Profiles】 >> 【Edit】,於 IKE Peer Authentication 區塊中的 【Identity Certificates】項目按下「Manage」鍵,選擇您新套用的 Cisco ASA CA 憑證即可。