SSL-VPN的雙因子認證功能要求用戶端在通過SSL用戶端認證認證的基礎上,還要通過應用身份服務IDaaS(Identity as a Service)使用者名稱和密碼的認證,雙重認證均通過後才能成功建立SSL-VPN串連,該功能有效提高了SSL-VPN串連的安全性。本文將介紹如何使用SSL-VPN雙因子認證功能,使用戶端可以在經過雙步驟驗證後與Virtual Private Cloud (VPC)執行個體建立SSL-VPN串連,進而訪問VPC執行個體下的資源。
情境樣本
本文以上圖情境為例。某公司使用IDaaS產品管理、維護公司員工帳號及許可權。當前該公司在阿里雲華東1(杭州)地區擁有一個VPC執行個體,VPC執行個體下使用Elastic Compute Service (ECS)產品部署了相關應用,該公司希望出差的員工可以隨時訪問VPC執行個體下的資源,同時要確保員工經過身份認證。
公司可以使用VPN網關產品的SSL-VPN功能,同時為SSL-VPN開啟雙因子認證,使用戶端經過SSL用戶端認證認證和IDaaS使用者名稱及密碼認證後,再與VPC執行個體建立SSL-VPN串連,實現用戶端安全訪問VPC執行個體下的資源。
準備工作
您已建立企業版的IDaaS EIAM執行個體。具體操作,請參見執行個體管理。
重要IDaaS EIAM 1.0執行個體不再支援新購,推薦您使用IDaaS EIAM 2.0執行個體。本文將以IDaaS EIAM 2.0為例進行說明,更多資訊,請參見【變更公告】SSL-VPN雙因子認證支援IDaaS EIAM 2.0。
如何使用IDaaS EIAM 1.0執行個體,請參見IDaaS EIAM 1.0配置說明。
您已經在EIAM執行個體中建立了組織和賬戶。
本文通過手動方式在EIAM執行個體中建立了組織與賬戶,下圖為本文組織和賬戶樣本。如果您希望通過LDAP協議自動同步賬戶資訊至EIAM執行個體,實現員工通過AD/LDAP認證登入應用,請參見通過AD認證實現用戶端與VPC建立SSL-VPN串連。更多賬戶同步方式,請參見建立賬戶/組織。
您已經在阿里雲華東1(杭州)地區建立了VPC,VPC中使用ECS部署了相關應用。具體操作,請參見搭建IPv4專用網路。
請確保您已經瞭解VPC中ECS執行個體所應用的安全性群組規則,並確保安全性群組規則允許用戶端訪問雲上資源。具體操作,請參見查詢安全性群組規則和添加安全性群組規則。
請確保用戶端可以訪問互連網,用戶端的私網網段與VPC執行個體的私網網段沒有重疊。
配置流程
步驟一:添加阿里雲SSL-VPN應用
登入IDaaS管理主控台。
在EIAM 雲身份服務頁面,找到在準備工作中建立的EIAM執行個體,然後在操作列單擊存取控制台。
在EIAM執行個體的左側導覽列,選擇應用。在應用頁面,單擊添加應用。
在添加應用頁面,找到阿里雲 - SSL VPN模板,然後單擊添加應用。
在添加應用對話方塊中,自訂應用的名稱,然後單擊立即添加。
在應用詳情頁面的登入訪問頁簽,單擊頁簽底部的儲存,儲存預設配置。
單點登入配置:保持開啟狀態。
授權模式:預設為Cipher 模式。身份提供方預設為IDaaS帳號,系統將會使用您在EIAM執行個體中手動建立的賬戶資訊對員工身份進行認證。
授權範圍:預設為手動授權。該方式下,您需要手動為指定賬戶授權,允許這些賬戶訪問該應用。關於授權範圍的更多說明,請參見授權範圍。
保持在登入訪問頁簽,然後單擊應用授權頁簽。
為要建立SSL-VPN串連的員工賬戶添加授權。具體操作,請參見應用授權。
步驟二:建立VPN網關執行個體
- 登入VPN網關管理主控台。
在VPN網關頁面,單擊建立VPN網關。
在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串連數。
返回VPN網關頁面,查看建立的VPN網關執行個體。
剛建立好的VPN網關執行個體的狀態是準備中,約1~5分鐘會變成正常狀態。正常狀態就表明VPN網關執行個體已完成初始化,可以正常使用。
步驟三:建立SSL服務端
在左側導覽列,選擇 。
在頂部功能表列,選擇SSL服務端的地區。
說明請確保SSL服務端的地區和已建立的VPN網關執行個體的地區相同。
在SSL服務端頁面,單擊建立SSL服務端。
在建立SSL服務端面板,根據以下資訊配置SSL服務端,然後單擊確定。
以下僅列舉本文強相關的配置,其餘配置項保持預設值或為空白。更多資訊,請參見建立和管理SSL服務端。
配置項
說明
VPN網關
選擇已建立的VPN網關執行個體。
本端網段
以CIDR地址塊的形式輸入要訪問的VPC執行個體的網段。本文輸入192.168.0.0/16。
用戶端網段
以CIDR地址塊的形式輸入用戶端訪問VPC執行個體時使用的網段。本文輸入10.0.0.0/24。
重要用戶端網段的子網路遮罩位元在16至29位之間。
請確保用戶端網段與本端網段、VPC網段以及與用戶端終端關聯的任何路由網段均沒有重疊。
在指定用戶端網段時,建議您使用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服務端時,推薦您綁定新加坡地區的IDaaS EIAM 2.0執行個體,以減少跨地區時延。
步驟四:建立SSL用戶端認證
在左側導覽列,選擇 。
在SSL客戶端頁面,單擊建立SSL客戶端。
在建立SSL客戶端面板,輸入SSL用戶端的名稱,選擇對應的SSL服務端,然後單擊確定。
在SSL客戶端頁面,找到已建立的SSL用戶端,然後在操作列單擊下載認證。
將下載的SSL用戶端認證儲存在您的本地,後續用於配置用戶端。
步驟五:配置用戶端
配置Linux用戶端
開啟命令列視窗。
執行以下命令安裝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目錄。
將已下載的SSL用戶端認證解壓拷貝至/etc/openvpn/conf/目錄。
進入/etc/openvpn/conf/目錄,執行以下命令,然後輸入使用者名稱和密碼。用戶端通過IDaaS認證後,將會和雲上建立SSL-VPN串連。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon
配置Windows用戶端
下載並安裝OpenVPN用戶端(Windows版本)。
將已經下載的SSL用戶端認證解壓拷貝至OpenVPN\config目錄。
本文將認證解壓拷貝到C:\Program Files\OpenVPN\config目錄,請您根據安裝路徑將認證解壓拷貝至您真實的目錄。
啟動OpenVPN用戶端,單擊Connect,然後輸入使用者名稱和密碼。用戶端通過IDaaS認證後,將會和雲上建立SSL-VPN串連。
配置Mac用戶端(OpenVPN)
開啟命令列視窗。
如果您的用戶端尚未安裝homebrew,執行以下命令安裝homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
執行以下命令安裝OpenVPN用戶端。
brew install openvpn
將已下載的SSL用戶端認證解壓拷貝至配置目錄。
備份/usr/local/etc/openvpn檔案夾下的所有設定檔。
重要不同版本的macOS系統OpenVPN預設的安裝路徑可能不同,請以您實際的安裝路徑為準。在執行本操作及後續操作時,請將相關路徑替換為您實際的安裝路徑。
執行以下命令刪除OpenVPN的設定檔。
rm /usr/local/etc/openvpn/*
執行以下命令將已經下載的SSL用戶端認證拷貝到配置目錄。
cp cert_location /usr/local/etc/openvpn/
cert_location
是下載的SSL用戶端認證的路徑,例如:/Users/example/Downloads/certs6.zip。
執行以下命令解壓認證。
cd /usr/local/etc/openvpn/ unzip /usr/local/etc/openvpn/certs6.zip
進入/usr/local/etc/openvpn/目錄下,執行以下命令,然後輸入使用者名稱和密碼,建立SSL-VPN串連。
sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
步驟六:測試連通性
完成上述步驟後,用戶端已經可以遠端存取VPC執行個體下的資源。以下內容以Linux用戶端為例介紹如何測試用戶端和VPC執行個體間的連通性。
開啟用戶端的命令列視窗。
執行
ping
命令,嘗試訪問VPC下的ECS1執行個體,驗證通訊是否正常。ping <ECS1執行個體的IP地址>
收到如下所示的回複報文,則證明用戶端可以正常訪問VPC執行個體下的資源。
IDaaS EIAM 1.0配置說明
如果您需要使用IDaaS EIAM 1.0執行個體,無需執行添加阿里雲SSL-VPN應用的步驟,在您建立SSL服務端時,直接綁定EIAM1.0執行個體即可,其餘步驟與上文相同。