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

IPSec VPN Client 配合 Microsoft RADIUS 認證實作

前言

在 Cisco ASA 設定 IPSec VPN Client 已接採用憑證來取代 VPN Group Name 及 Group Password 來進行連接驗證,但登入 VPN 還必須在 Cisco ASA 中建立本機帳號太麻煩,因此本篇實作為 Cisco ASA 為 RADIUS Client 角色而 Microsoft IAS (RADIUS Server) 配合 Windows AD 來達到對 VPN Client 身份驗證的機制進而 VPN 播入提高安全性。

實作環境

安裝及設定

Microsoft Windows 2003 Server IAS (RADIUS) 設定

安裝網際網路驗證服務 (IAS)

請依如下步驟安裝 IAS

 【開始】 >> 【控制台】 >> 【新增或移除程式】 >> 【新增/移除 Windows 元件】 >> 【Networking Services】 >> 【詳細資料】 >> 【網際網路驗證服務 (IAS)】 >> 【確定】

安裝 IAS(RADIUS)

安裝完畢後確定 IAS 服務有啟動且並使用下列指令來確定系統有 Listen UDP Port 1645、1646

 C:\>netstat -na | find ":16"
  UDP    0.0.0.0:1645           *:*
  UDP    0.0.0.0:1646           *:*

設定 RADIUS 可向 AD 查詢使用者帳號資訊

設定 RADIUS Server 可向 Active Directory 查詢使用者帳號資訊,驗證成功後才使 Cisco VPN Client 能播入 VPN Network 成功反之則失敗,下列步驟為將 RADIUS Server 登記至 Active Directory 以便屆時的查詢動作

方式一、在 Active Directory 中登錄伺服器

  1. 開啟【網際網路驗證服務】
  2. 點選【網際網路驗證服務(本機)】 >> 【右鍵】 >> 【在 Active Directory 中登錄伺服器】

方式二、使用 netsh 指令

  1. 開啟【命令提示字元】
  2. 鍵入指令 【netsh ras add registeredserver】

RADIUS 登錄至 AD (GUI) RADIUS 登錄至 AD (Command)

設定 RADIUS Server/Client 共用密碼

設定 RADIUS Server 只接受某些特定的 RADIUS Client 要求 (Server/Client 會設定一組共用密碼),此例 RADIUS 共用密碼為 12345678 而 RADIUS Client 即為 Cisco ASA (192.168.1.254) 設備

  1. 開啟【網際網路驗證服務】
  2. 點選【RADIUS 用戶端】 >> 【右鍵】 >> 【新增 RADIUS 用戶端】
    1. 名稱: Cisco ASA 5510
    2. IP: 192.168.1.254
    3. 用戶端廠商: RADIUS Standard
    4. 共用密碼: 12345678 (屆時 Cisco ASA 上也要設定此密碼)
    5. 確認共用密碼: 12345678 (屆時 Cisco ASA 上也要設定此密碼)

新增 RADIUS Client

設定 RADIUS Client 存取原則及存取記錄

設定 RADIUS Client 遠端存取原則及儲存存取記錄,以後日後查詢及分析使用者登入時間及相關資訊

  1. 設定儲存 RADIUS Client 存取記錄
    1. 開啟【網際網路驗證服務】
    2. 點選【遠端存取記錄】 >> 【本機檔案】 >> 【設定】 >> 勾選【驗證要求】 >> 【記錄檔】 >> 指定【Log 存放路徑】 >> 【確定】
  2. 設定 RADIUS Client 遠端存取原則
    1. 開啟【網際網路驗證服務】
    2. 點選【遠端存取原則】 >> 【連線到其它存取伺服器】 >> 點選【授予遠端存取權限】 >> 按下【編輯設定檔】 >> 【驗證】 >> 確認勾選【CHAP、PAP、SPAP】 >> 【加密】 >> 確認勾選【不加密】 >> 【確定】

遠端存取記錄 遠端存取原則

設定網域使用者允許撥入

完成設定後還必須允許該使用者帳號可以有撥入 VPN 的權限,設定方式如下

  1. 登入【AD Server】
  2. 查看內容【使用者資訊】 >> 【撥入】 >> 在士端存取使用權限(撥入或 VPN) 請選擇【透過遠端存取原則來控制存取】

Cisco ASA CA 設定

建立 AAA Server Group

  1. 建立 AAA (Authentication, Authorization, Accounting) Server Group
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【AAA/Local Users】 >> 【AAA Server Groups】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Server Group: Weithenn_Radius
      2. Protocol: RADIUS
  2. 建立 RADIUS Server 資訊
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【AAA/Local Users】 >> 【Servers in the Selected Group】 >> 【Add】 >> 【設定相關資訊 (如下)】 >> 【OK】 >> 【Apply】
      1. Interface Name: lan
      2. RADIUS Server IP: 192.168.1.10
      3. Secret Key: 12345678 (RADIUS Server 所設定的共用密碼)
  3. 修改 IPsec Connection Profiles
    1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【IPsec Connection Profiles】 >> 【DefaultRAGroup】 >> 【Edit】 >> Server Group【Weithenn_Radius】 >> 【OK】 >> 【Apply】
    2. 選擇 IPsec Connection Profiles 套用介面,此例為套用至【wan】

設定 AAA Server Groups 設定 RADIUS Server 修改 IPsec Connection Profiles 套用介面至 wan

測試 RADIUS 驗證機制

經過上述設定後 Cisco ASA 為 RADIUS Client 應可正常向 RADIUS Server 詢問使用者資訊,此測試為在 Cisco ASA 上測試是否可與 Windows RADIUS Server 進行溝通

方式一、ASDM 操作

  1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【AAA/Local Users】 >> 【AAA Server Groups】 >> 【Test】填入下列資訊進行測試
    1. 選擇【Authentication】
    2. 填入【網域使用者帳戶及密碼】,此例為 weithenn / 12345678
    3. 按下【OK】進行 RADIUS 驗證

測試 RADIUS 驗證機制

方式二、Cisco ASA CLI 命令

 #configure terminal                                            //進入 Configure 模式
 #test aaa authentication Weithenn_Radius host 192.168.1.10     //測試 RADIUS 驗證
 Username: weithenn                                             //輸入網域使用者帳號
 Password: ********                                             //輸入網域使用者密碼
 INFO: Attempting Authentication test to IP address <192.168.1.10> (timeout: 12 seconds)
 INFO: Authentication Successful                                //驗證成功訊息
 ERROR: Authentication Rejected: AAA failure                    //驗證失敗訊息

若上述 RADIUS 驗證成功後,當您使用 Cisco VPN Client 撥入 VPN Network 通過憑證驗證之後跳出身份驗證視窗時您即可填入【網域使用者帳戶及密碼】即可成功撥入 VPN Network,而您日後您可登入 Windows RADIUS Server 查看 RADIUS Log (類似如下訊息) 查詢及分析使用者登入時間及相關資訊

 192.168.1.254,weithenn,03/23/2010,16:50:25,IAS,CA-RADIUS,4
 192.168.1.254,5,3,61,5,4108
 192.168.1.254,4116,0,4128,Cisco ASA 5510,4155,1,4154,對所有使用者使用 Windows 驗證,4129,WEITHENN\weithenn,4127,1,4149,連線到其他存取伺服器
 192.168.1.10 03/23/2010 06:07:08 7,4130,weithenn.org/IT Group/weithenn,4136,1,4142,0
 192.168.1.254,weithenn,03/23/2010,16:50:25,IAS,CA-RADIUS,25,311 1 
 192.168.1.10 03/23/2010 06:07:08 7,4130,weithenn.org/IT Group/weithenn,6,2,7,1,4108,
 192.168.1.254,4116,0,4128,Cisco ASA 5510,4155,1,4154,對所有使用者使用 Windows 驗證,4129,WEITHENN\weithenn,4127,1,4149,連線到其他存取伺服器

Running-Config

 aaa-server Weithenn_Radius protocol radius
 aaa-server Weithenn_Radius (lan) host 192.168.1.10
  key 12345678
  radius-common-pw 12345678
 crypto dynamic-map wan_dyn_map 10 set reverse-route
  authentication-server-group Weithenn_Radius

補充 - Split Tunnel

到目前為止的設定可以完成大部份的作業,但還有個小問題也就是當 VPN Client 從遠端撥入 VPN Network 時 VPN Client 的 Default Gateway 會被 VPN Network 所覆蓋掉,這樣的狀況雖然 VPN Client 可以跟 VPN Network 內的機器溝通的很好,但若有其他需求時這樣的路由設定就反而是個限制,例如 VPN Client 想要一邊跟 VPN Network 的機器溝通又一邊要存取 VPN Client 本地端的 NAS 時就會發生無法存取的狀況,我們可以透過設定 Split Tunnel 功能在 Cisco ASA 上來解決這個問題,也就是 不要覆蓋 VPN Client Default Gateway 又可以跟 VPN Network 的機器溝通。

  1. 開啟【ASDM】 >> 【Configuration】 >> 【Remote Access VPN】 >> 【Network (Client) Access】 >> 【Group Policies】 >> 選擇您用於 VPN 的政策此例為【Weithenn_Policy】 >> 【Edit】 >> 【Advanced】 >> 【Split Tunneling】
    1. 取消勾選【Policy 的 Inherit】項目,並選擇【Tunnel Network List Below
    2. 取消勾選【Network List 的 Inherit】項目後按下【Manage】 >> 【Add ACL】 >> 建立名稱【Split_Tunnel】 >> 【OK】 >> 【Add ACE】 >> 選擇 VPN Network 網段此例為【Permit、192.168.1.0/24】 >> 【OK】
  2. 最後按下【Apply】套用剛才設定的 Split Tunnel 政策,此時再使用 VPN Client 撥入後其 Default Gateway 應該就不會被 VPN Network 所覆蓋

上述的動作操作完畢後其實 Running-Config 增加了下列三行

 access-list Split_Tunnel standard permit 192.168.1.0 255.255.255.0 //建立 Split Tunnel ACL
 group-policy Weithenn_Policy attributes                            //修改 Weithenn_Policy 內屬性值 (此行原本就存在)
  split-tunnel-policy tunnelspecified                               //增加此行
  split-tunnel-network-list value Split_Tunnel                      //增加此行

您也可以參考官網資源

參考

[PIX/ASA 7.x and Cisco VPN Client 4.x with Windows 2003 IAS RADIUS (Against Active Directory) Authentication Configuration Example]

[ASA/PIX 8.x: Radius Authorization (ACS) for Network Access using Downloadable ACL with CLI and ASDM Configuration Example]

Me FAQ

Q.安裝 Cisco VPN Client 時發生 Internal Error 2738 錯誤?

Error Message:

在 Windows 7 (32bit) 安裝 Cisco VPN Client 時發生 Internal Error 2738 錯誤且安裝中斷無法繼續

Ans:

  1. 請先將 Windows 7 (32bit) 重新開機
  2. 使用【以系統管理員身份執行】去開啟【命令提示字元】
  3. 執行指令 【reg delete HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8} /f】
  4. 執行指令 【reg delete HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{F414C260-6AC0-11CF-B6D1-00AA00BBBB58} /f】
  5. 執行指令 【regsvr32 vbscript.dll】
  6. 再次執行安裝 Cisco VPN Client 應該可以成功
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com