通過IDaaS認(rèn)證實(shí)現(xiàn)客戶端與VPC建立SSL-VPN連接
SSL-VPN的雙因子認(rèn)證功能要求客戶端在通過SSL客戶端證書認(rèn)證的基礎(chǔ)上,還要通過應(yīng)用身份服務(wù)IDaaS(Identity as a Service)用戶名和密碼的認(rèn)證,雙重認(rèn)證均通過后才能成功建立SSL-VPN連接,該功能有效提高了SSL-VPN連接的安全性。本文將介紹如何使用SSL-VPN雙因子認(rèn)證功能,使客戶端可以在經(jīng)過雙重驗(yàn)證后與專有網(wǎng)絡(luò) VPC(Virtual Private Cloud)實(shí)例建立SSL-VPN連接,進(jìn)而訪問VPC實(shí)例下的資源。
場(chǎng)景示例
本文以上圖場(chǎng)景為例。某公司使用IDaaS產(chǎn)品管理、維護(hù)公司員工賬號(hào)及權(quán)限。當(dāng)前該公司在阿里云華東1(杭州)地域擁有一個(gè)VPC實(shí)例,VPC實(shí)例下使用云服務(wù)器 ECS(Elastic Compute Service)產(chǎn)品部署了相關(guān)應(yīng)用,該公司希望出差的員工可以隨時(shí)訪問VPC實(shí)例下的資源,同時(shí)要確保員工經(jīng)過身份認(rèn)證。
公司可以使用VPN網(wǎng)關(guān)產(chǎn)品的SSL-VPN功能,同時(shí)為SSL-VPN開啟雙因子認(rèn)證,使客戶端經(jīng)過SSL客戶端證書認(rèn)證和IDaaS用戶名及密碼認(rèn)證后,再與VPC實(shí)例建立SSL-VPN連接,實(shí)現(xiàn)客戶端安全訪問VPC實(shí)例下的資源。
準(zhǔn)備工作
您已創(chuàng)建企業(yè)版的IDaaS EIAM實(shí)例。具體操作,請(qǐng)參見實(shí)例管理。
重要IDaaS EIAM 1.0實(shí)例不再支持新購,推薦您使用IDaaS EIAM 2.0實(shí)例。本文將以IDaaS EIAM 2.0為例進(jìn)行說明,更多信息,請(qǐng)參見【變更公告】SSL-VPN雙因子認(rèn)證支持IDaaS EIAM 2.0。
如何使用IDaaS EIAM 1.0實(shí)例,請(qǐng)參見IDaaS EIAM 1.0配置說明。
您已經(jīng)在EIAM實(shí)例中創(chuàng)建了組織和賬戶。
本文通過手動(dòng)方式在EIAM實(shí)例中創(chuàng)建了組織與賬戶,下圖為本文組織和賬戶示例。如果您希望通過LDAP協(xié)議自動(dòng)同步賬戶信息至EIAM實(shí)例,實(shí)現(xiàn)員工通過AD/LDAP認(rèn)證登錄應(yīng)用,請(qǐng)參見通過AD認(rèn)證實(shí)現(xiàn)客戶端與VPC建立SSL-VPN連接。更多賬戶同步方式,請(qǐng)參見創(chuàng)建賬戶/組織。
您已經(jīng)在阿里云華東1(杭州)地域創(chuàng)建了VPC,VPC中使用ECS部署了相關(guān)應(yīng)用。具體操作,請(qǐng)參見搭建IPv4專有網(wǎng)絡(luò)。
請(qǐng)確保您已經(jīng)了解VPC中ECS實(shí)例所應(yīng)用的安全組規(guī)則,并確保安全組規(guī)則允許客戶端訪問云上資源。具體操作,請(qǐng)參見查詢安全組規(guī)則和添加安全組規(guī)則。
請(qǐng)確保客戶端可以訪問互聯(lián)網(wǎng),客戶端的私網(wǎng)網(wǎng)段與VPC實(shí)例的私網(wǎng)網(wǎng)段沒有重疊。
配置流程
步驟一:添加阿里云SSL-VPN應(yīng)用
在EIAM 云身份服務(wù)頁面,找到在準(zhǔn)備工作中創(chuàng)建的EIAM實(shí)例,然后在操作列單擊訪問控制臺(tái)。
在EIAM實(shí)例的左側(cè)導(dǎo)航欄,選擇應(yīng)用。在應(yīng)用頁面,單擊添加應(yīng)用。
在添加應(yīng)用頁面,找到阿里云 - SSL VPN模板,然后單擊添加應(yīng)用。
在添加應(yīng)用對(duì)話框中,自定義應(yīng)用的名稱,然后單擊立即添加。
在應(yīng)用詳情頁面的登錄訪問頁簽,單擊頁簽底部的保存,保存默認(rèn)配置。
單點(diǎn)登錄配置:保持開啟狀態(tài)。
授權(quán)模式:默認(rèn)為密碼模式。身份提供方默認(rèn)為IDaaS賬號(hào),系統(tǒng)將會(huì)使用您在EIAM實(shí)例中手動(dòng)創(chuàng)建的賬戶信息對(duì)員工身份進(jìn)行認(rèn)證。
授權(quán)范圍:默認(rèn)為手動(dòng)授權(quán)。該方式下,您需要手動(dòng)為指定賬戶授權(quán),允許這些賬戶訪問該應(yīng)用。關(guān)于授權(quán)范圍的更多說明,請(qǐng)參見授權(quán)范圍。
保持在登錄訪問頁簽,然后單擊應(yīng)用授權(quán)頁簽。
為要建立SSL-VPN連接的員工賬戶添加授權(quán)。具體操作,請(qǐng)參見應(yīng)用授權(quán)。
步驟二:創(chuàng)建VPN網(wǎng)關(guān)實(shí)例
- 登錄VPN網(wǎng)關(guān)管理控制臺(tái)。
在VPN網(wǎng)關(guān)頁面,單擊創(chuàng)建VPN網(wǎng)關(guān)。
在VPN網(wǎng)關(guān)(包月)頁面,根據(jù)以下信息配置VPN網(wǎng)關(guān),然后單擊立即購買并完成支付。
以下僅列舉本文強(qiáng)相關(guān)的配置,其余配置項(xiàng)保持默認(rèn)值或?yàn)榭铡8嘈畔ⅲ?qǐng)參見創(chuàng)建和管理VPN網(wǎng)關(guān)實(shí)例。
配置項(xiàng)
說明
地域和可用區(qū)
選擇VPN網(wǎng)關(guān)實(shí)例的地域。 本文選擇華東1(杭州)。
說明確保VPC實(shí)例的地域和VPN網(wǎng)關(guān)實(shí)例的地域相同。
網(wǎng)關(guān)類型
選擇待創(chuàng)建的VPN網(wǎng)關(guān)類型。本文選擇普通型。
網(wǎng)絡(luò)類型
選擇VPN網(wǎng)關(guān)實(shí)例的網(wǎng)絡(luò)類型。本文選擇公網(wǎng)。
隧道
系統(tǒng)直接展示當(dāng)前地域支持的IPsec-VPN連接的隧道模式。
VPC
選擇待連接的VPC實(shí)例。
虛擬交換機(jī)1
從VPC實(shí)例中選擇一個(gè)交換機(jī)實(shí)例。
IPsec-VPN連接的隧道模式為單隧道時(shí),您僅需要指定一個(gè)交換機(jī)實(shí)例。
IPsec-VPN連接的隧道模式為雙隧道時(shí),您需要指定兩個(gè)交換機(jī)實(shí)例。
IPsec-VPN功能開啟后,系統(tǒng)會(huì)在兩個(gè)交換機(jī)實(shí)例下各創(chuàng)建一個(gè)彈性網(wǎng)卡ENI(Elastic Network Interfaces),作為使用IPsec-VPN連接與VPC流量互通的接口。每個(gè)ENI會(huì)占用交換機(jī)下的一個(gè)IP地址。
說明系統(tǒng)默認(rèn)幫您選擇第一個(gè)交換機(jī)實(shí)例,您可以手動(dòng)修改或者直接使用默認(rèn)的交換機(jī)實(shí)例。
創(chuàng)建VPN網(wǎng)關(guān)實(shí)例后,不支持修改VPN網(wǎng)關(guān)實(shí)例關(guān)聯(lián)的交換機(jī)實(shí)例,您可以在VPN網(wǎng)關(guān)實(shí)例的詳情頁面查看VPN網(wǎng)關(guān)實(shí)例關(guān)聯(lián)的交換機(jī)、交換機(jī)所屬可用區(qū)以及交換機(jī)下ENI的信息。
虛擬交換機(jī)2
從VPC實(shí)例中選擇第二個(gè)交換機(jī)實(shí)例。
您需要從VPN網(wǎng)關(guān)實(shí)例關(guān)聯(lián)的VPC實(shí)例下指定兩個(gè)分布在不同可用區(qū)的交換機(jī)實(shí)例,以實(shí)現(xiàn)IPsec-VPN連接可用區(qū)級(jí)別的容災(zāi)。
對(duì)于僅支持一個(gè)可用區(qū)的地域 ,不支持可用區(qū)級(jí)別的容災(zāi),建議您在該可用區(qū)下指定兩個(gè)不同的交換機(jī)實(shí)例以實(shí)現(xiàn)IPsec-VPN連接的高可用,支持選擇和第一個(gè)相同的交換機(jī)實(shí)例。
說明如果VPC實(shí)例下沒有第二個(gè)交換機(jī)實(shí)例,您可以新建交換機(jī)實(shí)例。具體操作,請(qǐng)參見創(chuàng)建和管理交換機(jī)。
IPsec-VPN
是否開啟IPsec-VPN功能。本文選擇關(guān)閉。
SSL-VPN
是否開啟SSL-VPN功能。本文選擇開啟。
SSL連接數(shù)
選擇需要連接的客戶端的數(shù)量。
說明開啟SSL-VPN功能后才可配置SSL連接數(shù)。
返回VPN網(wǎng)關(guān)頁面,查看創(chuàng)建的VPN網(wǎng)關(guān)實(shí)例。
剛創(chuàng)建好的VPN網(wǎng)關(guān)實(shí)例的狀態(tài)是準(zhǔn)備中,約1~5分鐘會(huì)變成正常狀態(tài)。正常狀態(tài)就表明VPN網(wǎng)關(guān)實(shí)例已完成初始化,可以正常使用。
步驟三:創(chuàng)建SSL服務(wù)端
在左側(cè)導(dǎo)航欄,選擇 。
在頂部菜單欄,選擇SSL服務(wù)端的地域。
說明請(qǐng)確保SSL服務(wù)端的地域和已創(chuàng)建的VPN網(wǎng)關(guān)實(shí)例的地域相同。
在SSL服務(wù)端頁面,單擊創(chuàng)建SSL服務(wù)端。
在創(chuàng)建SSL服務(wù)端面板,根據(jù)以下信息配置SSL服務(wù)端,然后單擊確定。
以下僅列舉本文強(qiáng)相關(guān)的配置,其余配置項(xiàng)保持默認(rèn)值或?yàn)榭铡8嘈畔ⅲ?qǐng)參見創(chuàng)建和管理SSL服務(wù)端。
配置項(xiàng)
說明
VPN網(wǎng)關(guān)
選擇已創(chuàng)建的VPN網(wǎng)關(guān)實(shí)例。
本端網(wǎng)段
以CIDR地址塊的形式輸入要訪問的VPC實(shí)例的網(wǎng)段。本文輸入192.168.0.0/16。
客戶端網(wǎng)段
以CIDR地址塊的形式輸入客戶端訪問VPC實(shí)例時(shí)使用的網(wǎng)段。本文輸入10.0.0.0/24。
重要客戶端網(wǎng)段的子網(wǎng)掩碼位數(shù)在16至29位之間。
請(qǐng)確保客戶端網(wǎng)段與本端網(wǎng)段、VPC網(wǎng)段以及與客戶端終端關(guān)聯(lián)的任何路由網(wǎng)段均沒有重疊。
在指定客戶端網(wǎng)段時(shí),建議您使用10.0.0.0/8、172.16.0.0/12和192.168.0.0/16網(wǎng)段及其子網(wǎng)網(wǎng)段。如果您的客戶端網(wǎng)段需要指定為公網(wǎng)網(wǎng)段,您需要將公網(wǎng)網(wǎng)段設(shè)置為VPC的用戶網(wǎng)段,以確保VPC可以訪問到該公網(wǎng)網(wǎng)段。關(guān)于用戶網(wǎng)段的更多信息,請(qǐng)參見什么是用戶網(wǎng)段?和如何配置用戶網(wǎng)段?。
創(chuàng)建SSL服務(wù)端后,系統(tǒng)后臺(tái)會(huì)自動(dòng)將客戶端網(wǎng)段的路由添加在VPC實(shí)例的路由表中,請(qǐng)勿再手動(dòng)將客戶端網(wǎng)段的路由添加到VPC實(shí)例的路由表,否則會(huì)導(dǎo)致SSL-VPN連接流量傳輸異常。
高級(jí)配置
開啟雙因子認(rèn)證功能,本文使用EIAM 2.0。其余配置保持默認(rèn)值。
IDaaS實(shí)例所在地域:選擇華東1(杭州)。
IDaaS實(shí)例:選擇在準(zhǔn)備工作中創(chuàng)建的EIAM實(shí)例。
IDaaS應(yīng)用:選擇已添加的阿里云SSL-VPN應(yīng)用。
說明在阿聯(lián)酋(迪拜)地域創(chuàng)建SSL服務(wù)端時(shí),推薦您綁定新加坡地域的IDaaS EIAM 2.0實(shí)例,以減少跨地域時(shí)延。
步驟四:創(chuàng)建SSL客戶端證書
在左側(cè)導(dǎo)航欄,選擇 。
在SSL客戶端頁面,單擊創(chuàng)建SSL客戶端。
在創(chuàng)建SSL客戶端面板,輸入SSL客戶端的名稱,選擇對(duì)應(yīng)的SSL服務(wù)端,然后單擊確定。
在SSL客戶端頁面,找到已創(chuàng)建的SSL客戶端,然后在操作列單擊下載證書。
將下載的SSL客戶端證書保存在您的本地,后續(xù)用于配置客戶端。
步驟五:配置客戶端
配置Linux客戶端
打開命令行窗口。
執(zhí)行以下命令安裝OpenVPN客戶端。
#CentOS系統(tǒng)執(zhí)行以下命令 yum install -y openvpn #執(zhí)行以下命令查看系統(tǒng)是否已創(chuàng)建/etc/openvpn/conf/目錄,如果系統(tǒng)未創(chuàng)建,需手動(dòng)創(chuàng)建/etc/openvpn/conf/目錄。 cd /etc/openvpn #進(jìn)入openvpn目錄下 ls #查看openvpn目錄下是否已創(chuàng)建conf目錄 mkdir -p /etc/openvpn/conf #如果openvpn目錄下不存在conf目錄,手動(dòng)創(chuàng)建conf目錄。 #Ubuntu系統(tǒng)執(zhí)行以下命令 apt-get update apt-get install -y openvpn #執(zhí)行以下命令查看系統(tǒng)是否已創(chuàng)建/etc/openvpn/conf/目錄,如果系統(tǒng)未創(chuàng)建,需手動(dòng)創(chuàng)建/etc/openvpn/conf/目錄。 cd /etc/openvpn #進(jìn)入openvpn目錄下 ls #查看openvpn目錄下是否已創(chuàng)建conf目錄 mkdir -p /etc/openvpn/conf #如果openvpn目錄下不存在conf目錄,手動(dòng)創(chuàng)建conf目錄。
將已下載的SSL客戶端證書解壓拷貝至/etc/openvpn/conf/目錄。
進(jìn)入/etc/openvpn/conf/目錄,執(zhí)行以下命令,然后輸入用戶名和密碼。客戶端通過IDaaS認(rèn)證后,將會(huì)和云上建立SSL-VPN連接。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon
配置Windows客戶端
下載并安裝OpenVPN客戶端(Windows版本)。
將已經(jīng)下載的SSL客戶端證書解壓拷貝至OpenVPN\config目錄。
本文將證書解壓拷貝到C:\Program Files\OpenVPN\config目錄,請(qǐng)您根據(jù)安裝路徑將證書解壓拷貝至您真實(shí)的目錄。
啟動(dòng)OpenVPN客戶端,單擊Connect,然后輸入用戶名和密碼。客戶端通過IDaaS認(rèn)證后,將會(huì)和云上建立SSL-VPN連接。
配置Mac客戶端(OpenVPN)
打開命令行窗口。
如果您的客戶端尚未安裝homebrew,執(zhí)行以下命令安裝homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
執(zhí)行以下命令安裝OpenVPN客戶端。
brew install openvpn
將已下載的SSL客戶端證書解壓拷貝至配置目錄。
備份/usr/local/etc/openvpn文件夾下的所有配置文件。
重要不同版本的macOS系統(tǒng)OpenVPN默認(rèn)的安裝路徑可能不同,請(qǐng)以您實(shí)際的安裝路徑為準(zhǔn)。在執(zhí)行本操作及后續(xù)操作時(shí),請(qǐng)將相關(guān)路徑替換為您實(shí)際的安裝路徑。
執(zhí)行以下命令刪除OpenVPN的配置文件。
rm /usr/local/etc/openvpn/*
執(zhí)行以下命令將已經(jīng)下載的SSL客戶端證書拷貝到配置目錄。
cp cert_location /usr/local/etc/openvpn/
cert_location
是下載的SSL客戶端證書的路徑,例如:/Users/example/Downloads/certs6.zip。
執(zhí)行以下命令解壓證書。
cd /usr/local/etc/openvpn/ unzip /usr/local/etc/openvpn/certs6.zip
進(jìn)入/usr/local/etc/openvpn/目錄下,執(zhí)行以下命令,然后輸入用戶名和密碼,建立SSL-VPN連接。
sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
步驟六:測(cè)試連通性
完成上述步驟后,客戶端已經(jīng)可以遠(yuǎn)程訪問VPC實(shí)例下的資源。以下內(nèi)容以Linux客戶端為例介紹如何測(cè)試客戶端和VPC實(shí)例間的連通性。
打開客戶端的命令行窗口。
執(zhí)行
ping
命令,嘗試訪問VPC下的ECS1實(shí)例,驗(yàn)證通信是否正常。ping <ECS1實(shí)例的IP地址>
收到如下所示的回復(fù)報(bào)文,則證明客戶端可以正常訪問VPC實(shí)例下的資源。
IDaaS EIAM 1.0配置說明
如果您需要使用IDaaS EIAM 1.0實(shí)例,無需執(zhí)行添加阿里云SSL-VPN應(yīng)用的步驟,在您創(chuàng)建SSL服務(wù)端時(shí),直接綁定EIAM1.0實(shí)例即可,其余步驟與上文相同。