■ 山東 欒曉鵬 孫紅春
筆者公司配置了深信服VPN 3150設備,為異地園區和出差員工提供IPSec VPN與SSL VPN服務。隨著客戶端操作系統的多樣化、移動化越來越嚴重,加之需要訪問的VPN資源也不僅局限于TCP服務,為此,對于SSL VPN的資源建立我們根據需要設置了TCP應用及L3VPN應用。
資源性質中的TCP應用與L3VPN應用還是有較大區別的,TCP應用需要在VPN客戶端IE瀏覽器上安裝一個ProxyIE控件,通過該控件實現TCP與SSL協議數據轉換。客戶端數據提交到SSL VPN設備后,由SSL VPN設備發起對資源服務器的訪問。此方式僅支持TCP應用。L3VPN應用需要在VPN客戶端安裝虛擬網卡,這一點與IPSec方式類似,通過虛擬網卡與SSL VPN設備間建立隧道并封裝傳輸數據。此方式支持所有TCP、UDP、ICMP應用。另外,如果資源服務器需要主動訪問VPN客戶端時,資源應用只能選用L3VPN而不是TCP了。

圖1 登錄時的SSL VPN連接狀態

圖2 登錄數秒后的SSL VPN連接狀態
異地用戶通過Windows 7、Windows 8等系統訪問公司SSL VPN資源正常。相同的鏈路、賬戶、網絡及IE設置,使用Windows 10訪問公司SSL VPN資源,可以登錄到VPN且能看到資源列表,但是無法正常使用VPN資源。
Windows 10自帶IE及Edge兩款瀏覽器。檢查IE的Internet屬性→高級設置,確保“使用SSL 3.0”和“使用TLS 1.0”已勾選。
運 行 services.msc,檢查“Routing and Remote Access”、“Device Install Service”、“Device Setup Manager”服務,確保這三項系統服務啟動運行。
提交SSL VPN賬戶與密碼,桌面右下角提示VPN已連接,但經過仔細觀察,在登錄后的數秒后,虛擬IP地址由正常的地址池分配IP(2.0.1.8)變成了“未分配”狀態(如圖 1、圖 2)。
4.在SSL VPN登錄界面下載svpntool工具(SSL VPN控件調試修復工具)進行控件修復,并啟動DebugView工具對登錄VPN過程進行抓包日志分析。

圖3 登錄初期日志節選(隧道建立、服務器下發資源)

圖4 登錄過程的報錯日志

圖5 設備管理器中網絡適配器狀態
根據日志分析,登錄初期,客戶端與VPN設備建立了正常的隧道,并獲取了VPN服務器下發資源(如圖3)。但在后續的日志中出現了“獲取虛擬網卡信息失敗”錯誤(如圖4)。這個錯誤提示與登錄狀態未分配到虛擬IP地址現象相呼應,于是解決問題的關注點集中在虛擬網卡上了。
進入系統設備管理器查看虛擬網卡設備狀態,網絡適配器設備狀態中,VPN虛擬網卡“Sangfor SSL VPN CS Support System VNIC”處于設備隱藏且停用狀態。找到了問題所在,啟用VPN虛擬網卡。重新登錄SSL VPN,驗證功能,故障排除。
對于SSL VPN的登錄使用問題,首先應保證IE瀏覽器及系統的相關服務正確配置與啟用;再根據出現的問題配以網絡分析工具加以診斷。在實際運維工作中出現問題時,往往僅根據故障現象很難進行準確定位和排查,這時通過網絡抓包工具(Sniffer、Wireshark等)或專門的診斷日志分析工具,可以很方便地進行故障定位,同時,對各種通訊過程、協議學習都有很大的幫助。另外,根據虛擬網卡在Windows 7與Windows 10系統的中安裝對比,Windows 10對虛擬設備雖然安裝好驅動,但需手動啟用,實際使用較為不便,不過從安全性角度考慮,這一點還是值得肯定的。