04-SSL VPN配置
本章節下載: 04-SSL VPN配置 (984.53 KB)
SSL VPN以SSL(Secure Sockets Layer,安全套接字層)為基礎提供遠程的安全連接服務。用戶可通過互聯網,使用內嵌SSL協議的瀏覽器與遠端的Web服務器建立安全的連接,訪問內部資源。企業或機構可通過SSL VPN來為移動用戶或者外部客戶提供訪問內部資源的服務並保證安全性。
SSL VPN服務通過SSL VPN網關來提供。SSL VPN網關位於遠端接入用戶和企業內部網絡之間,負責在二者之間轉發報文。管理員需要在SSL VPN網關上創建與企業網內服務器對應的資源。
SSL VPN網關與遠端接入用戶建立SSL連接,並對接入用戶進行身份認證。遠端接入用戶的訪問請求隻有通過SSL VPN網關的安全檢查和認證後,才會被SSL VPN網關轉發到企業網絡內部,從而實現對企業內部資源的保護。
如圖1-1所示,SSL VPN的工作機製為:
(1) 遠程接入用戶與SSL VPN網關建立HTTPS連接,通過SSL提供的基於證書的身份驗證功能,SSL VPN網關和遠程接入用戶可以驗證彼此的身份。
(2) 遠程接入用戶輸入用戶名、密碼等身份信息,SSL VPN網關對用戶的身份進行認證,並對用戶可以訪問的資源進行授權。
(3) 用戶獲取到可以訪問的資源,通過SSL連接將訪問請求發送給SSL VPN網關。
(4) SSL VPN網關將資源訪問請求轉發給企業網內的服務器。
(5) SSL VPN網關接收到服務器的應答後,通過SSL連接將其轉發給用戶。
圖1-1 SSL VPN示意圖
SSL VPN的典型組網方式主要有兩種:網關模式和單臂模式。
在網關模式中,SSL VPN網關直接作為網關設備連接用戶和內網服務器,所有流量將通過SSL VPN網關進行轉發。網關模式可以提供對內網的完全保護,但是由於SSL VPN網關處在內網與外網通信的關鍵路徑上,其性能對內外網之間的數據傳輸有很大的影響。
圖1-2 網關模式
在單臂模式中,SSL VPN網關不作為網關設備。用戶訪問內網服務器時,流量將先由網關設備轉發到SSL VPN網關,經SSL VPN網關處理後再轉發到網關設備,由網關設備轉發到內網服務器。在單臂模式中,SSL VPN網關不處在網絡通信的關鍵路徑上,其性能不會影響內外網的通信。但是這種組網使得SSL VPN網關不能全麵地保護企業內部的網絡資源。
圖1-3 單臂模式
本設備暫不支持SSL VPN Web接入方式。
Web接入方式是指用戶使用瀏覽器,通過HTTPS協議訪問SSL VPN網關提供的Web資源。用戶登錄後,Web頁麵上會顯示用戶可訪問的資源列表,用戶可以選擇需要訪問的資源直接訪問。Web接入方式中,所有數據的顯示和操作都是通過Web頁麵進行的。
Web接入方式下,管理員需要在SSL VPN網關上創建URL列表,URL表項為企業網內部服務器的IP地址(或域名)。
Web方式接入過程如下:
(1) 用戶使用瀏覽器,通過HTTPS協議登錄SSL VPN網關。
(2) SSL VPN網關對用戶進行認證,並對允許用戶訪問的URL資源進行授權,授權的URL資源以URL鏈接的形式展示在網關的Web頁麵上。
(3) 用戶在SSL VPN網關的Web頁麵上訪問經過授權的URL資源。
(4) SSL VPN網關解析接收到的Web請求,並使用HTTP或HTTPS協議向Web服務器發送Web請求。
(5) SSL VPN網關接收到Web服務器的應答報文後,通過SSL連接將其轉發給用戶瀏覽器。
圖1-4 Web接入方式示意圖
目前,通過Web接入方式可以訪問的資源隻有Web服務器。
TCP接入方式是指用戶對企業內部服務器開放端口的安全訪問。通過TCP接入方式,用戶可以訪問任意基於TCP的服務,包括遠程訪問服務(如Telnet)、桌麵共享服務、電子郵件服務、Notes服務以及其他使用固定端口的TCP服務。
用戶利用TCP接入方式訪問內網服務器時,需要在SSL VPN客戶端(用戶使用的終端設備)上安裝專用的TCP接入客戶端軟件,由該軟件實現使用SSL連接傳送應用層數據。
TCP接入方式下,管理員需要在SSL VPN網關上創建端口轉發規則,將企業網內部服務器的IP地址(或域名)和端口號映射為SSL VPN客戶端的本地IP地址(或主機名)和本地端口號。
TCP方式接入過程如下:
(1) 用戶使用瀏覽器,通過HTTPS協議登錄SSL VPN網關。
(2) SSL VPN網關對用戶進行認證,並對允許用戶訪問的TCP接入服務(即端口轉發規則)進行授權。
(3) 用戶在SSL VPN網關的Web頁麵上下載TCP接入客戶端軟件
(4) 用戶在SSL VPN客戶端上啟動TCP接入客戶端軟件,可以看到授權訪問的TCP接入服務。TCP接入客戶端軟件在SSL VPN客戶端上打開授權的端口轉發規則中指定的本地端口號。
(5) 用戶訪問本地IP地址(或主機名)和本地端口號時,TCP接入客戶端軟件將訪問請求通過SSL連接發送給SSL VPN網關。
(6) SSL VPN網關解析接收到的請求,並根據本地配置的端口轉發規則,將該請求轉發給對應的內部服務器。
(7) SSL VPN網關接收到服務器的應答報文後,通過SSL連接將其轉發給SSL VPN客戶端。
如圖1-5所示,在SSL VPN網關上配置端口轉發規則後,當用戶在SSL VPN客戶端上Telnet訪問本地地址127.0.0.1、本地端口號2000時,TCP接入客戶端軟件將訪問請求發送給SSL VPN網關。SSL VPN網關將請求轉換為對Telnet服務器10.1.1.2、端口23的訪問,並轉發給Telnet服務器。Telnet服務器的應答報文同樣通過SSL VPN網關轉發給SSL VPN客戶端。
圖1-5 TCP接入方式示意圖
如圖1-6所示,移動客戶端均通過TCP接入方式訪問內網資源。對於移動客戶端,不需要在SSL VPN網關上配置端口轉發規則,隻需要在客戶端上安裝移動客戶端專用的客戶端軟件,並在SSL VPN網關上為客戶端指定EMO(Endpoint Mobile Office,終端移動辦公)服務器。移動客戶端通過EMO服務器來獲取可以訪問的內網資源。
IP接入方式用來實現遠程主機與企業內部服務器網絡層之間的安全通信,進而實現所有基於IP的遠程主機與服務器的互通,如在遠程主機上ping內網服務器。
用戶通過IP接入方式訪問內網服務器前,需要安裝專用的IP接入客戶端軟件,該客戶端軟件會在SSL VPN客戶端上安裝一個虛擬網卡。
IP接入方式下,管理員在SSL VPN網關上創建SSL VPN AC接口,並配置下發給SSL VPN客戶端的路由表項。
如圖1-7所示,IP方式接入過程如下:
(1) 用戶在客戶端上安裝IP接入客戶端軟件後,啟動該軟件並登錄。
(2) SSL VPN網關對其進行認證和授權。認證、授權通過後,SSL VPN網關為客戶端的虛擬網卡分配IP地址,並將授權用戶訪問的IP接入資源(即路由表項)發送給客戶端。
(3) 客戶端為虛擬網卡設置IP地址,並添加路由表項,路由的出接口為虛擬網卡。
(4) 用戶在客戶端上訪問企業內網服務器時,訪問請求報文匹配添加的路由表項,該報文將進行SSL封裝,並通過虛擬網卡發送給SSL VPN網關的SSL VPN AC接口。
(5) SSL VPN網關對SSL報文進行解封裝,並將IP報文轉發給內網服務器。
(6) 內網服務器將應答報文發送給SSL VPN網關。
(7) SSL VPN網關對報文進行SSL封裝後,通過SSL VPN AC接口將其發送給客戶端。
圖1-7 IP接入方式的工作過程
SSL VPN用戶認證是SSL VPN網關對SSL VPN用戶身份的認證,用戶身份認證通過後,才能訪問對應的內網服務器資源。用戶認證包括:用戶名/密碼認證、證書認證、用戶名/密碼和證書的組合認證。有關用戶的詳細介紹,請參見“安全配置指導”中的“AAA”。
用戶名/密碼認證隻通過認證SSL VPN用戶的用戶名和密碼從而認證用戶身份。該認證的過程如下:
(1) SSL VPN用戶在登錄界麵輸入用戶名和密碼,用戶設備會將用戶名和密碼發送給SSL VPN網關;
(2) SSL VPN網關將用戶名和密碼提交給AAA模塊進行認證、授權和計費。
證書認證隻通過認證SSL VPN用戶證書從而認證用戶身份。該認證的過程如下:
(1) SSL VPN用戶選擇自己的SSL VPN用戶證書,用戶設備會將該證書發送給SSL VPN網關;
(2) SSL VPN網關用CA證書檢查SSL VPN用戶證書是否可信:如果可信,則繼續進行下一步;如果不可信,則不能建立SSL連接;
(3) SSL VPN網關從SSL VPN用戶證書中的CN字段提取用戶名,並將該用戶名提交給AAA模塊進行授權和計費。
· 雖然證書認證不需要用戶手工輸入用戶名,但在本地設備中必須存在該用戶。
· SSL VPN用戶證書中的CN字段必須和該SSL VPN用戶的用戶名一致。
圖1-8 證書認證過程
用戶名/密碼和證書組合認證是指SSL VPN網關對SSL VPN用戶的證書以及用戶名/密碼進行雙重認證。該認證的過程如下:
(1) SSL VPN用戶選擇自己的SSL VPN用戶證書,用戶設備會將該證書發送給SSL VPN網關;
(2) SSL VPN網關用CA證書檢查SSL VPN用戶證書是否可信:如果可信,則繼續進行下一步;如果不可信,則不能建立SSL連接;
(3) SSL VPN網關從SSL VPN用戶證書中提取用戶名與輸入的用戶名進行比較:
¡ 若一致,則網關將用戶名和密碼提交給AAA模塊進行認證、授權和計費;
¡ 若不一致,則認證不通過。
SSL VPN采用基於用戶的權限管理方法,可以根據用戶的身份,限製用戶可以訪問的資源。
如圖1-9所示,SSL VPN對資源的管理方式為:同一台SSL VPN網關上可以創建多個SSL VPN訪問實例(SSL VPN context)。每個SSL VPN訪問實例包含多個策略組。策略組中定義了Web資源、TCP接入服務資源、IP接入服務資源等。
圖1-9 SSL VPN資源管理方式
用戶登錄SSL VPN網關時,SSL VPN網關通過以下方法判斷用戶所屬的SSL VPN訪問實例:
· 為不同的SSL VPN訪問實例指定不同的域名。遠端用戶登錄SSL VPN網關時,指定自己所在的域,SSL VPN網關根據用戶指定的域判斷該用戶所屬的SSL VPN訪問實例。
· 為不同的SSL VPN訪問實例指定不同的虛擬主機名稱。遠端用戶訪問SSL VPN網關時,輸入虛擬主機名稱,SSL VPN網關根據虛擬主機名稱判斷該用戶所屬的SSL VPN訪問實例。
SSL VPN網關判斷出用戶所屬的SSL VPN訪問實例後,根據SSL VPN訪問實例所在的ISP域對用戶進行認證和授權,授權結果為策略組名稱。如果某個用戶被授權訪問某個策略組,則該用戶可以訪問該策略組下的資源。如果沒有為用戶進行授權,則用戶可訪問的資源由缺省策略組決定。
SSL VPN網關對用戶的認證和授權通過AAA來完成。目前,SSL VPN支持的AAA協議包括RADIUS(Remote Authentication Dial-In User Service,遠程認證撥號用戶服務)協議和LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協議)協議。在實際應用中,RADIUS協議較為常用。
如圖1-10所示,在SSL VPN網關設備上,管理員可以將不同的SSL VPN訪問實例關聯不同的VPN實例,以便隔離不同訪問實例內的服務器資源,避免非法用戶訪問特定資源的同時,還可以實現服務器資源的地址重疊。
管理員還可以指定SSL VPN網關所屬的VPN實例。隻有屬於同一個VPN的用戶可以訪問SSL VPN網關,從而避免內部服務器資源泄漏到公網和其他VPN中。
VPN實例的詳細介紹,請參見“VPN實例配置指導”中的“VPN實例”。
圖1-10 SSL VPN支持VPN多實例示意圖
設備缺省支持15個用戶同時登錄。
安裝License可以增加同時在線的用戶數。關於License的詳細介紹請參見“基礎配置指導”中的“License管理”。
用戶先采用Web接入方式登錄SSL VPN網關,又在Web頁麵上下載並運行IP接入客戶端。此時用戶通過兩種接入方式訪問SSL VPN網關,SSL VPN網關上會為該用戶生成一個SSL VPN會話。之後如果用戶從瀏覽器退出或者從IP接入客戶端退出,則會因為SSL VPN會話斷開而將無法繼續訪問對應的Web接入服務資源和IP接入服務資源。
配置SSL VPN訪問控製策略時,過濾規則引用的ACL規則中不能存在VPN實例,否則該規則不能生效。
SSL VPN相關配置均在SSL VPN網關設備上進行。SSL VPN配置任務如下:
(1) 配置SSL VPN網關
(2) 配置SSL VPN訪問實例
(3) 配置SSL VPN用戶認證
(4) 創建URI ACL
(5) 配置接入服務
¡ 配置IP接入服務
(6) (可選)配置SSL VPN缺省策略組
(7) (可選)配置SSL VPN支持VPN多實例
(8) (可選)配置HTTP重定向
(9) (可選)配置SSL VPN頁麵
(10) (可選)定製SSL VPN頁麵信息
(11) (可選)配置SSL VPN用戶控製
(12) (可選)配置SSL VPN SNAT地址池
(13) (可選)開啟SSL VPN日誌功能
進行SSL VPN配置前,需要在SSL VPN網關上完成以下操作:
· 配置PKI,為SSL VPN網關獲取數字證書,配置方法請參見“安全配置指導”中的“PKI”。
· 配置SSL服務器端策略,配置方法請參見“安全配置指導”中的“SSL”。
SSL VPN網關使用缺省地址時,端口號不能與設備的HTTPS管理地址的端口號相同。
如果引用的SSL服務器策略有變化,需要重新開啟SSL VPN網關才能生效。
SSL VPN網關的IP地址和端口號與HTTPS管理地址和端口號不能完全相同,如果完全相同,則用戶訪問此地址和端口時,隻能訪問SSL VPN網關頁麵,而不能訪問設備的管理頁麵。
SSL VPN網關的IPv4地址和IPv6地址不能同時生效,若同時配置了IPv4地址和IPv6地址,則最後一次配置的IP地址生效。
(1) 進入係統視圖。
system-view
(2) 創建SSL VPN網關,並進入SSL VPN網關視圖。
sslvpn gateway gateway-name
(3) 配置SSL VPN網關的IPv4地址和端口號。
ip address ip-address [ port port-number ]
缺省情況下,SSL VPN網關的IP地址為0.0.0.0,端口號為443。
執行本配置時,如果沒有指定端口號,則缺省端口號為443。
(4) 配置SSL VPN網關的IPv6地址和端口號。
ipv6 address ipv6-address [ port port-number ]
缺省情況下,未配置SSL VPN網關的IPv6地址和端口號。
執行本配置時,如果沒有指定端口號,則缺省端口號為443。
(5) 指定SSL VPN網關引用SSL服務器端策略。
ssl server-policy policy-name
缺省情況下,SSL VPN網關引用自簽名證書的SSL服務器端策略。
(6) 開啟當前的SSL VPN網關。
service enable
缺省情況下,當前的SSL VPN網關處於關閉狀態。
SSL VPN訪問實例用來管理用戶會話、用戶可以訪問的資源等。
· 不同的SSL VPN訪問實例引用相同的SSL VPN網關時,必須為不同的SSL VPN訪問實例指定不同的域名或虛擬主機名。
· 如果SSL VPN訪問實例引用SSL VPN網關時沒有指定域名和虛擬主機名稱,那麼其他的SSL VPN訪問實例就不能再引用該SSL VPN網關。
· 如果為SSL VPN訪問實例指定了虛擬主機名稱,則需要在網絡中部署DNS服務器,以便客戶端將虛擬主機名稱解析為SSL VPN網關的IP地址。
· 一個SSL VPN訪問實例最多可以引用10個SSL VPN網關
· SSL VPN訪問實例中設置SSL VPN網關和虛擬主機時,當虛擬主機名包含下劃線時(一般要求域名不能包含下劃線,如果SSL VPN用於Web接入,虛擬主機名將作為了域名的一部分),此時IE瀏覽器無法保存Cookie,發送請求報文時不會攜帶Cookie,導致SSL VPN登錄失敗。
(1) 進入係統視圖。
system-view
(2) 創建SSL VPN訪問實例,並進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置SSL VPN訪問實例引用SSL VPN網關。
gateway gateway-name [ domain domain-name | virtual-host virtual-host-name ]
缺省情況下,SSL VPN訪問實例沒有引用SSL VPN網關。
(4) 配置SSL VPN訪問實例使用指定的ISP域進行AAA認證。
aaa domain domain-name
缺省情況下,SSL VPN訪問實例使用缺省的ISP域進行認證。
SSL VPN用戶的用戶名中不能攜帶所屬ISP域信息。執行本配置後,SSL VPN用戶將采用指定ISP域內的認證、授權、計費方案對SSL VPN用戶進行認證、授權和計費。
(5) 開啟當前的SSL VPN訪問實例。
service enable
缺省情況下,SSL VPN訪問實例處於關閉狀態。
(6) (可選)配置SSL VPN訪問實例的最大會話數。
max-users max-number
缺省情況下,SSL VPN訪問實例的最大會話數為1048575。
(7) (可選)配置SSL VPN會話保持空閑狀態的最長時間。
timeout idle minutes
缺省情況下,SSL VPN會話保持空閑狀態的最長時間為30分鍾。
(8) (可選)配置SSL VPN會話保持空閑狀態的流量閾值。
idle-cut traffic-threshold kilobytes
缺省情況下,未配置SSL VPN會話保持空閑狀態的流量閾值。
(9) 配置SSL VPN訪問實例引用SSL客戶端策略。
ssl client-policy policy-name
缺省情況下,SSL客戶端策略支持的加密套件為dhe_rsa_aes_128_cbc_sha、dhe_rsa_aes_256_cbc_sha、rsa_3des_ede_cbc_sha、rsa_aes_128_cbc_sha、rsa_aes_256_cbc_sha。
執行本配置後,SSL VPN網關使用指定的SSL客戶端策略與HTTPS類型的Web服務器建立連接。
用戶名/密碼認證功能和證書認證功能都開啟的情況下,可以通過authentication use命令來控製SSL VPN用戶認證的認證模式。若認證模式選用any-one,則用戶隻需要通過其中一種認證即可登錄SSL VPN訪問實例;若認證模式選用all,則用戶必須通過這兩種認證(即用戶名/密碼和證書的組合認證)方可登錄SSL VPN訪問實例。
用戶名/密碼認證、證書認證功能、驗證碼驗證功能和iMC短信驗證這幾種驗證方式可以同時開啟,也可以隻開啟其中的一個或多個。若同時開啟多個功能,則多個功能同時生效,用戶需要同時通過多個驗證才能訪問企業內網資源。
對於SSL VPN證書認證功能,僅在Web接入和IP接入方式下,支持SSL服務器端強製要求對SSL客戶端進行基於數字證書的身份驗證;在TCP接入和移動客戶端接入方式下,不支持SSL服務器端強製要求對SSL客戶端進行基於數字證書的身份驗證。
SSL VPN證書認證采用TCP接入方式時,移動客戶端不支持強認證,隻支持弱認證,隻有Web接入和IP接入支持強證書認證。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 開啟用戶名/密碼認證功能。
password-authentication enable
缺省情況下,用戶名/密碼認證功能處於開啟狀態。
(4) (可選)開啟證書認證功能。
certificate-authentication enable
缺省情況下,證書認證功能處於關閉狀態。
(5) 配置SSL VPN用戶登錄訪問實例的認證模式。
authentication use { all | any-one }
缺省情況下,SSL VPN用戶登錄訪問實例的認證模式為all。
(6) (可選)開啟驗證碼驗證功能。
verify-code enable
缺省情況下,驗證碼驗證功能處於關閉狀態。
(7) (可選)配置iMC短信驗證服務。
a. 配置iMC服務器的IP地址和端口號。
sms-imc address ip-address port port-number [ vpn-instance vpn-instance-name ]
缺省情況下,未配置短信驗證使用的iMC服務器的IP地址和端口號。
b. 開啟當前的iMC短信驗證服務。
sms-imc enable
缺省情況下,iMC短信驗證服務處於關閉狀態。
(8) (可選)配置OA認證服務。
a. 配置OA認證服務器的IPv4地址和端口號。
oa address ip-address port port-number [ vpn-instance vpn-instance-name ]
缺省情況下,未配置OA認證服務器的IPv4地址和端口號。
b. 開啟當前的OA認證服務。
oa enable
缺省情況下,OA認證服務處於關閉狀態。
URI形式的ACL用於對SSL VPN的各種接入方式進行更精細的控製。對URL進行匹配,符合要求的URL請求可以訪問對應的資源。在SSL VPN訪問實例視圖下可以創建多個URI ACL,並且每個URI ACL下又可以配置多條URI ACL規則。若一個URI ACL中配置了多條URI ACL規則,則按照規則編號由小到大進行匹配。
URI ACL規則支持根據報文的協議類型、地址、域名、端口號和URL進行過濾,目前設備支持過濾的協議類型包括:HTTP、HTTPS、TCP、UDP、ICMP、IP。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建URI ACL,並進入URI ACL視圖。
uri-acl uri-acl-name
(4) 創建URI ACL規則。
rule [ rule-id ] { deny | permit } uri uri-pattern-string
本設備暫不支持SSL VPN Web接入方式。
為了使用戶能夠通過Web接入方式訪問企業內網資源,SSL VPN網關上需要創建Web接入服務資源。
Web接入方式可能會出現頁麵兼容性問題,需要進行適配,建議使用IP接入方式。
Web接入服務配置任務如下:
(1) 配置URL列表
(3) (可選)配置改寫策略
(4) (可選)配置快捷方式
URL列表用於定義Web接入方式可訪問的資源。每個URL表項對應一個企業網內的Web資源。當用戶通過網關訪問Web資源時,網關會對URL進行映射,以保證用戶的正常訪問。目前支持的映射方式有三種:常規映射、域名映射、端口映射。
以SSL VPN網關名gw(域名為https://www.gateway.com:4430,對應的IP地址為1.1.1.1),內網資源服務器URL=http://www.server.com:8080為例:
· 當不配置URL映射方式時(默認為常規映射),客戶端訪問內網資源服務器的URL顯示為:https://www.gateway.com:4430/_proxy2/http/8080/www.server.com。
· 當配置域名映射,映射的域名為www.domain.com時,www.domain.com與內網資源http://www.server.com:8080為一一映射關係。客戶端訪問內網資源服務器的URL顯示為:https://www.domain.com:4430。
· 當配置端口映射,又分為配置虛擬主機名和不配置虛擬主機名兩種情況。
¡ 不配置虛擬主機名,引用SSL VPN網關gw2時,客戶端訪問內網資源服務器的URL顯示為:https://2.2.2.2:4430(網關gw2的IP地址為2.2.2.2,端口號是4430)。
¡ 配置虛擬主機名,虛擬主機名為vhosta,vhosta與內網資源http://www.server.com:8080為一一映射關係。引用SSL VPN網關gw時,客戶端訪問內網資源服務器的URL顯示為:https://vhosta:4430。
· 目前僅支持對HTML、CSS和JS類型的文件進行映射。
· 若在使用常規映射的過程中,出現URL映射遺漏和映射錯誤等問題,請使用域名映射或端口映射。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建URL表項,並進入URL表項視圖。
url-item name
(4) 配置資源的URL。
url url
缺省情況下,未配置資源的URL。
如果URL中未指定協議類型,則默認為HTTP。
(5) (可選)引用過濾URL資源的URI ACL。
resource uri-acl uri-acl-name
缺省情況下,未引用過濾URL資源的URI ACL。
(6) (可選)配置URL資源的映射方式。
url-mapping { domain-mapping domain-name | port-mapping gateway gateway-name [ virtual-host virtual-host-name ] } [ rewrite-enable ]
缺省情況下,URL資源的映射方式為常規映射。
(7) 退回SSL VPN訪問實例視圖。
quit
(8) 創建URL列表,並進入URL列表視圖。
url-list name
(9) (可選)配置URL列表標題。
heading string
缺省情況下,URL列表的標題為“Web”。
(10) 配置URL列表引用的URL表項。
resources url-item name
缺省情況下,URL列表未引用URL表項。
在SSL VPN策略組視圖下引用URL列表。SSL VPN用戶被授權某個策略組後,該策略組引用的URL列表指定的Web資源將同時授權給SSL VPN用戶,SSL VPN用戶可以訪問這些Web資源。
SSL VPN網關可以通過高級ACL和URI ACL規則對SSL VPN用戶的Web接入進行過濾,防止非法用戶接入內部網絡。配置SSL VPN訪問控製策略後,設備對SSL VPN用戶的Web接入按照如下原則過濾:
(1) 優先匹配被授權URL列表下的資源,成功匹配後用戶可以訪問授權資源。
(2) 若資源列表匹配失敗時,則進行URI ACL的規則檢查,成功匹配URI ACL中permit規則後用戶的訪問請求才允許通過。
(3) 若URI ACL匹配失敗時,再進行高級ACL的檢查,成功匹配規則後用戶的訪問請求才允許通過。
(4) 若高級ACL檢查失敗,則授權失敗,用戶不允許訪問資源。
高級ACL支持根據接入請求報文的目的IP地址和目的端口號進行過濾;URI ACL支持根據接入請求報文的協議類型、地址、域名、端口號和URL進行過濾。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建SSL VPN策略組,並進入SSL VPN策略組視圖。
policy-group group-name
(4) 配置策略組引用URL列表。
resources url-list url-list-name
缺省情況下,策略組沒有引用任何URL列表。
(5) (可選)配置對Web接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter web-access [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter web-access uri-acl uri-acl-name
缺省情況下,SSL VPN網關僅允許SSL VPN客戶端訪問被授權URL列表下的資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有SSL VPN客戶端訪問Web資源。
通過Web接入方式訪問服務器資源時,管理員可以配置改寫策略對網頁文件進行匹配,進而改寫匹配的網頁文件。通過改寫網頁文件,管理員可以對發現的網頁問題進行修複,方便維護和管理。
配置改寫策略後,SSL VPN網關通過old-content命令配置的string對網頁文件內容進行匹配,匹配成功之後,采用new-content命令配置的改寫之後的文件內容對其進行替換。隻有配置的url與網關正在處理的網頁文件的URL相同時,才會根據文件策略中的配置對該網頁文件內容進行改寫。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建文件策略,並進入文件策略視圖。
file-policy policy-name
(4) 配置文件策略應用的URL地址。
url url
(5) 配置改寫的文件類型。
content-type { css | html | javascript | other }
缺省情況下,未配置文件改寫類型,設備根據解析HTTP響應報文獲得的文件類型對網頁文件進行改寫。
(6) 創建改寫規則,並進入改寫規則視圖。
rewrite-rule rule-name
(7) 配置需要改寫的文件內容。
old-content string
缺省情況下,未配置需要改寫的文件內容。
(8) 配置改寫之後的文件內容。
new-content string
缺省情況下,未配置改寫之後的文件內容。
當用戶需要快速訪問企業內網資源時,可以配置快捷方式,以便在SSL VPN網關的Web頁麵上增加訪問內網資源的快捷方式,用戶單擊配置的快捷方式名稱就能夠訪問對應的內網資源。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建快捷方式,並進入快捷方式視圖。
shortcut shortcut-name
(4) (可選)配置快捷方式的描述信息。
description text
缺省情況下,設備上不存在配置描述信息。
(5) 配置快捷方式對應的資源。
execution script
缺省情況下,不存在快捷方式對應的資源。
(6) 退回SSL VPN訪問實例視圖。
quit
(7) 創建快捷方式列表,並進入快捷方式列表視圖。
shortcut-list list-name
(8) 配置快捷方式列表引用快捷方式。
resources shortcut shortcut-name
缺省情況下,快捷方式列表未引用快捷方式。
(9) 退回SSL VPN訪問實例視圖。
quit
(10) 進入SSL VPN策略組視圖。
policy-group group-name
(11) 配置策略組引用快捷方式列表。
resources shortcut-list list-name
缺省情況下,策略組未引用任何快捷方式列表。
為了使用戶能夠通過TCP接入方式訪問企業內網資源,SSL VPN網關上需要創建TCP接入服務資源。
TCP接入服務配置任務如下:
(1) 配置端口轉發列表
端口轉發表項用於定義端口轉發實例和對應資源:
· 端口轉發實例將企業網內的基於TCP的服務(如Telnet、SSH、POP3)映射為客戶端上的本地地址和本地端口,以便客戶端通過本地地址和本地端口訪問企業網內的服務器。
· 配置對應的資源後,用戶可以在Web頁麵上點擊指定的轉發表項訪問服務器資源。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建端口轉發表項,進入端口轉發表項視圖。
port-forward-item item-name
(4) 添加一個端口轉發實例。
local-port local-port-number local-name local-name remote-server remote-server remote-port remote-port-number [ description text ]
(5) (可選)配置端口轉發表項對應的資源。
execution script
(6) 退回SSL VPN訪問實例視圖。
quit
(7) 創建端口轉發列表,並進入端口轉發列表視圖。
port-forward port-forward-name
(8) 配置端口轉發列表引用端口轉發表項。
resources port-forward-item item-name
缺省情況下,端口轉發列表未引用任何端口轉發表項
在SSL VPN策略組視圖下引用端口轉發列表。SSL VPN用戶被授權某個策略組後,該策略組引用的端口轉發列表指定的TCP接入服務將同時授權給SSL VPN用戶,SSL VPN用戶可以訪問這些TCP接入服務。
SSL VPN網關可以通過高級ACL和URI ACL規則對SSL VPN用戶的TCP接入進行過濾,防止非法用戶接入內部網絡。
配置SSL VPN訪問控製策略後,設備對於PC版TCP客戶端的過濾原則為:僅當成功匹配端口轉發資源列表後用戶可以訪問授權資源,否則禁止所有客戶端訪問TCP接入資源;對於手機版TCP客戶端的過濾原則為:
(1) 優先匹配端口轉發資源列表,成功匹配後用戶可以訪問授權資源。
(2) 若端口轉發資源列表匹配失敗時,則進行URI ACL的規則檢查,成功匹配URI ACL中permit規則後用戶的訪問請求才允許通過。
(3) 若URI ACL匹配失敗時,再進行高級ACL的檢查,成功匹配permit規則後用戶的訪問請求才允許通過。
(4) 若高級ACL檢查失敗,則授權失敗,用戶不允許訪問資源。
高級ACL支持根據接入請求報文的目的IP地址和目的端口號進行過濾;URI ACL支持根據接入請求報文的協議類型、地址、域名、端口號和URL進行過濾。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建SSL VPN策略組,並進入SSL VPN策略組視圖。
policy-group group-name
(4) 配置策略組引用端口轉發列表。
resources port-forward port-forward-name
缺省情況下,策略組沒有引用任何端口轉發列表。
(5) (可選)配置對TCP接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter tcp-access [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter tcp-access uri-acl uri-acl-name
缺省情況下,SSL VPN網關僅允許SSL VPN客戶端訪問端口轉發列表下的資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有SSL VPN客戶端訪問TCP接入服務。
為了使內部服務器的應答報文正確返回給SSL VPN客戶端,在內部服務器上需要配置到達SSL VPN客戶端虛擬網卡所在網段的靜態路由。
如果選擇IP接入方式,需要在與內網服務器相連的接口上配置出方向動態地址轉換,詳細配置請參見“NAT配置指導”中的“NAT”。
IP接入服務配置任務如下:
(2) 配置分配給IP接入用戶的地址池
(5) (可選)配置SSL VPN用戶綁定IP地址
(1) 進入係統視圖。
system-view
(2) 創建SSL VPN AC接口,並進入SSL VPN AC接口視圖。
interface sslvpn-ac interface-number
(3) 配置接口的IP地址。
ip address ip-address { mask | mask-length }
缺省情況下,沒有指定接口的IP地址。
(4) (可選)配置接口的期望帶寬。
bandwidth bandwidth-value
缺省情況下,接口的期望帶寬為64kbps。
期望帶寬供業務模塊使用,不會對接口實際帶寬造成影響。
(5) (可選)配置當前接口的描述信息。
description text
缺省情況下,接口的描述信息為“接口名 Interface”,例如:SSLVPN-AC1000 Interface。
(6) (可選)配置接口的MTU值。
mtu size
缺省情況下,接口的MTU值為1500。
(7) 開啟當前接口。
undo shutdown
缺省情況下,SSL VPN AC接口均處於開啟狀態。
接口下的某些配置恢複到缺省情況後,會對設備上當前運行的業務產生影響。建議您在執行本配置前,完全了解其對網絡產生的影響。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN AC接口視圖。
interface sslvpn-ac interface-number
(3) 恢複當前接口的缺省配置。
default
您可以在執行default命令後通過display this命令確認執行效果。對於未能成功恢複缺省的配置,建議您查閱相關功能的命令手冊,手工執行恢複該配置缺省情況的命令。如果操作仍然不能成功,您可以通過設備的提示信息定位原因。
SSL VPN網關將從配置的IP地址池中為客戶端軟件的虛擬網卡分配IP地址。
(1) 進入係統視圖。
system-view
(2) 創建地址池。
sslvpn ip address-pool pool-name start-ip-address end-ip-address
為SSL VPN訪問實例引用地址池,在客戶端通過驗證後,SSL VPN網關會從該訪問實例引用的地址池中選擇IP地址分配給客戶端。
在SSL VPN訪問實例下還可以配置路由列表,為客戶端分配路由表項。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置IP接入引用的SSL VPN AC接口。
ip-tunnel interface sslvpn-ac interface-number
缺省情況下,IP接入未引用SSL VPN AC接口。
(4) 創建路由列表,並進入路由列表視圖。
ip-route-list list-name
(5) 在路由列表中添加路由。
include ip-address { mask | mask-length }
(6) (可選)在路由列表中添加例外路由。
exclude ip-address { mask | mask-length }
(7) 退回SSL VPN訪問實例視圖。
quit
(8) 配置IP接入引用地址池。
ip-tunnel address-pool pool-name mask { mask-length | mask }
缺省情況下,IP接入未引用地址池。
(9) (可選)配置保活報文的發送時間間隔。
ip-tunnel keepalive seconds
缺省情況下,保活報文的發送時間間隔為30秒。
(10) (可選)配置為客戶端指定的內網DNS服務器地址。
ip-tunnel dns-server { primary | secondary } ip-address
缺省情況下,未配置為客戶端指定的DNS服務器地址。
(11) (可選)配置為客戶端指定的內網WINS服務器地址。
ip-tunnel wins-server { primary | secondary } ip-address
缺省情況下,未配置為客戶端指定的WINS服務器地址。
(12) (可選)開啟通過Web方式成功登錄SSL VPN網關後自動啟動IP客戶端功能。
web-access ip-client auto-activate
缺省情況下,通過Web方式成功登錄SSL VPN網關後自動啟動IP客戶端功能處於關閉狀態。
(13) (可選)開啟通過IP方式成功登錄SSL VPN網關後自動推送資源列表功能。
ip-tunnel web-resource auto-push
缺省情況下,通過IP方式成功登錄SSL VPN網關後自動推送資源列表功能處於關閉狀態。
在SSL VPN策略組視圖下需要配置下發給客戶端的路由表項。AAA服務器將某個策略組授權給SSL VPN用戶後,SSL VPN網關會將該策略組下配置的路由表項下發給客戶端。下發的路由表項具有三種配置方法:
· 直接配置路由表項:用於將一條路由下發給客戶端。
· 配置路由列表:用於將路由列表中的多條路由同時下發給客戶端。
· 強製將客戶端的流量轉發給SSL VPN網關(指定force-all參數):SSL VPN網關在客戶端上添加優先級最高的缺省路由,路由的出接口為虛擬網卡,從而使得所有沒有匹配到路由表項的流量都通過虛擬網卡發送給SSL VPN網關。SSL VPN網關還會實時監控SSL VPN客戶端,不允許SSL VPN客戶端刪除此缺省路由,且不允許SSL VPN客戶端添加優先級高於此路由的缺省路由。
SSL VPN網關可以通過高級ACL和URI ACL規則對SSL VPN用戶的IP接入進行過濾,防止非法用戶接入內部網絡。配置SSL VPN訪問控製策略後,設備對IP接入按照如下原則過濾:
(1) 進行URI ACL的規則檢查,成功匹配URI ACL中permit規則後用戶的訪問請求才允許通過。
(2) 若URI ACL匹配失敗時,再進行高級ACL的檢查,成功匹配規則後用戶的訪問請求才允許通過。
(3) 若高級ACL檢查失敗,則授權失敗,用戶不允許訪問資源。
若URI ACL和高級ACL均未引用,則SSL VPN網關默認允許所有IP接入方式的訪問。
高級ACL支持根據接入請求報文的目的IP地址和目的端口號、源IP地址和源端口號、協議類型、報文優先級、分片信息、TCP報文標識、ICMP報文的消息類型和消息碼信息進行過濾;URI ACL支持根據接入請求報文的協議類型、地址、域名、端口號和URL進行過濾。
配置對IP接入進行URI ACL過濾時,指定的URI ACL規則中不能包含HTTP和HTTPS協議。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建SSL VPN策略組,並進入SSL VPN策略組視圖。
policy-group group-name
(4) 配置下發給客戶端的路由表項。
ip-tunnel access-route { ip-address { mask-length | mask } | force-all | ip-route-list list-name }
缺省情況下,未指定下發給客戶端的路由表項。
(5) (可選)配置對IP接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter ip-tunnel [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter ip-tunnel uri-acl uri-acl-name
缺省情況下,SSL VPN網關禁止所有客戶端訪問IP接入資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有IP接入方式的訪問。
(6) (可選)配置策略組引用的地址池。
ip-tunnel address-pool pool-name mask { mask-length | mask }
缺省情況下,策略組下未引用地址池。
若引用的地址池不存在或無可用地址,分配失敗,用戶無法通過IP接入。若策略組未引用地址池,則SSL VPN網關將使用SSL VPN訪問實例中引用的地址池為客戶端分配IP地址。
客戶端使用IP接入方式訪問SSL VPN網關時,網關需要為客戶端分配IP地址。通過配置本功能,可以保證同一個用戶多次訪問該網關時能使用固定範圍的IP地址。本功能提供以下兩種方式為SSL VPN用戶綁定IP地址:
· 指定固定的地址範圍:為用戶綁定分配的IP地址列表,當網關從SSL VPN訪問實例引用地址池中為客戶端分配IP地址時,優先分配綁定的IP地址。
· 指定可分配的地址數目:網關也可以為客戶端自動分配空閑的IP地址,即網關會從SSL VPN訪問實例引用地址池中獲取指定個數的空閑IP地址,為用戶綁定。
當SSL VPN策略組中引用了地址池時,配置SSL VPN用戶綁定的IP地址必須是此地址池中的IP地址。
當SSL VPN策略組中未引用地址池時,配置SSL VPN用戶綁定的IP地址必須是此SSL VPN訪問實例引用的地址池中的IP地址。
未關聯VPN實例或在同一VPN實例中,不同SSL VPN用戶不能綁定相同的IP地址。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建SSL VPN用戶,並進入SSL VPN用戶視圖。
user username
(4) 配置SSL VPN用戶綁定的IP地址。
ip-tunnel bind address { ip-address-list | auto-allocate number }
缺省情況下,SSL VPN用戶未綁定IP地址
為移動客戶端配置SSL VPN接入服務配置任務如下:
(1) 為移動客戶端指定EMO服務器
(2) (可選)為移動客戶端指定Message服務器
EMO服務器用來為移動客戶端提供服務。執行本命令後,SSL VPN網關會將配置的EMO服務器信息下發給客戶端,以便移動客戶端通過EMO服務器獲取可以訪問的服務資源。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置為客戶端指定的EMO服務器。
emo-server address { host-name | ipv4-address } port port-number
缺省情況下,未配置為客戶端指定的EMO服務器。
Message服務器用來為移動客戶端提供服務。執行本命令後,SSL VPN網關會將配置的Message服務器信息下發給客戶端,以便客戶端訪問Message服務器。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置為客戶端指定的Message服務器。
message-server address { host-name | ipv4-address } port port-number
缺省情況下,未配置為客戶端指定的Message服務器。
遠端接入用戶訪問SSL VPN訪問實例時,如果AAA服務器沒有為該用戶授權策略組,則SSL VPN網關為用戶下發缺省SSL VPN策略組,定義該用戶可訪問的資源。如果沒有配置缺省SSL VPN策略組,則SSL VPN網關拒絕用戶的接入請求。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 創建策略組,並進入SSL VPN策略組視圖。
policy-group group-name
(4) 為策略組指定資源。
¡ 為SSL VPN策略組配置指定Web接入資源。
resources url-list url-list-name
缺省情況下,策略組沒有引用任何URL列表。
¡ 為SSL VPN策略組配置指定TCP接入資源。
resources port-forward port-forward-name
缺省情況下,策略組沒有引用任何端口轉發列表。
¡ 為SSL VPN策略組配置指定IP接入資源。
ip-tunnel access-route { ip-address { mask-length | mask } | force-all | ip-route-list list-name }
缺省情況下,未指定下發給客戶端的路由表項。
(5) (可選)配置對Web接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter web-access [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter web-access uri-acl uri-acl-name
缺省情況下,SSL VPN網關僅允許SSL VPN客戶端訪問被授權URL列表下的資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有SSL VPN客戶端訪問Web資源。
(6) (可選)配置對TCP接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter tcp-access [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter tcp-access uri-acl uri-acl-name
缺省情況下,SSL VPN網關僅允許SSL VPN客戶端訪問端口轉發列表下的資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有SSL VPN客戶端訪問TCP接入服務。
(7) (可選)配置對IP接入進行過濾。
¡ 通過高級ACL方式進行過濾。
filter ip-tunnel [ ipv6 ] acl advanced-acl-number
¡ 通過URI ACL方式進行過濾。
filter ip-tunnel uri-acl uri-acl-name
缺省情況下,SSL VPN網關禁止所有客戶端訪問IP接入資源。
如果引用的ACL不存在,則SSL VPN網關拒絕所有IP接入方式的訪問。
(8) 退回SSL VPN訪問實例視圖。
quit
(9) 指定某個策略組為缺省策略組。
default-policy-group group-name
缺省情況下,沒有指定缺省策略組。
將不同的SSL VPN訪問實例關聯不同的VPN實例,可以隔離不同訪問實例內的服務器資源,避免非法用戶訪問特定資源的同時,還可以實現服務器資源的地址重疊。
配置此功能前,請先進行如下配置:
· 創建VPN實例。
· SSL VPN網關設備連接企業網內部服務器的接口上綁定該VPN實例。
· 對於IP接入方式,還需要在SSL VPN訪問實例引用的SSL VPN AC接口上綁定該VPN實例。
有關VPN實例的詳細配置,請參見“VPN實例配置指導”中的“VPN實例”。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置SSL VPN訪問實例關聯的VPN實例。
vpn-instance vpn-instance-name
缺省情況下,SSL VPN訪問實例關聯公網。
指定SSL VPN網關所屬的VPN實例後,隻有屬於同一個VPN的用戶才可以訪問SSL VPN網關,從而避免內部服務器資源泄漏到公網和其他VPN中。
配置此功能前,請先進行如下配置:
· 創建VPN實例。
· SSL VPN網關設備連接用戶的接口上綁定該VPN實例。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN網關視圖。
sslvpn gateway gateway-name
(3) 配置SSL VPN網關所屬的VPN實例。
vpn-instance vpn-instance-name
缺省情況下,SSL VPN網關屬於公網。
缺省情況下,SSL VPN網關隻允許用戶以HTTPS方式登錄訪問,不允許用戶以HTTP方式登錄訪問。配置HTTP重定向功能後,SSL VPN網關將監聽指定的端口號,並把指定端口號的HTTP流量重定向到HTTPS服務監聽的端口,向客戶端發送重定向報文,讓客戶端重新以HTTPS方式登錄。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN網關視圖。
sslvpn gateway gateway-name
(3) 開啟HTTP流量的重定向功能。
http-redirect [ port port-number ]
缺省情況下,未開啟HTTP流量的重定向功能,SSL VPN網關不會處理HTTP流量。
若在SSL VPN訪問實例視圖下設置了自定義頁麵模板,則SSL VPN訪問實例視圖下定製的頁麵信息不再生效。
管理員可以根據需要對SSL VPN頁麵進行定製。目前,支持的頁麵定製項包括:登錄頁麵歡迎信息、頁麵標題、logo圖標。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 配置SSL VPN登錄頁麵的歡迎信息。
login-message { chinese chinese-message | english english-message }
缺省情況下,英文登錄頁麵的歡迎信息為“Welcome to SSL VPN”,中文登錄頁麵的歡迎信息為“歡迎進入SSL VPN”。
(4) 配置SSL VPN頁麵的標題信息。
title { chinese chinese-title | english english-title }
缺省情況下,SSL VPN頁麵的標題為“SSL VPN”。
(5) 配置SSL VPN頁麵上顯示的logo。
logo { file file-name | none }
缺省情況下,SSL VPN頁麵上顯示“H3C”logo圖標。
SSL VPN頁麵模板起到限定SSL VPN網關登錄頁麵和資源頁麵風格的作用。設備支持在係統視圖與SSL VPN訪問實例視圖下分別設置SSL VPN頁麵模板,兩種模板的作用域不同:
· 對於在係統視圖下設置的SSL VPN頁麵模板,其作用域為所有SSL VPN訪問實例。
· 對於在SSL VPN訪問實例視圖下設置的SSL VPN頁麵模板,其作用域為該SSL VPN訪問實例。
在Web管理頁麵,上傳自定義頁麵模板至設備的文件係統中。
若在係統視圖與SSL VPN訪問實例視圖下同時設置了頁麵模板,SSL VPN訪問實例視圖下設置的頁麵模板生效。
(1) 進入係統視圖。
system-view
(2) 設置SSL VPN全局頁麵模板。
sslvpn webpage-customize template-name
缺省情況下,SSL VPN全局頁麵模板為係統缺省模板。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 設置SSL VPN頁麵模板。
webpage-customize template-name
缺省情況下,未設置SSL VPN頁麵模板。
通過配置SSL VPN用戶控製,可以控製SSL VPN登錄用戶的上下線和在線數量。
(1) 進入係統視圖。
system-view
(2) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(3) 強製在線用戶下線。
force-logout [ all | session session-id | user user-name ]
(4) 配置每個用戶名的同時最大在線數。
max-onlines number
缺省情況下,同一用戶的同時最大在線數為32。
(5) 開啟達到最大在線數再登錄時強製下線功能。
force-logout max-onlines enable
缺省情況下,達到最大在線數再登錄時強製下線功能處於關閉狀態。
(6) 配置每個會話的最大連接數。
session-connections number
缺省情況下,每個會話的同時最大連接數為64。
該功能用於給各個安全引擎分配地址,以便SSL VPN網關將流量引導至對應的安全引擎處理。SSL VPN網關為各個安全引擎分配地址之後,會生成與之對應的路由表項以及引流規則。
SSL VPN的TCP接入業務或Web代理接入業務與遠端服務器建立連接時,安全引擎和分配的地址進行關聯。當SSL VPN網關向服務器發送請求時,該地址將作為請求報文的源IP地址,而服務器發送的響應報文中,目的地址將會是該地址。
SSL VPN網關收到服務器的響應報文後,會根據報文的目的地址匹配引流規則和路由表項,查找到對應的安全引擎,從而將服務器發送的報文引導至對應的安全引擎處理。
本配置中指定的地址範圍將平均分配到所有的引擎,地址範圍中包含的地址數應大於或等於引擎數。需要注意的是,一個SNAT地址池中最多允許有256個IPv4地址,最多允許配置65535個IPv6地址,且不同SNAT地址池中的IP地址不允許重疊。
· 若設備中安全引擎的數量多於1個,則SNAT地址池為必配項。
· 目前暫不支持對IPv6流量進行引流。
(1) 進入係統視圖。
system-view
(2) 創建SSL VPN SNAT地址池,並進入SSL VPN SNAT地址池視圖。
sslvpn snat-pool pool-name
(3) 配置SSL VPN SNAT地址池的IPv4地址範圍。
ip range start-ipv4-address end-ipv4-address
缺省情況下,未配置SSL VPN SNAT地址池的IPv4地址範圍。
(4) 配置SSL VPN SNAT地址池的IPv6地址範圍。
ipv6 range start-ipv6-address end-ipv6-address
缺省情況下,未配置SSL VPN SNAT地址池的IPv6地址範圍。
(5) 退回係統視圖 。
quit
(6) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(7) 配置訪問實例引用SNAT地址池。
resources snat-pool snat-pool-name
缺省情況下,SSL VPN訪問實例沒有引用SNAT地址池。
開啟SSL VPN日誌記錄功能後,用戶上線和下線時,SSL VPN網關會記錄日誌信息。生成的日誌信息將被發送到設備的信息中心,通過設置信息中心的參數,決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。(有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。)
(1) 進入係統視圖。
system-view
(2) 開啟SSL VPN全局日誌生成功能。
sslvpn log enable
缺省情況下,SSL VPN全局日誌生成功能處於關閉狀態。
(3) 進入SSL VPN訪問實例視圖。
sslvpn context context-name
(4) 開啟用戶上下線日誌生成功能。
log user-login enable
缺省情況下,用戶上下線日誌生成功能處於關閉狀態。
(5) 開啟用戶資源訪問日誌生成功能。
log resource-access enable [ brief | filtering ] *
缺失情況下,用戶訪問資源日誌生成功能處於關閉狀態。
(6) 開啟IP接入連接關閉的日誌生成功能。
ip-tunnel log connection-close
缺省情況下,IP接入連接關閉的日誌生成功能處於關閉狀態。
(7) 開啟IP接入客戶端虛擬網卡IP地址分配和釋放的日誌生成功能。
ip-tunnel log address-alloc-release
缺省情況下,IP接入客戶端虛擬網卡IP地址分配和釋放的日誌生成功能處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示SSL VPN的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令清除SSL VPN AC接口的統計信息。
表1-1 SSL VPN顯示和維護
操作 |
命令 |
顯示SSL VPN AC接口的相關信息 |
display interface sslvpn-ac [ interface-number ] [ brief [ description | down ] ] |
顯示SSL VPN訪問實例的信息 |
display sslvpn context [ brief | name context-name ] |
顯示SSL VPN網關的信息 |
display sslvpn gateway [ brief | name gateway-name ] |
顯示指定策略組的信息 |
display sslvpn policy-group group-name [ context context-name ] |
顯示TCP端口轉發的連接信息 |
(獨立運行模式) display sslvpn port-forward connection [ context context-name ] [ slot slot-number [ cpu cpu-number ] ] (IRF模式) display sslvpn port-forward connection [ context context-name ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
顯示SSL VPN會話信息 |
display sslvpn session [ context context-name ] [ user user-name | verbose ] |
顯示通過IP接入的SSL VPN用戶的報文統計信息 |
display sslvpn ip-tunnel statistics [ context context-name ] [ user user-name ] |
顯示SSL VPN頁麵模板信息 |
display sslvpn webpage-customize template |
清除SSL VPN AC接口的統計信息 |
reset counters interface [ sslvpn-ac [ interface-number ] ] |
清除通過IP接入的SSL VPN用戶的報文統計信息 |
reset sslvpn ip-tunnel statistics [ context context-name [ session session-id ] ] |
本設備暫不支持SSL VPN Web接入方式。
Device為SSL VPN網關設備,連接公網用戶和企業私有網絡VPN 1、VPN 2。用戶通過Device能夠安全地訪問位於VPN 1內的Server A和VPN 2內的Server B。其中,Server A和Server B均為Web服務器,Sever A使用HTTP協議和80端口號,Sever B使用HTTPS協議和443端口號;Device對用戶進行本地認證和本地授權。
圖1-11 Web接入組網圖
在開始下麵的配置之前,假設已完成如下配置:
· Device上已創建VPN實例,設備各接口都已綁定對應的VPN實例且接口的地址都已配置完畢。
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL服務端策略,則使用設備缺省證書。
(1) 配置路由、安全域及域間策略保證網絡可達,具體配置步驟略
(2) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 導入CA證書ca.cer和服務器證書server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服務器端策略
# 配置SSL服務器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN網關
# 配置SSL VPN網關gw的IP地址為1.1.1.2,端口號為2000,並引用SSL服務器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 開啟SSL VPN網關gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 配置SSL VPN訪問實例
# 配置SSL VPN訪問實例ctx1引用SSL VPN網關gw,指定域名為domain1,並配置SSL VPN訪問實例關聯的VPN實例為VPN1。
[Device] sslvpn context ctx1
[Device-sslvpn-context-ctx1] gateway gw domain domain1
[Device-sslvpn-context-ctx1] vpn-instance VPN1
# 創建URL表項urlitem,並配置資源的URL。
[Device-sslvpn-context-ctx1] url-item urlitem
[Device-sslvpn-context-ctx1-url-item-urlitem] url http://20.2.2.2
[Device-sslvpn-context-ctx1-url-item-urlitem] quit
# 創建URL列表urllist。
[Device-sslvpn-context-ctx1] url-list urllist
# 配置URL列表標題為web。
[Device-sslvpn-context-ctx1-url-list-urllist] heading web
# 配置URL列表引用的URL表項。
[Device-sslvpn-context-ctx1-url-list-urllist] resources url-item urlitem
[Device-sslvpn-context-ctx1-url-list-urllist] quit
# SSL VPN訪問實例ctx1下創建策略組pgroup,引用Web資源,並指定其為缺省策略組。
[Device-sslvpn-context-ctx1] policy-group pgroup
[Device-sslvpn-context-ctx1-policy-group-pgroup] resources url-list urllist
[Device-sslvpn-context-ctx1-policy-group-pgroup] quit
[Device-sslvpn-context-ctx1] default-policy-group pgroup
# 開啟SSL VPN訪問實例ctx1。
[Device-sslvpn-context-ctx1] service enable
[Device-sslvpn-context-ctx1] quit
# 配置SSL VPN訪問實例ctx2引用SSL VPN網關gw,指定域名為domain2,並配置SSL VPN訪問實例關聯的VPN實例為VPN2。
[Device] sslvpn context ctx2
[Device-sslvpn-context-ctx2] gateway gw domain domain2
[Device-sslvpn-context-ctx2] vpn-instance VPN2
# 創建URL表項urlitem,並配置資源的URL。
[Device-sslvpn-context-ctx1] url-item urlitem
[Device-sslvpn-context-ctx1-url-item-urlitem] url https://30.3.3.3
[Device-sslvpn-context-ctx1-url-item-urlitem] quit
# 創建URL列表urllist。
[Device-sslvpn-context-ctx2] url-list urllist
# 配置URL列表標題為web。
[Device-sslvpn-context-ctx2-url-list-urllist] heading web
# 配置URL列表引用的URL表項。
[Device-sslvpn-context-ctx1-url-list-urllist] resources url-item urlitem
[Device-sslvpn-context-ctx1-url-list-urllist] quit
# SSL VPN訪問實例ctx2下創建策略組pgroup,引用Web資源,並指定其為缺省策略組。
[Device-sslvpn-context-ctx2] policy-group pgroup
[Device-sslvpn-context-ctx2-policy-group-pgroup] resources url-list urllist
[Device-sslvpn-context-ctx2-policy-group-pgroup] quit
[Device-sslvpn-context-ctx2] default-policy-group pgroup
# 開啟SSL VPN訪問實例ctx2。
[Device-sslvpn-context-ctx2] service enable
[Device-sslvpn-context-ctx2] quit
(6) 配置SSL VPN用戶
# 創建本地SSL VPN用戶sslvpn,密碼為123456,用戶角色為network-operator,授權用戶的SSL VPN策略組為pgroup。
[Device] local-user sslvpn class network
[Device-luser-network-sslvpn] password simple 123456
[Device-luser-network-sslvpn] service-type sslvpn
[Device-luser-network-sslvpn] authorization-attribute user-role network-operator
[Device-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup
[Device-luser-network-sslvpn] quit
# 在Device上查看SSL VPN網關狀態,可見SSL VPN網關gw處於Up狀態。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 2000
SSL server policy configured: ssl
SSL server policy in use: ssl
Front VPN instance: Not configured
# 在Device上查看SSL VPN訪問實例狀態,可見SSL VPN訪問實例ctx1和ctx2均處於Up狀態。
[Device] display sslvpn context
Context name: ctx1
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Code verification: Disabled
Default policy group: pgroup
Associated SSL VPN gateway: gw
Domain name: domain1
SSL client policy configured: ssl
SSL client policy in use: ssl
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
Context name: ctx2
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Code verification: Disabled
Default policy group: pgroup
Associated SSL VPN gateway: gw
Domain name: domain2
SSL client policy configured: ssl
SSL client policy in use: ssl
Maximum users allowed: 1048575
VPN instance: VPN2
Idle timeout: 30 min
# 用戶在PC瀏覽器上輸入https://1.1.1.2:2000/,進入Domain List頁麵。
圖1-12 Domain List頁麵
# 用戶選擇domain1進入登錄頁麵,輸入用戶sslvpn和密碼123456,點擊<登錄>按鈕,可以成功登錄。
圖1-13 登錄頁麵
# 用戶登錄成功後,在Device上可以看到用戶會話信息。
[Device] display sslvpn session context ctx1
SSL VPN context: ctx1
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:12:05 0/00:04:14 40.1.1.1
# 網關首頁的“書簽”欄顯示用戶可以訪問的遠端web資源。
圖1-14 網關首頁
# 點擊serverA,可以進入Web服務器Server A的HTTP網站首頁麵,且在瀏覽器的地址欄中顯示如下格式的URL:https://1.1.1.2:2000/_proxy2/http/80/20.2.2.2/。
# 用戶退出登錄,重啟瀏覽器,重新輸入https://1.1.1.2:2000/,選擇domain2進入登錄頁麵,輸入用戶名sslvpn和密碼123456,可以登錄成功。
# 用戶登錄成功後,在Device上可以看到用戶會話信息。
[Device] display sslvpn session context ctx2
SSL VPN context: ctx2
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:02:05 0/00:01:11 40.1.1.1
# 網關首頁的“書簽”欄顯示用戶可以訪問的遠端web資源。
圖1-15 網關首頁
# 點擊serverB,可以進入Web服務器Server B的HTTPS網站頁麵,且在瀏覽器的地址欄中顯示如下格式的URL:https://1.1.1.2:2000/_proxy2/https/443/30.3.3.3/。
Device為SSL VPN網關設備,連接公網用戶和企業私有網絡VPN 1。用戶通過Device可以安全地訪問VPN 1內的Telnet服務器Server。Device采用本地認證和授權方式對用戶進行認證和授權。
圖1-16 TCP接入配置組網圖
在開始下麵的配置之前,假設已完成如下配置:
· Device上已創建VPN實例,設備各接口都已綁定對應的VPN實例且接口的地址都已配置完畢。
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL 服務端策略,則使用設備缺省證書。
· SSL VPN用戶主機上需要安裝Java運行環境。
(1) 配置路由、安全域及域間策略保證網絡可達,具體配置步驟略
(2) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 導入CA證書ca.cer和服務器證書server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服務器端策略
# 配置SSL服務器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN網關
# 配置SSL VPN網關gw的IP地址為1.1.1.2,端口號為2000,並引用SSL服務器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 開啟SSL VPN網關gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 配置SSL VPN訪問實例
# 配置SSL VPN訪問實例ctx引用SSL VPN網關gw,並配置SSL VPN訪問實例關聯的VPN實例為VPN1。
[Device] sslvpn context ctx
[Device-sslvpn-context-ctx] gateway gw
[Device-sslvpn-context-ctx] vpn-instance VPN1
# 創建端口轉發表項pfitem1。
[Device-sslvpn-context-ctx] port-forward-item pfitem1
# 添加端口轉發實例,將20.2.2.2提供的Telnet服務映射到本地地址127.0.0.1、本地端口2323。
[Device-sslvpn-context-ctx-port-forward-item-pfitem1] local-port 2323 local-name 127.0.0.1 remote-server 20.2.2.2 remote-port 23 description telnet
[Device-sslvpn-context-ctx-port-forward-item-pfitem1] quit
# 創建端口轉發列表plist,並引用端口轉發表項pfitem1。
[Device-sslvpn-context-ctx] port-forward plist
[Device-sslvpn-context-ctx-port-forward-plist] resources port-forward-item pfitem1
[Device-sslvpn-context-ctx-port-forward-plist] quit
# 創建SSL VPN策略組pgroup,並引用端口轉發列表plist。
[Device-sslvpn-context-ctx] policy-group pgroup
[Device-sslvpn-context-ctx-policy-group-pgroup] resources port-forward plist
[Device-sslvpn-context-ctx-policy-group-pgroup] quit
# 開啟SSL VPN訪問實例ctx。
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(6) 配置SSL VPN用戶
# 創建本地SSL VPN用戶sslvpn,密碼為123456,用戶角色為network-operator,授權用戶的SSL VPN策略組為pgroup。
[Device] local-user sslvpn class network
[Device-luser-network-sslvpn] password simple 123456
[Device-luser-network-sslvpn] service-type sslvpn
[Device-luser-network-sslvpn] authorization-attribute user-role network-operator
[Device-luser-network-sslvpn] authorization-attribute sslvpn-policy-group pgroup
[Device-luser-network-sslvpn] quit
# 在Device上查看SSL VPN網關狀態,可見SSL VPN網關gw處於Up狀態。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 2000
SSL server policy configured: ssl
SSL server policy in use: ssl
Front VPN instance: Not configured
# 在Device上查看SSL VPN訪問實例狀態,可見SSL VPN訪問實例ctx處於Up狀態。
[Device] display sslvpn context
Context name: ctx
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
SSL client policy configured: ssl
SSL client policy in use: ssl
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
# 用戶在PC瀏覽器上輸入https://1.1.1.2:2000/,進入登錄頁麵後,輸入用戶名sslvpn和密碼123456,用戶可以成功登錄。
圖1-17 登錄頁麵
# 用戶登錄成功後,在網頁的應用程序欄中選擇“啟動TCP客戶端應用程序”。
# 單擊<啟動>按鈕,下載TCP接入客戶端軟件並運行。
不能通過雙擊的方式打開對應的TCP應用程序。
# 用戶在PC上執行telnet 127.0.0.1 2323,可以遠程連接到Server,顯示信息略。
# 在Device上可以看到用戶會話信息。
[Device] display sslvpn session context ctx
SSL VPN context: ctx
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:12:05 0/00:04:14 40.1.1.1
# 在Device上可以看到TCP端口轉發的連接信息。
[Device] display sslvpn port-forward connection
SSL VPN context : ctx
Client address : 40.1.1.1
Client port : 50788
Server address : 20.2.2.2
Server port : 23
State : Connected
Device為SSL VPN網關設備,連接公網用戶和企業私有網絡。用戶通過Device可以通過IP
接入方式安全地訪問私有網絡內的Server。Device采用本地認證和授權方式對用戶進行認證和授權。
圖1-18 IP接入配置組網圖
在開始下麵的配置之前,假設已完成如下配置:
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL 服務端策略,則使用設備缺省證書。
· Server上存在到達網段10.1.1.0/24的路由。
(1) 配置接口IP地址、路由、安全域及域間策略保證網絡可達,具體配置步驟略
(2) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 導入CA證書ca.cer和服務器證書server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服務器端策略
# 配置SSL服務器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN網關
# 配置SSL VPN網關gw的IP地址為1.1.1.2,端口號為4430,並引用SSL服務器端策略ssl。
<Device> system-view
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 4430
[Device-sslvpn-gateway-gw] ssl server-policy ssl
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 創建SSL VPN客戶端地址池
# 創建為SSL VPN客戶端分配地址的地址池sslvpnpool,地址範圍為10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool sslvpnpool 10.1.1.1 10.1.1.10
(6) 創建SSL VPN AC接口
# 創建SSL VPN AC接口1,配置該接口的IP地址為10.1.1.100/24。
[Device] interface sslvpn-ac 1
[Device-SSLVPN-AC1] ip address 10.1.1.100 24
[Device-SSLVPN-AC1] quit
(7) 配置SSL VPN訪問實例
# 配置SSL VPN訪問實例ctxip,引用SSL VPN網關gw,指定域名為domainip。
[Device] sslvpn context ctxip
[Device-sslvpn-context-ctxip] gateway gw domain domainip
# 配置IP接入引用的SSL VPN AC接口1.
[Device-sslvpn-context-ctxip] ip-tunnel interface sslvpn-ac 1
# 創建路由表rtlist,並添加路由表項20.2.2.0/24。
[Device-sslvpn-context-ctxip] ip-route-list rtlist
[Device-sslvpn-context-ctxip-route-list-rtlist] include 20.2.2.0 24
[Device-sslvpn-context-ctxip-route-list-rtlist] quit
# 引用SSL VPN客戶端地址池sslvpnpool。
[Device-sslvpn-context-ctxip] ip-tunnel address-pool sslvpnpool mask 24
# 創建SSL VPN策略組resourcegrp,引用路由列表rtlist,並同時配置對IP接入進行ACL過濾。
[Device-sslvpn-context-ctxip] policy-group resourcegrp
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] ip-tunnel access-route ip-route-list rtlist
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] filter ip-tunnel acl 3000
[Device-sslvpn-context-ctxip-policy-group-resourcegrp] quit
# 開啟SSL VPN訪問實例ctxip。
[Device-sslvpn-context-ctxip] service enable
[Device-sslvpn-context-ctxip] quit
# 創建ACL 3000,規則為允許源IP為10.1.1.0/24的報文訪問目標IP網段20.2.2.0/24。
[Device] acl advanced 3000
[Device-acl-ipv4-adv-3000] rule permit ip source 10.1.1.0 0.0.0.255 destination 20.2.2.0 0.0.0.255
[Device-acl-ipv4-adv-3000] quit
(8) 配置SSL VPN用戶
# 創建本地SSL VPN用戶sslvpnuser,密碼為123456,用戶角色為network-operator,授權用戶的SSL VPN策略組為resourcegrp。
[Device] local-user sslvpnuser class network
[Device-luser-network-sslvpnuser] password simple 123456
[Device-luser-network-sslvpnuser] service-type sslvpn
[Device-luser-network-sslvpnuser] authorization-attribute sslvpn-policy-group resourcegrp
[Device-luser-network-sslvpnuser] authorization-attribute user-role network-operator
[Device-luser-network-sslvpnuser] quit
# 在Device上查看SSL VPN網關狀態,可見SSL VPN網關gw處於Up狀態。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 4430
Front VPN instance: Not configured
# 在Device上查看SSL VPN訪問實例狀態,可見SSL VPN訪問實例ctx處於Up狀態。
[Device] display sslvpn context
Context name: ctxip
Operation state: Up
AAA domain: Not specified
Certificate authentication: Disabled
Password authentication: Enabled
Authentication use: All
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
Domain name: domainip
Maximum users allowed: 1048575
VPN instance: Not configured
Idle timeout: 30 min
# SSL VPN用戶sslvpnuser在PC瀏覽器上輸入https://1.1.1.2:4430/,進入Domain List頁麵,如下圖所示。
圖1-19 Domain List頁麵
# 選擇domainip進入登錄頁麵,輸入用戶sslvpnuser和密碼123456。
圖1-20 登錄頁麵
# 單擊<登錄>按鈕,可以成功登錄SSL VPN網關。在網頁的應用程序欄中選擇“啟動IP客戶端應用程序”。
# 單擊<啟動>按鈕,下載IP接入客戶端軟件Svpnclient並安裝,安裝完成後,啟動iNode客戶端,輸入如下圖所示的參數。
圖1-21 iNode客戶端
# 單擊<連接>按鈕,成功登錄SSL VPN客戶端,如下圖所示。
圖1-22 成功登錄SSL VPN網關
# SSL VPN用戶sslvpnuser可以Ping通服務器地址20.2.2.2。
C:\>ping 20.2.2.2
Pinging 20.2.2.2 with 32 bytes of data:
Reply from 20.2.2.2: bytes=32 time=31ms TTL=254
Reply from 20.2.2.2: bytes=32 time=18ms TTL=254
Reply from 20.2.2.2: bytes=32 time=15ms TTL=254
Reply from 20.2.2.2: bytes=32 time=16ms TTL=254
Ping statistics for 20.2.2.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 15ms, Maximum = 31ms, Average = 20ms
# 在Device上可以看到SSL VPN用戶sslvpnuser的會話信息。
[Device] display sslvpn session user sslvpnuser
User : sslvpnuser
Context : ctxip
Policy group : resourcegrp
Idle timeout : 30 min
Created at : 16:38:48 UTC Wed 07/26/2017
Lastest : 16:47:41 UTC Wed 07/26/2017
User IPv4 address : 172.16.1.16
Alloced IP : 10.1.1.1
Session ID : 14
Web browser/OS : Windows
Device為SSL VPN網關設備,連接公網用戶和企業私有網絡VPN 1。用戶通過Device可以通過IP接入方式安全地訪問VPN 1內的Server。Device通過RADIUS server采用遠程認證和授權方式對用戶進行認證和授權。
圖1-23 RADIUS認證、授權配置組網圖
在開始下麵的配置之前,假設已完成如下配置:
· Device上已創建VPN實例,設備各接口都已綁定對應的VPN實例且接口的地址都已配置完畢。
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL 服務端策略,則使用設備缺省證書。
· Server上存在到達網段10.1.1.0/24的路由。
· RADIUS server已經部署完成,能夠對用戶進行認證和授權。
(1) 配置路由、安全域及域間策略保證網絡可達,具體配置步驟略
(2) 配置PKI域
# 配置PKI域sslvpn。
<Device> system-view
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
# 導入CA證書ca.cer和服務器證書server.pfx。
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服務器端策略
# 配置SSL服務器端策略ssl。
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN網關
# 配置SSL VPN網關gw的IP地址為1.1.1.2,端口號為2000,並引用SSL服務器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
# 開啟SSL VPN網關gw。
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 創建SSL VPN客戶端地址池
# 創建地址池ippool,指定IP地址範圍為10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool ippool 10.1.1.1 10.1.1.10
(6) 創建SSL VPN AC接口
# 創建SSL VPN AC接口1,配置該接口綁定VPN實例VPN1,並配置接口的IP地址為10.1.1.100/24。
[Device] interface sslvpn-ac 1
[Device-SSLVPN-AC1] ip binding vpn-instance VPN1
[Device-SSLVPN-AC1] ip address 10.1.1.100 24
[Device-SSLVPN-AC1] quit
(7) 配置SSL VPN訪問實例
# 配置SSL VPN訪問實例ctx引用SSL VPN網關gw,並配置SSL VPN訪問實例關聯的VPN實例為VPN1。
[Device] sslvpn context ctx
[Device-sslvpn-context-ctx] gateway gw
[Device-sslvpn-context-ctx] vpn-instance VPN1
# 配置SSL VPN訪問實例使用ISP域domain1進行AAA認證。
[Device-sslvpn-context-ctx] aaa domain domain1
# 創建路由列表rtlist,並添加路由表項20.2.2.0/24。
[Device-sslvpn-context-ctx] ip-route-list rtlist
[Device-sslvpn-context-ctx-route-list-rtlist] include 20.2.2.0 255.255.255.0
[Device-sslvpn-context-ctx-route-list-rtlist] quit
# 創建名稱為uriacl的URI ACL,並創建對應的URI ACL過濾規則。
[Device-sslvpn-context-ctx] uri-acl uriacl
[Device-sslvpn-context-ctx-uri-acl-uriacl] rule 1 permit uri icmp://20.2.2.0
[Device-sslvpn-context-ctx-uri-acl-uriacl] quit
# 配置SSL VPN訪問實例ctx引用SSL VPN AC接口1
[Device-sslvpn-context-ctx] ip-tunnel interface sslvpn-ac 1
# 配置SSL VPN訪問實例ctx引用地址池ippool。
[Device-sslvpn-context-ctx] ip-tunnel address-pool ippool mask 255.255.255.0
# 創建SSL VPN策略組pgroup,引用路由列表rtlist,並同時配置對IP接入進行URI ACL過濾。
[Device-sslvpn-context-ctx] policy-group pgroup
[Device-sslvpn-context-ctx-policy-group-pgroup] ip-tunnel access-route ip-route-list rtlist
[Device-sslvpn-context-ctx-policy-group-pgroup] filter ip-tunnel uri-acl uriacl
[Device-sslvpn-context-ctx-policy-group-pgroup] quit
# 開啟SSL VPN訪問實例ctx。
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(8) 配置RADIUS
# 配置Radius方案rscheme,指定認證和授權服務器地址均為3.3.3.2、認證和授權的共享密鑰均為123456、發送給RADIUS服務器的用戶名格式為不攜帶ISP域名。
[Device] radius scheme rscheme
[Device-radius-rscheme] primary authentication 3.3.3.2
[Device-radius-rscheme] primary accounting 3.3.3.2
[Device-radius-rscheme] accounting-on enable
[Device-radius-rscheme] key authentication simple 123456
[Device-radius-rscheme] key accounting simple 123456
[Device-radius-rscheme] user-name-format without-domain
[Device-radius-rscheme] quit
(9) 配置用戶組
# 配置用戶組group1,授權給該用戶組的策略組為pgroup。
[Device] user-group group1
[Device-ugroup-group1] authorization-attribute sslvpn-policy-group pgroup
[Device-ugroup-group1] quit
(10) 配置ISP域
# 配置ISP域domain1,指定用戶授權屬性為用戶組group1,認證、授權和計費使用的RADIUS方案為rscheme。
[Device] domain domain1
[Device-isp-domain1] authorization-attribute user-group group1
[Device-isp-domain1] authentication sslvpn radius-scheme rscheme
[Device-isp-domain1] authorization sslvpn radius-scheme rscheme
[Device-isp-domain1] accounting sslvpn radius-scheme rscheme
[Device-isp-domain1] quit
# 在Device上查看SSL VPN網關狀態,可見SSL VPN網關gw處於Up狀態。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 2000
SSL server policy configured: ssl
SSL server policy in use: ssl
Front VPN instance: Not configured
# 在Device上查看SSL VPN訪問實例狀態,可見SSL VPN訪問實例ctx處於Up狀態。
[Device] display sslvpn context
Context name: ctx
Operation state: Up
AAA domain: domain1
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
SSL client policy configured: ssl
SSL client policy in use: ssl
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
# 用戶在PC上啟動IP接入客戶端軟件,輸入訪問地址1.1.1.2、端口號2000、用戶名sslvpn、密碼123456,登錄成功。
# 在Device上可以看到用戶會話信息。
[Device] display sslvpn session context ctx
SSL VPN context: ctx
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:02:05 0/00:03:14 40.1.1.1
# 在PC上查看IPv4路由表,其中40.1.1.1/24為本地網卡地址,10.1.1.1/24為SSL VPN網關設備分配給用戶的地址,20.2.2.0/24為到達內部服務器Server的路由。
>route -4 print
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
10.1.1.0 255.255.255.0 On-link 10.1.1.1 276
10.1.1.1 255.255.255.255 On-link 10.1.1.1 276
10.1.1.255 255.255.255.255 On-link 10.1.1.1 276
20.2.2.0 255.255.255.0 On-link 10.1.1.1 276
20.2.2.255 255.255.255.255 On-link 10.1.1.1 276
40.1.1.0 255.255.255.0 On-link 40.1.1.1 276
40.1.1.1 255.255.255.255 On-link 40.1.1.1 276
40.1.1.255 255.255.255.255 On-link 40.1.1.1 276
===========================================================================
# 在PC上可以Ping通服務器地址20.2.2.2。
C:\>ping 20.2.2.2
Pinging 20.2.2.2 with 32 bytes of data:
Reply from 20.2.2.2: bytes=32 time=197ms TTL=254
Reply from 20.2.2.2: bytes=32 time=1ms TTL=254
Reply from 20.2.2.2: bytes=32 time=1ms TTL=254
Reply from 20.2.2.2: bytes=32 time=186ms TTL=254
Ping statistics for 20.2.2.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 197ms, Average = 96ms
Device為SSL VPN網關設備,連接公網用戶和企業私有網絡VPN 1。用戶通過Device可以通過IP接入方式安全地訪問VPN 1內的Server。Device通過LDAP server采用遠程認證和授權方式對用戶進行認證和授權。
圖1-24 LDAP認證、授權配置組網圖
· 本文以Microsoft Windows Server 2008 R2的Active Directory為例,說明該例中LDAP服務器的基本配置。
· 在LDAP服務器上設置管理員admin的密碼為admin!123456。
· 在LDAP服務器上添加用戶名為sslvpn的用戶,密碼為ldap!123456,所屬組織單位為sslvpn_usergroup,隸屬於用戶組users。
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL 服務端策略,則使用設備缺省證書。
(1) 新建組織單位sslvpn_usergroup
a. 在LDAP服務器上,選擇[開始/管理工具]中的[Active Directory用戶和計算機],打開Active Directory用戶和計算機界麵;
b. 在Active Directory用戶和計算機界麵的左側導航樹中,右鍵單擊ldap.com,選擇[新建/組織單位],打開[新建對象-組織單位]對話框;
c. 在對話框中輸入組織單位名稱sslvpn_usergroup,並單擊<確定>按鈕。
圖1-25 新建組織單位sslvpn_usergroup
(2) 新建用戶sslvpn所屬組織單位為sslvpn_usergroup
a. 在Active Directory用戶和計算機界麵的左側導航樹中,右鍵單擊sslvpn_usergroup,選擇[新建/用戶],打開[新建對象-用戶]對話框;
b. 在對話框中輸入姓名和用戶登錄名為sslvpn,並單擊<下一步>按鈕。
圖1-26 新建用戶sslvpn
c. 在彈出的對話框的“密碼”區域框內輸入用戶密碼ldap!123456,並單擊<下一步>按鈕。用戶賬戶的其它屬性(密碼的更改方式、密碼的生存方式、是否禁用賬戶)請根據實際情況選擇配置,圖中僅為示例。
圖1-27 設置用戶密碼
d. 單擊<完成>按鈕,創建新用戶sslvpn。
(3) 將用戶sslvpn加入Users組。
在Active Directory用戶和計算機界麵的左側導航樹中,單擊sslvpn_usergroup,在右側信息框中右鍵單擊用戶sslvpn,選擇“屬性”項;
在彈出的[sslvpn屬性]對話框中選擇“隸屬於”頁簽,並單擊<添加(D)...>按鈕。
圖1-28 修改用戶屬性
在彈出的[選擇組]對話框中的可編輯區域框中輸入對象名稱“Users”,單擊<確定>,完成用戶sslvpn添加到Users組。
圖1-29 添加用戶sslvpn到用戶組Users
在開始下麵的配置之前,假設已完成如下配置:
· Device上已創建VPN實例,設備各接口都已綁定對應的VPN實例且接口的地址都已配置完畢。
· Device已獲取到CA證書ca.cer和服務器證書server.pfx,若SSL VPN網關不引用SSL 服務端策略,則使用設備缺省證書。
· Server上存在到達網段10.1.1.0/24的路由。
· LDAP server已經部署完成,能夠對用戶進行認證和授權。
(1) 配置路由、安全域及域間策略保證網絡可達,具體配置步驟略
(2) 配置PKI域,設置證書申請所需的相關參數
[Device] pki domain sslvpn
[Device-pki-domain-sslvpn] public-key rsa general name sslvpn
[Device-pki-domain-sslvpn] undo crl check enable
[Device-pki-domain-sslvpn] quit
[Device] pki import domain sslvpn der ca filename ca.cer
[Device] pki import domain sslvpn p12 local filename server.pfx
(3) 配置SSL服務器端策略,引用PKI域
[Device] ssl server-policy ssl
[Device-ssl-server-policy-ssl] pki-domain sslvpn
[Device-ssl-server-policy-ssl] quit
(4) 配置SSL VPN網關,為用戶提供訪問SSL VPN網關的入口
# 配置SSL VPN網關gw的IP地址為1.1.1.2,端口號為2000,並引用SSL服務器端策略ssl。
[Device] sslvpn gateway gw
[Device-sslvpn-gateway-gw] ip address 1.1.1.2 port 2000
[Device-sslvpn-gateway-gw] ssl server-policy ssl
[Device-sslvpn-gateway-gw] service enable
[Device-sslvpn-gateway-gw] quit
(5) 創建SSL VPN客戶端地址池,用於為IP接入客戶端分配IP地址
# 創建地址池ippool,指定IP地址範圍為10.1.1.1~10.1.1.10。
[Device] sslvpn ip address-pool ippool 10.1.1.1 10.1.1.10
(6) 配置LDAP,用於認證SSL VPN用戶
[Device] ldap server ldap1
[Device-ldap-server-ldap1] ip 3.3.3.2
[Device-ldap-server-ldap1] login-dn cn=admin,cn=users,dc=ldap,dc=com
[Device-ldap-server-ldap1] login-password simple admin!123456
[Device-ldap-server-ldap1] search-base-dn dc=ldap,dc=com
[Device-ldap-server-ldap1] quit
[Device] ldap attribute-map test
[Device-ldap-attr-map-test] map ldap-attribute memberof prefix cn= delimiter , aaa-attribute user-group
[Device-ldap-attr-map-test] quit
[Device] ldap scheme shml
[Device-ldap-shml] authentication-server ldap1
[Device-ldap-shml] authorization-server ldap1
[Device-ldap-shml] attribute-map test
[Device-ldap-shml] quit
(7) 配置ISP域,通過ISP域對SSL VPN用戶進行認證
# 創建ISP域bbb,為SSL VPN用戶配置AAA認證方法為LDAP認證、LDAP授權、不計費。
[Device] domain bbb
[Device-isp-bbb] authentication sslvpn ldap-scheme shml
[Device-isp-bbb] authorization sslvpn ldap-scheme shml
[Device-isp-bbb] accounting sslvpn none
[Device-isp-bbb] quit
(8) 配置SSL VPN訪問實例,為用戶提供不同的SSL VPN服務
# 配置SSL VPN訪問實例ctx引用SSL VPN網關gw,並配置SSL VPN訪問實例關聯的VPN實例為VPN1。
[Device] sslvpn context ctx
[Device-sslvpn-context-ctx] gateway gw
[Device-sslvpn-context-ctx] vpn-instance VPN1
[Device-sslvpn-context-ctx] aaa domain bbb
[Device-sslvpn-context-ctx] ip-route-list rtlist
[Device-sslvpn-context-ctx-route-list-rtlist] include 20.2.2.0 255.255.255.0
[Device-sslvpn-context-ctx-route-list-rtlist] quit
[Device-sslvpn-context-ctx] uri-acl uriacl
[Device-sslvpn-context-ctx-uri-acl-uriacl] rule 1 permit uri icmp://20.2.2.0
[Device-sslvpn-context-ctx-uri-acl-uriacl] quit
[Device-sslvpn-context-ctx] ip-tunnel interface sslvpn-ac 1
[Device-sslvpn-context-ctx] ip-tunnel address-pool ippool mask 255.255.255.0
[Device-sslvpn-context-ctx] policy-group pgroup
[Device-sslvpn-context-ctx-policy-group-pgroup] ip-tunnel access-route ip-route-list rtlist
[Device-sslvpn-context-ctx-policy-group-pgroup] filter ip-tunnel uri-acl uriacl
[Device-sslvpn-context-ctx-policy-group-pgroup] quit
[Device-sslvpn-context-ctx] service enable
[Device-sslvpn-context-ctx] quit
(9) 配置本地用戶組,基於用戶組對用戶進行授權
# 創建本地用戶組users,指定授權SSL VPN策略組為pgroup。
[Device] user-group users
[Device-ugroup-users] authorization-attribute sslvpn-policy-group pgroup
[Device-ugroup-users] quit
# 在Device上查看SSL VPN網關狀態,可見SSL VPN網關gw處於Up狀態。
[Device] display sslvpn gateway
Gateway name: gw
Operation state: Up
IP: 1.1.1.2 Port: 2000
SSL server policy configured: ssl
SSL server policy in use: ssl
Front VPN instance: Not configured
# 在Device上查看SSL VPN訪問實例狀態,可見SSL VPN訪問實例ctx處於Up狀態。
[Device] display sslvpn context
Context name: ctx
Operation state: Up
AAA domain: domain1
Certificate authentication: Disabled
Password authentication:Enabled
Authentication use: All
Dynamic password: Disabled
Code verification: Disabled
Default policy group: Not configured
Associated SSL VPN gateway: gw
SSL client policy configured: ssl
SSL client policy in use: ssl
Maximum users allowed: 1048575
VPN instance: VPN1
Idle timeout: 30 min
# 用戶在PC上啟動IP接入客戶端軟件,輸入訪問地址1.1.1.2、端口號2000、用戶名sslvpn、密碼123456,登錄成功。
# 在Device上可以看到用戶會話信息。
[Device] display sslvpn session context ctx
SSL VPN context: ctx
Users: 1
Username Connections Idle time Created User IP
sslvpn 6 0/00:02:05 0/00:03:14 40.1.1.1
# 在PC上查看IPv4路由表,其中40.1.1.1/24為本地網卡地址,10.1.1.1/24為SSL VPN網關設備分配給用戶的地址,20.2.2.0/24為到達內部服務器Server的路由。
>route -4 print
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
10.1.1.0 255.255.255.0 On-link 10.1.1.1 276
10.1.1.1 255.255.255.255 On-link 10.1.1.1 276
10.1.1.255 255.255.255.255 On-link 10.1.1.1 276
20.2.2.0 255.255.255.0 On-link 10.1.1.1 276
20.2.2.255 255.255.255.255 On-link 10.1.1.1 276
40.1.1.0 255.255.255.0 On-link 40.1.1.1 276
40.1.1.1 255.255.255.255 On-link 40.1.1.1 276
40.1.1.255 255.255.255.255 On-link 40.1.1.1 276
===========================================================================
# 在PC上可以Ping通服務器地址20.2.2.2。
C:\>ping 20.2.2.2
Pinging 20.2.2.2 with 32 bytes of data:
Reply from 20.2.2.2: bytes=32 time=197ms TTL=254
Reply from 20.2.2.2: bytes=32 time=1ms TTL=254
Reply from 20.2.2.2: bytes=32 time=1ms TTL=254
Reply from 20.2.2.2: bytes=32 time=186ms TTL=254
Ping statistics for 20.2.2.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 197ms, Average = 96ms
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!