共用方式為


設定適用於 P2S 憑證驗證 IKEv2 連線的 strongSwan VPN - Linux

本文可協助您從使用 strongSwan 的 Ubuntu Linux 用戶端使用 VPN 閘道點對站 (P2S) VPN 和憑證驗證連線到 Azure 虛擬網路 (VNet)。

開始之前

開始之前,請確認您位於正確的文章。 下表顯示 Azure VPN 閘道 P2S VPN 用戶端可用的設定文章。 步驟會根據驗證類型、通道類型和用戶端 OS 而有所不同。

驗證 通道類型 用戶端作業系統 VPN 用戶端
[MSSQLSERVER 的通訊協定內容]
IKEv2、SSTP Windows 原生 VPN 用戶端
IKEv2 macOS 原生 VPN 用戶端
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN 用戶端
OpenVPN 用戶端
OpenVPN macOS OpenVPN 用戶端
OpenVPN iOS OpenVPN 用戶端
OpenVPN Linux Azure VPN Client
OpenVPN 用戶端
Microsoft Entra ID
OpenVPN Windows Azure VPN 用戶端
OpenVPN macOS Azure VPN Client
OpenVPN Linux Azure VPN Client

必要條件

本文假設您已經執行下列的必要條件:

連線需求

若要透過 IKEv2 通道類型使用 strongSwan 用戶端和憑證驗證連線到 Azure,則每個連線的用戶端都需要下列項目:

  • 每個用戶端必須設定為使用 strongSwan。
  • 用戶端必須有本機安裝的正確憑證。

工作流程

本文的工作流程如下:

  1. 安裝 strongSwan。
  2. 檢視您產生的 VPN 用戶端設定檔組態檔案中包含的 VPN 用戶端設定檔組態檔案。
  3. 找出任何必要的用戶端憑證。
  4. 設定 strongSwan。
  5. 連線到 Azure。

關於憑證

為了進行憑證驗證,用戶端憑證必須安裝在每部用戶端電腦上。 您想使用的用戶端憑證必須使用私密金鑰匯出,而且必須包含認證路徑中的所有憑證。 此外,針對某些設定,您也需要安裝根憑證資訊。

如需 Linux 憑證的詳細資訊,請參閱下列文章:

安裝 strongSwan

指定命令時會使用下列設定:

  • 電腦:Ubuntu Server 18.04
  • 相依項目:strongSwan

使用下列命令來安裝所需的 strongSwan 組態:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

檢視 VPN 用戶端設定檔的組態檔

當您產生 VPN 用戶端設定檔組態套件時,VPN 用戶端的所有必要設定都會包含在 VPN 用戶端設定檔的設定 ZIP 檔案中。 VPN 用戶端設定檔組態檔案是針對虛擬網路的專用 P2S VPN 閘道設定。 如果在產生檔案之後,對 P2S VPN 設定進行任何變更,例如變更 VPN 通訊協定類型或驗證類型,您必須產生新的 VPN 用戶端設定檔的組態檔,並將新設定套用至您要連線的所有 VPN 用戶端。

找到您所產生並下載的 VPN 用戶端設定檔組態套件並加以解壓縮。 您可以在 Generic 資料夾中找到設定所需的所有資訊。 Azure 不提供此組態的 mobileconfig 檔案。

如果沒看到 Generic 資料夾,請檢查下列項目,然後再次產生 zip 檔案。

  • 檢查組態的通道類型。 可能未將 IKEv2 選取為通道類型。
  • 請在 VPN 閘道上確認並非基本 SKU。 VPN 閘道基本 SKU 不支援 IKEv2。 接著,再次選取 IKEv2 並產生 ZIP 檔案以擷取 Generic 資料夾。

Generic 資料夾包含下列檔案:

  • VpnSettings.xml,此檔案包含重要的設定,例如伺服器位址和通道類型。
  • VpnServerRoot.cer,此檔案包含所需的根憑證,以供您在 P2S 連線設定期間驗證 Azure VPN 閘道。

設定 VPN 用戶端

檢視 VPN 用戶端設定檔之後,繼續您要使用的步驟:

GUI 步驟

本節將逐步引導您使用 strongSwan GUI 進行設定。 以下指示依據 Ubuntu 18.0.4 建立而成。 Ubuntu 16.0.10 不支援 strongSwan GUI。 如果您想要使用 Ubuntu 16.0.10,就必須使用命令列。 視您的 Linux 和 strongSwan 版本而定,下列範例可能會與您看到的畫面不相符。

  1. 執行範例中的指令,以開啟終端機來安裝 strongSwan 和其網路管理員。

    sudo apt install network-manager-strongswan
    
  2. 選取 [設定值],然後選取 [網路]。 選取 + 按鈕,建立新連線。

    螢幕擷取畫面顯示網路連線頁面。

  3. 從選單選取 [IPsec/IKEv2 (strongSwan)],然後按兩下。

    螢幕擷取畫面顯示 [新增 VPN] 頁面。

  4. 在 [加入 VPN] 頁面上,新增 VPN 連線的名稱。

    螢幕擷取畫面顯示 [選擇連線類型]。

  5. 從所下載 VPN 用戶端設定檔組態檔中包含的 Generic 資料夾開啟 VpnSettings.xml 檔案。 尋找名為 VpnServer 的標籤,然後複製開頭為 'azuregateway',結尾為 '.cloudapp.net' 的名稱。

    螢幕擷取畫面顯示資料複製。

  6. 在 [通訊閘] 區段的新 VPN 連線中,在 [位址] 欄位中貼上名稱。 接下來,選取 [憑證] 欄位結尾處的資料夾圖示,接著瀏覽至 [Generic] 資料夾,然後選取 [VpnServerRoot] 檔案。

  7. 在連線的 [Client] \(用戶端\) 區段中,針對 [Authentication] \(驗證\),選取 [Certificate/private key] \(憑證/私密金鑰\)。 針對 [Certificate] \(憑證\) 和 [Private key] \(私密金鑰\),選擇稍早建立的憑證和私密金鑰。 在 [Options] \(選項\) 中,選取 [Request an inner IP address] \(要求內部 IP 位址\). 然後選取 [新增]

    螢幕擷取畫面顯示要求內部 IP 位址。

  8. 「開」啟連線。

    螢幕擷取畫面顯示複製。

CLI 步驟

本節將逐步引導您使用 strongSwan CLI 進行設定。

  1. 從 VPN 用戶端設定檔組態檔的 Generic 資料夾中,將 VpnServerRoot.cer 複製或移動到 /etc/ipsec.d/cacerts

  2. 將您產生的檔案分別複製或移動至 /etc/ipsec.d/certs/etc/ipsec.d/private/。 這些檔案是用戶端憑證和私密金鑰,必須位於對應的目錄中。 使用下列命令:

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. 執行下列命令以記下主機名稱。 您將在下一個步驟中使用此值。

    hostnamectl --static
    
  4. 開啟 VpnSettings.xml 檔案,複製 <VpnServer> 值。 您將在下一個步驟中使用此值。

  5. 調整下列範例中的值,然後將範例新增至 /etc/ipsec.conf 設定。

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. 將祕密值新增至 /etc/ipsec.secrets

    PEM 檔案的名稱必須符合您先前用來作為用戶端金鑰檔案的名稱。

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. 執行下列命令:

    sudo ipsec restart
    sudo ipsec up azure
    

下一步

如需更多步驟,請返回 P2S Azure 入口網站一文。