站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

IPSec VPN Client 撥入採用 Microsoft CA 憑證實作

前言

在 Cisco ASA 設定 IPSec VPN Client 連接驗證設定時通常採用 VPN Group Name 及 Group Password 來進行簡單的連接驗證,本篇實作為利用 Microsoft CA 派發憑證給 Cisco VPN Client 來進行此一驗證動作提高安全性。

實作環境

實作環境

安裝及設定

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

安裝 IIS 服務

安裝 Certificate 服務

請依下列步驟來安裝獨立根 CA (Standard-alone Root CA)

 【開始】 >> 【控制台】 >> 【新增或移除程式】 >> 【新增/移除 Windows 元件】 >> 【Certificate Services】

安裝 Certificate 服務

安裝完成後確定是否把屆時提供使用者申請憑證服務的網頁放入 IIS 內

IIS For 憑證服務 IIS Admin Service

Cisco ASA CA 設定

確定 Cisco ASA 設備系統時間、日期、時區

在進行設定以前請先確定 Cisco ASA 設備系統時間、日期、時區是否與 CA 伺服器相同

Cisco ASA 時區設定

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
    1. Trustpoint Name: 此設定檔名稱此例為 Weithenn_VPN
    2. Key Pair: 建立 Private Key 此例將 Key 命名為 Private.key
    3. Certificate Subject DN: 此憑證申請書的資訊
      1. Common Name(CN): 填入 CA 伺服器的 FQDN,此例為 CA.weithenn.org
      2. Department(OU): 填入組織或部門別,此例為 IT
      3. Company Name(O): 填入公司名稱,此例為 Weithenn Research
      4. Country(C): 填入國碼,此例為 TW(Taiwan)
      5. Location(L): 填入地區,此例為 Taipei
      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
 Dv+S7GVfaojdyM0qhoLiyPJyHVSumdLYOwBdEAjsTvcs1I/ek9Rji/5N7eNiZPju
 XbLw3OYK/0EpgAhqN8X/Zw73jckz08hhfkBzwjRmLadd
 -----END CERTIFICATE REQUEST-----

Cisco ASA 產生憑證要求 CSR

提交憑證要求 CSR 至 Windows CA Server

  1. 送出憑證要求 CSR(Certificate Signing Request) 申請
    1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 [http://192.168.1.10/certsrv])
    2. 點選【要求憑證】
    3. 點選【進階憑證要求】
    4. 點選【用 Base-64 編碼的 CMC 或 PKCS #10 檔案來提交憑證要求,或用 Base-64 編碼的 CMC 或 PKCS #7 檔案提交更新要求。】
    5. 貼上【ASA_CSR.txt 內容】至已儲存的要求區塊內
    6. 按下【提交】
    7. 憑證擱置 (等待 Windows CA Server 發行您提交的憑證)
  2. Windows CA Server 發行憑證
    1. 登入 Windows CA Server
    2. 開啟【憑證授權】
    3. 點選【擱置要求】 >> 【點擊欲發行的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 可在【已發出的憑證】內看到剛才發行的憑證
  3. 下載 ASA Certificate 憑證
    1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 [http://192.168.1.10/certsrv])
    2. 點選【檢視擱置中的憑證要求狀態】
    3. 點選【已儲存要求的憑證(時間)】
    4. 點選【Base 64】 >> 【下載憑證】並命名為 asaca.cer 此憑證為 Cisco ASA Certificate 為屆時匯入 Identity Certificates 內用

送出 CSR 申請 憑證擱置 (等待允許) Windows CA Server 發行憑證 下載 ASA Certificate 憑證

安裝 RootCA 及 ASA Certificate 至 Cisco ASA 上

  1. 下載 RootCA 憑證
    1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 [http://192.168.1.10/certsrv])
    2. 點選【下載 CA 憑證、憑證鏈結或 CRL】
    3. 點選【Base 64】 >> 【下載 CA 憑證】並命名為 Weithenn_RootCA.cer
  2. 安裝 RootCA 憑證至 Cisco ASA 的 CA Certificates 內
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Device Management】 >> 【Certificate Management】 >> 【CA Certificates】 >> 【Add】 >> 【貼上 RootCA 憑證內容 (PEM格式)】 >> 按下【Install Certificate】
  3. 安裝 ASA Certificate 憑證至 Cisco ASA 的 Identity Certificates 內
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Device Management】 >> 【Certificate Management】 >> 【Identity Certificates】 >> 【Install】 >> 【貼上 ASA Certificate 內容 (Base 64 格式)】 >> 按下【Install Certificate】

下載 RootCA 憑證 貼上 RootCA 憑證內容 CA Certificates 資訊 Identity Certificates 資訊 ASA CA 資訊

設定 VPN (IPSec) 使用憑證驗證及相關設定

  1. 設定 IKE Policy
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPsec】 >> 【IKE Policies】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Priority: 65535
      2. Authentication: rsa-sig
      3. Encryption: 3des
      4. D-H Group: 2
      5. Hash: md5
      6. Lifetime: 86400 seconds
  2. 設定 IPSec Transform Sets
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPSec】 >> 【IPSec Transform Sets】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Set Name: Weithenn-3DES-MD5
      2. Mode: Tunnel
      3. ESP Encryption: 3DES
      4. ESP Authentication: MD5
  3. 設定 Crypto Maps
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Advanced】 >> 【IPSec】 >> 【Crypto Maps】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Interface: wan
      2. Priority: 10
      3. Transform Sets: Weithenn-3DES-MD5
  4. 設定 IPSec Rules Group Policies
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Group Policies】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Name: Weithenn_Policy
      2. DNS Servers: 192.168.1.20, 192.168.1.30
      3. WINS Servers: 192.168.1.20, 192.168.1.30
  5. 設定 VPN Client IP Range
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Address Assignment】 >> 【Address Pools】 >> 【Add】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
      1. Name: VPN_Client_IP_Pool
      2. Starting IP Address: 192.168.1.101
      3. Ending IP Address: 192.168.1.200
      4. Subnet Mask: 255.255.255.0
  6. 建立 Cisco ASA 本機使用者帳號 (因為尚未結合 RADIUS 身份驗證)
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【AAA/Local Users】 >> 【Local Users】 >> 【Add】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
      1. Username: vpnuser
      2. Password: 12345678
      3. Confirm Password: 12345678
  7. 設定 IPsec Connection Profiles
    1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【IPsec Connection Profiles】 >> 【Edit】 >> 【設定相關資訊 (如下)】>> 【OK】 >> 【Apply】
      1. Name: DefaultRAGroup
      2. Identity Certificates: 選擇 ASA Certificate (Identity Certificates)
      3. Server Group: LOCAL
      4. Client Address Pools: VPN_Client_IP_Pool
      5. Group Policy: Weithenn_Policy

設定 IKE Policy 設定 IPSec Transform Sets 設定 IPSec Rules Group Policies 設定 IPSec Group Policy Name 設定 DNS、WINS IP Address 設定 VPN Client IP 網段 建立 ASA 本機帳號 設定 IPsec Connection Profiles

設定 Cisco VPN Client

  1. 安裝 Cisco VPN Client (vpnclient-win-msi-5.0.02.0090-k9.exe)
  2. 安裝 RootCA 至 Cisco VPN Client
    1. 開啟 Cisco VPN Client >> 【Certificates】 >> 【Show CA/RA Certificates】 >> 【Import】 >> 選擇 RootCA 匯入【Weithenn_RootCA.cer】
  3. 提交使用者憑證需求
    1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 [http://192.168.1.10/certsrv])
    2. 點選【要求憑證】
    3. 點選【進階憑證要求】
    4. 點選【向這個 CA 建立並提交一個要求。】後填入如下相關資訊
      1. 識別資訊名稱: Weithenn Wang (填入使用者相關資訊)
      2. 所需的憑證類型: 用戶端驗證憑證
      3. 金鑰選項: 選擇【建立新的金鑰組】及【Microsoft Enhanced Cryptographic Provider v1.0】
        1. 金鑰使用方式: 選擇【二者皆是】
        2. 金鑰大小: 輸入【1024】、選擇【自動金鑰容器名稱】、勾選【將金鑰標示成可匯出】
      4. 其他選項
        1. 要求格式: 選擇【PKCS10】
        2. 雜湊演算法: 選擇【MD5】
    5. 憑證擱置 (等待 Windows CA Server 發行您提交的憑證)
  4. Windows CA Server 發行使用者憑證
    1. 登入 Windows CA Server
    2. 開啟【憑證授權】
    3. 點選【擱置要求】 >> 【點擊欲發行的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 可在【已發出的憑證】內看到剛才發行的憑證
  5. 安裝使用者憑證至電腦 (將同步安裝至 Cisco VPN Client)
    1. 開啟瀏覽器輸入 Windows CA Server 憑證服務網址 (本例為 [http://192.168.1.10/certsrv])
    2. 點選【檢視擱置中的憑證要求狀態】
    3. 點選【用戶端驗證憑證(時間)】 >> 點選【安裝這個憑證】 >> 【是】顯示安裝憑證成功
    4. 此時開啟 IE 或 MMC 查看使用者憑證資訊時可看到剛才安裝的使用者憑證資訊
    5. 此時開啟 Cisco VPN Client 查看 Certificates 可發現有 RootCA 及剛才安裝的使用者憑證資訊
  6. 設定 Cisco VPN Client 使用憑證進行驗證
    1. 建立 Cisco VPN Client 連線設定
    2. 填入設定檔名稱、Cisco VPN IP Address、選擇使用剛才的使用者憑證進行驗證
    3. 設定檔建立完成後按下 Connect 後若驗證成功即跳出帳號密碼驗證視窗,此時請輸入剛才建立的 ASA 使用者帳號 vpnuser 及密碼即可登入 VPN,登入成功後即可看到右下角有鎖頭圖示

開啟 VPN Client 設定 VPN Client VPN Client 匯入 RootCA 匯入 RootCA 成功 使用者憑證服務 1 使用者憑證服務 2 使用者憑證服務 3 CA Server 發行使用者憑證 安裝使用者憑證 查看使用者憑證 使用者憑證資訊 1 使用者憑證資訊 2 VPN Client 匯入使用者憑證 VPN Client 設定使用憑證驗證 VPN Client 設定檔建立完成 VPN Client 連結

補充一、備份使用者憑證

未避免使用者的電腦重灌或其它因素造成該使用者憑證無法使用而無法登入 VPN,建議申請使用者憑證及設定連結 VPN 成功後將該使用者憑證進行備份 (含 Private Key),備份步驟如下 (以 IE 8 操作為例),其中保護私密金鑰密碼為當日後使用者電腦重灌後匯入 .pfx 時會詢問您當初所設定的保護密碼 (您也可設為空白)。

  1. 開啟 【IE8】 >> 【工具】 >> 【網際網路選項】 >> 【內容】 >> 【憑證】 >> 【點選要匯出的憑證】 >> 【匯出】
  2. 【憑證匯出精靈】 >> 【是,匯出私密金鑰】 >>【 PKCS #12 啟用加強保護】 >> 【私密金鑰保護密碼】 >> 【匯出的檔案路徑】 >> 【完成】

使用者憑證匯出 1 使用者憑證匯出 2 使用者憑證匯出 3 使用者憑證匯出 4 使用者憑證匯出 5 使用者憑證匯出 6

補充二、Windows CA Server 撤銷使用者憑證

若該憑證的使用者離職為落實公司安全政策,您可至 Windows CA Server 將該使用者憑證撤銷 (那麼 VPN Client 使用憑證驗證時即會失敗),至於撤銷理由請自行選擇即可(本例為選擇已取代) 完成後 Windows CA Server 預設為一週更新 CRL(Certificate Revocation List) 一次,您可自行調整更新時間或手動更新 CRL.

  1. Windows CA Server 發行使用者憑證
    1. 登入 Windows CA Server
    2. 開啟【憑證授權】
    3. 點選【已發出的憑證】 >> 【點擊欲撤銷的憑證】 >> 【右鍵後選擇所有工作】 >> 【撤銷憑證】 >> 【理由代碼】 >> 可在【已撤銷的憑證】內看到剛才撤銷的憑證
    4. Windows CA Server 預設為一週更新 CRL(Certificate Revocation List) 一次,您可自行調整更新時間 (小時、天、週、月、年) 或手動更新 CRL
    5. 手動更新 CRL 方式為點選【已撤銷的憑證】 >> 【右鍵後選擇所有工作】 >> 【發行】 >> 【新的 CRL】 >> 【確定】 如此即馬上更新 CRL 內容

撤銷使用者憑證 1 撤銷使用者憑證 2 撤銷使用者憑證 3 手動更新撤銷清單(CRL) 1 手動更新撤銷清單(CRL) 2

補充三、Cisco ASA 下載 CRL

  1. 設定 Cisco ASA 下載 Windows CA Server 憑證撤銷清單 CRL(Certificate Revocation List)
    1. 開啟 【ASDM】>> 【Configuration】 >> 【Remote Access VPN】 >> 【Certificate Management】 >> 【CA Certificates】 >> 【Edit】 >> 【CRL Retrieval Policy】 >> 【Add】 >> 【Static URLs (如下)】 >> 【OK】
      1. Static URLs: 本例為 [http://192.168.1.10/certsrv/certcrl.crl?Type=base&Renewal=0&Enc=bin]
    2. 設定完成後按下【Request CRL】Cisco ASA 將會立即向 Microsoft CA Server 下載最新 CRL

ASA 下載 CRL 1 ASA 下載 CRL 2

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

參考

[ 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]

MeFAQ

Q.因為 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 憑證進行套用。

  1. 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【IPsec Connection Profiles】 >> 【Edit】
    1. 於 IKE Peer Authentication 區塊中的 【Identity Certificates】項目按下「Manage」鍵,選擇您新套用的 Cisco ASA CA 憑證即可。
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com