全部產品
Search
文件中心

VPN Gateway:通過AD認證實現用戶端與VPC建立SSL-VPN串連

更新時間:Jun 30, 2024

SSL-VPN的雙因子認證功能要求用戶端在通過SSL用戶端認證認證的基礎上,還要通過應用身份服務IDaaS(Identity as a Service)使用者名稱和密碼的認證,雙重認證均通過後才能成功建立SSL-VPN串連,該功能有效提高了SSL-VPN串連的安全性。在使用IDaaS認證時,支援綁定AD(Active Directory)伺服器,實現AD認證登入。本文將介紹如何使用SSL-VPN雙因子認證功能,使用戶端可以在經過AD認證後與Virtual Private Cloud(Virtual Private Cloud)執行個體建立SSL-VPN串連,進而訪問VPC執行個體下的資源。

情境樣本

本文以上圖情境為例。某公司在華東1(杭州)地區擁有一個VPC執行個體,VPC執行個體下使用Elastic Compute Service(Elastic Compute Service)產品部署了相關應用。因業務發展,出差員工需要使用用戶端遠端存取VPC執行個體下的資源。該公司擁有自己的AD(Active Directory)系統,為確保安全性,公司希望出差的員工可以在通過公司AD伺服器的身份認證後,再訪問VPC執行個體下的資源。

公司可以使用VPN網關產品的SSL-VPN功能,同時為SSL-VPN開啟雙因子認證,並設定IDaaS應用進行AD認證。在員工要與雲上建立SSL-VPN串連時,將會先經過SSL用戶端認證的認證,然後還會通過IDaaS EIAM執行個體進行AD認證,IDaaS EIAM執行個體會將員工的使用者名稱和密碼發送到公司的AD伺服器中去進行驗證,並返回驗證結果。只有在員工輸入的賬戶資訊驗證通過後,員工才能與雲上建立SSL-VPN串連,進而訪問VPC執行個體下的資源。

準備工作

  • 您已經在阿里雲華東1(杭州)地區建立了VPC執行個體,VPC執行個體中使用ECS部署了相關應用。具體操作,請參見搭建IPv4專用網路

    請確保您已經瞭解VPC中ECS執行個體所應用的安全性群組規則,並確保安全性群組規則允許用戶端訪問雲上資源。具體操作,請參見查詢安全性群組規則添加安全性群組規則

  • 請確保用戶端可以訪問互連網,用戶端的私網網段與VPC執行個體的私網網段沒有重疊。

  • 您已建立企業版的IDaaS EIAM執行個體。具體操作,請參見執行個體管理

    重要
  • 您已知AD伺服器的公網IP地址和服務連接埠。

    本文樣本中,AD系統部署在Windows Server 2022系統中,其公網IP地址為47.XX.XX.62,服務連接埠為389

  • 您已知AD伺服器的Base DN。

    本文樣本中,AD伺服器的Base DN為dc=zxtest,dc=com

  • 您已知AD伺服器管理員的DN、使用者名稱和密碼。

    本文樣本中,管理員賬戶名為Administrator,密碼為1****2。其DN為cn=Administrator,cn=Users,dc=zxtest,dc=com,如下圖所示。管理員DN

配置步驟

步驟一:綁定AD伺服器

為IDaaS EIAM執行個體綁定AD伺服器,將AD伺服器中的賬戶資訊同步至IDaaS EIAM執行個體中。具體操作,請參見綁定AD

本文在綁定AD伺服器時,除必填參數外,其餘配置均保持預設值。下圖為本文通過綁定AD伺服器同步至IDaaS EIAM執行個體的賬戶資訊。

2024-05-10_17-09-24

步驟二:添加阿里雲SSL-VPN應用

  1. 登入IDaaS管理主控台

  2. EIAM 雲身份服務頁面,找到在準備工作中建立的EIAM執行個體,然後在操作列單擊存取控制台

  3. 在EIAM執行個體的左側導覽列,選擇應用。在應用頁面,單擊添加應用

  4. 添加應用頁面,找到阿里雲 - SSL VPN模板,然後單擊添加應用

  5. 在添加應用對話方塊中,自訂應用的名稱,然後單擊立即添加

  6. 在應用詳情頁面的登入訪問頁簽,根據以下資訊進行配置,然後單擊頁簽底部的儲存

    單點登入配置保持開啟狀態。

    授權模式:預設為Cipher 模式身份提供方選擇已綁定的AD伺服器,系統將會使用AD伺服器對員工身份進行認證。

    授權範圍:使用預設值手動授權。該方式下,您需要手動為指定賬戶授權,允許這些賬戶訪問該應用。關於授權範圍的更多說明,請參見授權範圍

  7. 保持在登入訪問頁簽,然後單擊應用授權頁簽。

    為要建立SSL-VPN串連的員工賬戶添加授權。具體操作,請參見應用授權2024-05-10_17-06-10

步驟三:建立VPN網關執行個體

  1. 登入VPN網關管理主控台
  2. VPN網關頁面,單擊建立VPN網關

  3. VPN網關頁面,根據以下資訊配置VPN網關,然後單擊立即購買並完成支付。

    以下僅列舉本文強相關的配置,其餘配置項保持預設值或為空白。更多資訊,請參見建立和管理VPN網關執行個體

    配置項

    說明

    地區

    選擇VPN網關執行個體的地區。 本文選擇華東1(杭州)

    說明

    確保VPC執行個體的地區和VPN網關執行個體的地區相同。

    網關類型

    選擇待建立的VPN網關類型。本文選擇普通型

    網路類型

    選擇VPN網關執行個體的網路類型。本文選擇公網

    隧道

    系統直接展示當前地區支援的IPsec-VPN串連的隧道模式。

    專用網路

    選擇待串連的VPC執行個體。

    虛擬交換器1

    從VPC執行個體中選擇一個交換器執行個體。

    • IPsec-VPN串連的隧道模式為單隧道時,您僅需要指定一個交換器執行個體。

    • IPsec-VPN串連的隧道模式為雙隧道時,您需要指定兩個交換器執行個體。

      IPsec-VPN功能開啟後,系統會在兩個交換器執行個體下各建立一個彈性網卡ENI(Elastic Network Interfaces),作為使用IPsec-VPN串連與VPC流量互連的介面。每個ENI會佔用交換器下的一個IP地址。

    說明
    • 系統預設幫您選擇第一個交換器執行個體,您可以手動修改或者直接使用預設的交換器執行個體。

    • 建立VPN網關執行個體後,不支援修改VPN網關執行個體關聯的交換器執行個體,您可以在VPN網關執行個體的詳情頁面查看VPN網關執行個體關聯的交換器、交換器所屬可用性區域以及交換器下ENI的資訊。

    虛擬交換器2

    從VPC執行個體中選擇第二個交換器執行個體。

    • 您需要從VPN網關執行個體關聯的VPC執行個體下指定兩個分布在不同可用性區域的交換器執行個體,以實現IPsec-VPN串連可用性區域層級的容災。

    • 對於僅支援一個可用性區域的地區 ,不支援可用性區域層級的容災,建議您在該可用性區域下指定兩個不同的交換器執行個體以實現IPsec-VPN串連的高可用,支援選擇和第一個相同的交換器執行個體。

    說明

    如果VPC執行個體下沒有第二個交換器執行個體,您可以建立交換器執行個體。具體操作,請參見建立和管理交換器

    IPsec-VPN

    是否開啟IPsec-VPN功能。本文選擇關閉

    SSL-VPN

    是否開啟SSL-VPN功能。本文選擇開啟

    SSL串連數

    選擇需要串連的用戶端的數量。

    說明

    開啟SSL-VPN功能後才可配置SSL串連數

  4. 返回VPN網關頁面,查看建立的VPN網關執行個體。

    剛建立好的VPN網關執行個體的狀態是準備中,約1~5分鐘會變成正常狀態。正常狀態就表明VPN網關執行個體已完成初始化,可以正常使用。

步驟四:建立SSL服務端

  1. 在左側導覽列,選擇網間互聯 > VPN > SSL服務端

  2. 在頂部功能表列,選擇SSL服務端的地區。

    說明

    請確保SSL服務端的地區和已建立的VPN網關執行個體的地區相同。

  3. SSL服務端頁面,單擊建立SSL服務端

  4. 建立SSL服務端面板,根據以下資訊配置SSL服務端,然後單擊確定

    以下僅列舉本文強相關的配置,其餘配置項保持預設值或為空白。更多資訊,請參見建立和管理SSL服務端

    配置項

    說明

    VPN網關

    選擇已建立的VPN網關執行個體。

    本端網段

    以CIDR地址塊的形式輸入要訪問的VPC執行個體的網段。本文輸入192.168.0.0/16。

    用戶端網段

    以CIDR地址塊的形式輸入用戶端訪問VPC執行個體時使用的網段。本文輸入10.0.0.0/24。

    重要
    • 用戶端網段的子網路遮罩位元在16至29位之間。

    • 請確保用戶端網段和本端網段不衝突。

    • 在指定用戶端網段時,建議您使用10.0.0.0/8、172.16.0.0/12和192.168.0.0/16網段及其子網網段。如果您的用戶端網段需要指定為公網網段,您需要將公網網段設定為VPC的使用者網段,以確保VPC可以訪問到該公網網段。關於使用者網段的更多資訊,請參見什麼是使用者網段?如何配置使用者網段?

    • 建立SSL服務端後,系統後台會自動將用戶端網段的路由添加在VPC執行個體的路由表中,請勿再手動將用戶端網段的路由添加到VPC執行個體的路由表,否則會導致SSL-VPN串連流量傳輸異常。

    進階配置

    開啟雙因子認證功能,本文使用EIAM 2.0。其餘配置保持預設值。

    • IDaaS執行個體所在地區:選擇華東1(杭州)

    • IDaaS執行個體:選擇在準備工作中建立的EIAM執行個體。

    • IDaaS應用:選擇已添加的阿里雲SSL-VPN應用。

步驟五:建立SSL用戶端

  1. 在左側導覽列,選擇網間互聯 > VPN > SSL客戶端

  2. SSL客戶端頁面,單擊建立SSL客戶端

  3. 建立SSL客戶端面板,輸入SSL用戶端的名稱,選擇對應的SSL服務端,然後單擊確定

  4. SSL客戶端頁面,找到已建立的SSL用戶端,然後在操作列單擊下載認證

    將下載的SSL用戶端認證儲存在您的本地,後續用於配置用戶端。

步驟六:配置用戶端

配置Linux用戶端

  1. 開啟命令列視窗。

  2. 執行以下命令安裝OpenVPN用戶端。

    #CentOS系統執行以下命令
    yum install -y openvpn
    #執行以下命令查看系統是否已建立/etc/openvpn/conf/目錄,如果系統未建立,需手動建立/etc/openvpn/conf/目錄。
    cd /etc/openvpn #進入openvpn目錄下
    ls              #查看openvpn目錄下是否已建立conf目錄
    mkdir -p /etc/openvpn/conf #如果openvpn目錄下不存在conf目錄,手動建立conf目錄。
    
    #Ubuntu系統執行以下命令
    apt-get update
    apt-get install -y openvpn
    #執行以下命令查看系統是否已建立/etc/openvpn/conf/目錄,如果系統未建立,需手動建立/etc/openvpn/conf/目錄。
    cd /etc/openvpn #進入openvpn目錄下
    ls              #查看openvpn目錄下是否已建立conf目錄
    mkdir -p /etc/openvpn/conf #如果openvpn目錄下不存在conf目錄,手動建立conf目錄。
  3. 將已下載的SSL用戶端認證解壓拷貝至/etc/openvpn/conf/目錄。

  4. 進入/etc/openvpn/conf/目錄,執行以下命令,然後輸入使用者名稱和密碼。用戶端通過AD認證後,將會和雲上建立SSL-VPN串連。

    openvpn --config /etc/openvpn/conf/config.ovpn --daemon

    2024-05-11_10-47-04

配置Windows用戶端

  1. 下載並安裝OpenVPN用戶端(Windows版本)

  2. 將已經下載的SSL用戶端認證解壓拷貝至OpenVPN\config目錄。

    本文將認證解壓拷貝到C:\Program Files\OpenVPN\config目錄,請您根據安裝路徑將認證解壓拷貝至您真實的目錄。

  3. 啟動OpenVPN用戶端,單擊Connect,然後輸入使用者名稱和密碼。用戶端通過AD認證後,將會和雲上建立SSL-VPN串連。

    2024-05-11_10-56-59

配置Mac用戶端(OpenVPN)

  1. 開啟命令列視窗。

  2. 如果您的用戶端尚未安裝homebrew,執行以下命令安裝homebrew。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. 執行以下命令安裝OpenVPN用戶端。

    brew install openvpn
  4. 將已下載的SSL用戶端認證解壓拷貝至配置目錄。

    1. 備份/usr/local/etc/openvpn檔案夾下的所有設定檔。

      重要

      不同版本的macOS系統OpenVPN預設的安裝路徑可能不同,請以您實際的安裝路徑為準。在執行本操作及後續操作時,請將相關路徑替換為您實際的安裝路徑。

    2. 執行以下命令刪除OpenVPN的設定檔。

      rm /usr/local/etc/openvpn/*
    3. 執行以下命令將已經下載的SSL用戶端認證拷貝到配置目錄。

      cp cert_location /usr/local/etc/openvpn/

      cert_location是下載的SSL用戶端認證的路徑,例如:/Users/example/Downloads/certs6.zip

  5. 執行以下命令解壓認證。

    cd  /usr/local/etc/openvpn/
    unzip /usr/local/etc/openvpn/certs6.zip
  6. 進入/usr/local/etc/openvpn/目錄下,執行以下命令,然後輸入使用者名稱和密碼,建立SSL-VPN串連。

    sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn

步驟七:測試連通性

完成上述步驟後,用戶端已經可以遠端存取VPC執行個體下的資源。以下內容以Linux用戶端為例介紹如何測試用戶端和VPC執行個體間的連通性。

  1. 開啟用戶端的命令列視窗。

  2. 執行ping命令,嘗試訪問VPC下的ECS1執行個體,驗證通訊是否正常。

    ping <ECS1執行個體的IP地址>

    收到如下所示的回複報文,則證明用戶端可以正常訪問VPC執行個體下的資源。

    2024-05-09_17-05-07

IDaaS EIAM 1.0配置說明

如果您需要使用IDaaS EIAM 1.0執行個體,請按照以下步驟進行操作。您需要開啟LDAP認證,在建立SSL服務端時,需綁定EIAM 1.0執行個體,其餘步驟與上文相同,此處不再描述。

配置步驟

開啟LDAP認證

在您建立SSL-VPN串連前,您需要在IDaaS EIAM 1.0執行個體中開啟LDAP認證功能並同步賬戶資料,用於後續的身分識別驗證。

  1. 添加LDAP認證源。

    1. 登入IDaaS管理主控台

    2. EIAM雲身份服務頁面,單擊舊版頁簽,找到目標執行個體ID。

    3. 在左側導覽列,單擊認證源

    4. 認證源頁面的右上方,單擊添加認證源

    5. 添加認證源頁面,找到LDAP表徵圖LDAP表徵圖,在操作列單擊添加認證源

    6. 添加認證源(LDAP)面板,配置LDAP伺服器(即本文的AD伺服器)資訊,然後單擊提交

      • 認證源ID:由系統自動產生。

      • 認證源名稱:輸入自訂名稱。

      • LDAP URL:LDAP伺服器串連地址,LDAP伺服器即指您部署AD系統的伺服器。地址填寫格式例如:ldap://127.0.0.1:389/。本文輸入ldap://47.XX.XX.62:389/

        若主機的IP地址為IPv6地址格式,則地址需放在中括弧([])內,例如:ldap://[0000:0000:0000:0000:0000:0000:0001]:389/

        說明

        IDaaS目前只支援公網訪問,LDAP伺服器需要提供公網地址,並開啟389連接埠。您可以在您LDAP伺服器的安全性群組策略中設定只允許IDaaS的公網IP可以訪問LDAP伺服器,關於IDaaS公網IP地址資訊,請提交工單至阿里雲IDaaS團隊諮詢。

      • LDAP Base:LDAP伺服器Base DN。本文輸入dc=zxtest,dc=com

      • LDAP賬戶:LDAP伺服器管理賬戶DN。本文輸入cn=Administrator,cn=Users,dc=zxtest,dc=com

      • LDAP賬戶密碼:LDAP伺服器管理賬戶密碼。

      • 過濾條件:查詢使用者名稱的過濾條件。本文輸入(sAMAccountName=$username$)

        具體匹配規則,請參見LDAP官方文檔LDAP Filters。其中$username$為IDaaS系統使用者名稱參數,為固定值。

    7. 認證源頁面,找到目標認證源,在其狀態列單擊啟用表徵圖,然後在彈出的對話方塊中,單擊確定,開啟LDAP認證源。

  2. LDAP賬戶同步配置,將LDAP伺服器中的賬戶資料匯入到IDaaS系統中。

    1. 在左側導覽列,單擊機構及組

    2. 機構及組頁面的右上方,單擊配置LDAP。在LDAP配置面板,單擊建立配置

    3. LDAP配置面板的伺服器連結頁簽下,配置以下資訊,然後單擊儲存

      • AD/LDAP名稱:輸入自訂名稱。

      • 伺服器位址:輸入您LDAP伺服器的公網IP地址。本文輸入47.XX.XX.62

      • 連接埠號碼:輸入您LDAP伺服器提供服務的連接埠號碼。本文輸入389

      • Base DN:輸入要同步賬戶的節點DN。本文輸入dc=zxtest,dc=com

        說明

        此項在添加完成後不可更改,因為在IDaaS系統與LDAP(或AD)伺服器進行同步資料時,如果Base DN發生改變會使雙方組織機構目錄無法對應而導致資料同步失敗,想要同步不同目錄的資料建議添加多個LDAP配置來完成。

      • 管理員DN:請輸入管理員賬戶DN。本文輸入cn=Administrator,cn=Users,dc=zxtest,dc=com

      • 密碼:輸入管理員賬戶的密碼。

      • 類型選擇:選擇您LDAP伺服器的類型。本文選擇Windows AD

      • 所屬OU節點:賬戶資料匯入IDaaS系統中組織機構的節點位置,若不選擇,則匯入到根OU下。本文保持預設值。

      • LDAP同步至本系統:啟用該項後,可以手動從LDAP伺服器同步資料到IDaaS系統。本文選擇啟用

      • 本系統同步至LDAP:啟用該項後,可以從IDaaS系統同步資料到LDAP伺服器。本文選擇啟用

      在您完成上述配置後,您可以單擊測試連接來測試伺服器的連通性。如果測試失敗,請檢查網路連通性,以及配置的串連參數是否正確。

    4. LDAP配置面板的欄位匹配規則頁簽下,配置以下資訊,然後單擊儲存

      欄位匹配規則為IDaaS系統的欄位與LDAP伺服器中屬性的對應匹配規則,例如LDAP伺服器中的cn欄位對應為IDaaS系統中的使用者名稱。

      • 使用者名稱:本文輸入cn

        說明

        如果您AD系統中的賬戶的cn欄位值為中文,則該賬戶無法拉取到IDaaS系統。建議您使用sAMAccountName欄位。

      • 外部ID:Windows AD為objectGUID, OpenLdap為uid。本文輸入objectGUID

      • 密碼屬性:Windows AD為unicodePwd, OpenLdap為userPassword。本文輸入unicodePwd

      • 使用者唯一標識:Windows AD為DistinguishedName, OpenLdap為EntryDN。本文輸入DistinguishedName

      • 郵箱:本文輸入mail

    5. 機構及組頁面,選擇匯入 > LDAP > 組織圖

    6. LDAP列表面板,找到目標LDAP,單擊匯入,在彈出的對話方塊中,單擊確定。在組織機構臨時資料面板確認組織機構資訊,單擊確定匯入

    7. 在當前頁面的組織架構地區,選擇目標組織機構,在組織機構的詳情地區,選擇匯入 > LDAP > 賬戶

    8. LDAP列表面板,找到目標LDAP,單擊匯入,在彈出的對話方塊中,單擊確定。在賬戶臨時資料LDAP列表面板中確認賬戶資訊,單擊確定匯入,然後為匯入的賬戶設定預設密碼,實現LDAP伺服器賬戶資訊同步到IDaaS系統。

      重要

      用戶端後續登入時,需要使用AD伺服器中的密碼進行登入。此處設定的是IDaaS執行個體中的密碼。

  3. 開啟雲產品LDAP認證。

    1. 在左側導覽列,選擇設定 > 安全設定

    2. 安全設定頁面,單擊雲產品AD認證頁簽。

    3. 選擇剛剛建立的LDAP認證源,啟用該功能並單擊儲存設定

      認證源