設定點對站 VPN 用戶端:憑證驗證 - Linux

本文可協助您使用來自Linux用戶端的 VPN 閘道點對站 (P2S) 和憑證驗證,連線到 Azure 虛擬網路 (VNet)。 根據您為 P2S 組態選取的通道類型、作業系統,以及用來連線的 VPN 用戶端,本文中有多個步驟集。

開始之前

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

驗證 通道類型 產生設定檔 設定 VPN 用戶端
Azure 憑證 IKEv2, SSTP Windows 原生 VPN 用戶端
Azure 憑證 OpenVPN Windows - OpenVPN 用戶端
- Azure VPN 用戶端
Azure 憑證 IKEv2、OpenVPN macOS-iOS macOS-iOS
Azure 憑證 IKEv2、OpenVPN Linux Linux
Microsoft Entra ID OpenVPN (SSL) Windows Windows
Microsoft Entra ID OpenVPN (SSL) macOS macOS
RADIUS - 憑證 - 發行項 發行項
RADIUS - 密碼 - 發行項 發行項
RADIUS - 其他方法 - 發行項 發行項

重要

從 2018 年 7 月 1 日起,對 TLS 1.0 和 1.1 的支援將會從 Azure VPN 閘道移除。 VPN 閘道僅支援 TLS 1.2。 只有點對站連線會受到影響;站對站連線不受影響。 如果您針對 Windows 10 或更新版本用戶端上的點對站 VPN 使用 TLS,則不必採取任何動作。 如果您針對 Windows 7 和 Windows 8 用戶端上的點對站連線使用 TLS,請參閱 VPN 閘道常見問題集以取得更新指示。

產生憑證

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

如需使用憑證的相關資訊,請參閱點對站:產生憑證

產生 VPN 用戶端設定檔

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

若要使用 Azure 入口網站 產生組態檔:

  1. 在 Azure 入口網站中,移至您想要連線之虛擬網路的虛擬網路閘道。

  2. 在虛擬網路閘道頁面上,選取 [點對站設定],開啟點對站設定頁面。

  3. 在 [點對站設定] 頁面頂端,選取 [下載 VPN 用戶端]。 這不會下載 VPN 用戶端軟體,這會產生用來設定 VPN 用戶端的設定套件。 產生用戶端組態套件需耗費幾分鐘的時間。 在此期間,在封包產生之前,您可能不會看到任何指示。

    點對站組態頁面的螢幕快照。

  4. 產生組態套件之後,您的瀏覽器會指出用戶端組態 zip 檔案可供使用。 其名稱與您的閘道名稱相同。

  5. 解壓縮檔案以檢視資料夾。 您將使用這些檔案的一些或全部來設定 VPN 用戶端。 產生的檔案會對應至您在 P2S 伺服器上設定的驗證和通道類型設定。

接下來,設定 VPN 用戶端。 從下列指示中選取:

IKEv2 - strongSwan 步驟

安裝 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

安裝憑證

使用 Azure 憑證驗證類型時,需要客戶端憑證才能進行驗證。 用戶端憑證必須安裝在每部用戶端計算機上。 導出的客戶端憑證必須使用私鑰導出,而且必須包含認證路徑中的所有憑證。 請確定用戶端計算機已安裝適當的用戶端憑證,再繼續進行下一節。

如需用戶端憑證的相關信息,請參閱 產生憑證 - Linux

檢視 VPN 用戶端設定檔檔案

移至下載的 VPN 用戶端設定檔組態檔。 您可以在 Generic 資料夾中找到設定所需的所有資訊。 Azure 不提供 此組態的 mobileconfig 檔案。

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

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

Generic 資料夾包含下列檔案:

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

檢視檔案之後,請繼續進行您想要使用的步驟:

strongSwan GUI 步驟

本節會逐步引導您使用 strongSwan GUI 完成設定。 下列指示是在Ubuntu18.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 用戶端設定檔組態檔中包含的泛型資料夾開啟 Vpn 設定.xml 檔案。 尋找名為 VpnServer 的標籤並複製名稱,開頭為 'azuregateway',並以 '.cloudapp.net' 結尾。

    顯示複製資料的螢幕快照。

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

  7. 在連線的 [ 用戶端 ] 區段中,針對 [驗證],選取 [ 憑證/私鑰]。 針對 [憑證 ] 和 [私鑰],選擇稍早建立的憑證和私鑰。 在 [選項] 中,選取 [要求內部 IP 位址]。 然後選取 [新增]

    顯示要求內部IP位址的螢幕快照。

  8. 開啟連線

    顯示複製的螢幕快照。

strongSwan CLI 步驟

本節會逐步引導您使用 strongSwan CLI 完成設定。

  1. 從 VPN 用戶端配置檔 [一般 ] 資料夾,複製或移動 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. 開啟 Vpn 設定.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
    

OpenVPN 步驟

本節可協助您設定 Linux 用戶端,以進行使用 OpenVPN 通道類型的憑證驗證。 若要連線到 Azure,請下載 OpenVPN 用戶端並設定連線配置檔。

注意

尚不支援 OpenVPN 用戶端 2.6 版。

  1. 開啟新的終端機會話。 您可以同時按 『Ctrl + Alt + t' 來開啟新的工作階段。

  2. 輸入下列命令以安裝所需的元件:

    sudo apt-get install openvpn
    sudo apt-get -y install network-manager-openvpn
    sudo service network-manager restart
    
  3. 接下來,移至 [VPN 用戶端配置檔] 資料夾,然後解壓縮以檢視檔案。

  4. 匯出您在閘道上建立並上傳至 P2S 設定的 P2S 用戶端憑證。 如需步驟,請參閱 VPN 閘道 點對站

  5. 從 .pfx 擷取私鑰和base64指紋。 有多種方式可以執行這項操作。 其中一種方式是在電腦上使用 OpenSSL。

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    

    profileinfo.txt檔案將包含私鑰和 CA 的指紋,以及客戶端憑證。 請務必使用用戶端憑證的指紋。

  6. 在文字編輯器中開啟 profileinfo.txt 。 若要取得用戶端 (child) 憑證的指紋,請選取子憑證的 “-----BEGIN CERTIFICATE-----” 和 “-----END CERTIFICATE-----” 之間的文字並加以複製。 您可以查看 subject=/ 行來識別子憑證。

  7. 開啟 vpnconfig.ovpn 檔案,並尋找如下所示的區段。 取代 「cert」 和 「cert」 之間的所有專案。

    # P2S client certificate
    # please fill this field with a PEM formatted cert
    <cert>
    $CLIENTCERTIFICATE
    </cert>
    
  8. 在文字編輯器中開啟profileinfo.txt。 若要取得私鑰,請選取 「-----BEGIN PRIVATE KEY-----」 和 「-----END PRIVATE KEY-----」 之間的文字並加以複製。

  9. 在文本編輯器中開啟 vpnconfig.ovpn 檔案,並尋找本節。 貼上私鑰,取代 “key” 與 “/key” 之間的一切。

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  10. 請勿變更任何其他欄位。 使用用戶端輸入中填入的設定來連線至 VPN。

    • 若要使用命令行連線,請輸入下列命令:

      sudo openvpn --config <name and path of your VPN profile file>&
      
    • 若要使用命令列中斷連線,請輸入下列命令:

      sudo pkill openvpn
      
    • 若要使用 GUI 進行連線,請移至系統設定。

  11. 選取 + 以新增 VPN 連線。

  12. 在 [新增 VPN] 底下,選取 [從檔案匯入...]。

  13. 流覽至配置檔案,然後按兩下或挑選 [開啟]。

  14. 選取 [新增 VPN] 視窗上的 [新增]。

    顯示 [新增 VPN] 頁面上 [從檔案匯入] 的螢幕快照。

  15. 您可以在 [網络 設定] 頁面上開啟 VPN或在系統匣中的網路圖示下開啟來連線。

下一步

如需其他步驟,請回到您正在處理的原始點對站文章。