使用 RSA 驗證對 IPSec 連線進行計費

使用 RSA 驗證對 IPSec 連線進行計費

Apple iOS 具有「VPN On Demand」功能。透過此功能,只要裝置嘗試連接到某些網域或互聯網,就會建立 VPN 連線。 iOS 僅支援基於憑證的身份驗證的「VPN On Demand」。

為了為我的辦公室 VPN 伺服器的 iOS 用戶提供“VPN On Demand”,我們正在使用下一個 IPSec 解決方案:

  • Ubuntu 14.04 - VPN 伺服器作業系統。
  • StrongSwan 5.1.2 - IKE 守護程式。
  • 對於每個對等點,我產生一個單獨的私鑰並頒發一個匹配的憑證。用戶端 (iOS IKEv1) 使用 RSA 和 Xauth 進行身份驗證。
  • iPhone 和 iPad 無法在沒有 Xauth 的情況下使用 IPSec(所謂的 Cisco IPSec)。 「VPN On Demand」無法使用需要輸入密碼的 VPN 設定文件,但 Xauth 通常需要使用者名稱/密碼。為了解決這個問題,我們使用 xauth-noauth - 允許任何使用者名稱和密碼的假 Xauth 驗證器。在這種情況下,我們僅使用客戶端憑證來對其進行身份驗證。

這個解決方案對我們來說效果很好。但我們有了新的要求 - 使用一個用戶資料庫設定多個 VPN 伺服器並對 VPN 使用情況進行統計。

使用 RADIUS 是此任務的常見做法,strongSwan 有相應的插件。但有 IKEv1/Xauth 的 StrongSwan 使用使用者名稱/密碼在後端 RADIUS 伺服器上對使用者進行身份驗證。我的解決方案中未使用使用者名稱/密碼。

我的問題:

  1. 如果 Xauth 不使用使用者名稱/密碼,如何使用 Radius 計費?
  2. 是否可以將 RSA 驗證檢查委託給 RADIUS 伺服器?

PS 我的大多數 iOS 用戶端都使用支援 IKEv2 的 iOS 8。 IKEv2中有EAP-TLS。我可以使用 EAP-TLS 將 RSA 驗證檢查委託給 RADIUS 伺服器嗎?或者我在 EAP-TLS 方面挖掘的方向錯誤?

PSPS 我的第二件事是關於strongSwan的VICI介面。我應該收到有關每個新 IPSec 連接的通知,但看起來 VICI 的工作方式不同。

答案1

RADIUS 會計eap 半徑插件不需要 XAuth 身份驗證。它實際上適用於任何類型的身份驗證,無論是否透過 RADIUS,只要客戶端請求虛擬 IP 位址(對於 IKEv2,甚至可以停用此要求)。不過,對於某些 IKEv1 用戶端,重新驗證時會出現一些問題(請參閱問題第937章及相關)。

EAP-TLS 可以將 IKEv2 用戶端的憑證驗證委託給 AAA 伺服器,但這與 RADIUS 計費無關。

答案2

感謝 ecdsa,我找到了解決問題的幾種方法。

  1. 使用 RADIUS 記帳而不使用 RADIUS 驗證。

如果使用選項啟用了 eap-radius 插件會計=是,strongSwan 將發送 RADIUS 訊息來開始計費,即使 ipsec.conf 檔案中未使用 eap-radius。就我而言,此 RADIUS 訊息如下所示:

Acct-Status-Type = Start
Acct-Session-Id = 1434531934-1
NAS-Port-Type = Virtual
Service-Type = Framed-User
NAS-Port = 1
NAS-Port-Id = ios-ikev1-fakexauth
NAS-IP-Address = <nas_ip>
Called-Station-Id = <nas_ip>[4500]
Calling-Station-Id = <client_ip>[4500]
User-Name = "C=CH, O=strongSwan, [email protected]"
Framed-IP-Address = 172.20.1.1
NAS-Identifier = strongSwan

我可以從訊息中取得證書CN,這足以讓我進行正確的記帳。如果我想拒絕某些 CN 的訪問,我可以拒絕來自 stronSwan 的 RADIUS 訊息,並且 ipsec 連線將中斷。

  1. 進行記帳和訪問檢查上下腳本而不是使用 RADIUS。

另外我想使用 StrongSwan curl 外掛程式來存取憑證撤銷清單。但我發現缺少有關此插件的文檔。我錯過了什麼嗎?

相關內容