VPN技術在圖書館應用已久,但是面對數字資源種類繁多的授權訪問方式,導緻使用過程中出現了諸多問題,如:Web代理方式的VPN訪問國外的部分數據庫時,經常會出現浏覽器無法自動跳轉的情況;僅提供Web訪問的VPN無法滿足客戶端和移動端的App的使用;需要安裝浏覽器插件的VPN無法在移動終端上使用。
鑒于此,筆者将圖書館數字資源的訪問方式分為三類:第一類,Web頁面訪問的數字資源,如大多數電子數據庫;第二類,客戶端訪問,如Endnote、NoteExpress等文獻管理軟件;第三類,移動終端訪問,如書香中國、超星等需要在移動終端閱讀的電子書。本文旨在選擇一種VPN,可以滿足數字資源的各類訪問要求,提升用戶體驗。
01
VPN技術的選擇
VPN技術對比
目前,VPN技術主要包括:PPTP、L2TP/IPSec、SSLVPN、OpenVPN和WebVPN幾種,筆者通過表1對五種VPN進行對比。
表1 常見VPN技術比較
PPTP、L2TP/IPSec對網絡要求很高,當運營商的網絡存在地址轉換設備時,将無法正常連接。目前,最常用的VPN技術主要為SSL VPN和WebVPN。
WebVPN提供基于Web的内網應用訪問控制,允許授權用戶訪問隻對内網開放的Web應用,實現類似VPN的功能。區别于傳統VPN技術,WebVPN無需用戶做任何配置或安裝客戶端軟件及浏覽器插件,直接在網頁上通過身份驗證即可進入内網應用,大大降低了使用門檻,提升了用戶體驗感。但是,WebVPN隻适用于采用B/S架構的Web浏覽器的應用,而對C/S架構的客戶端和移動端的應用無法支持。
SSL VPN是以SSL協議為安全基礎的VPN遠程接入技術。遠程用戶使用SSLVPN可以安全方便地接入内網,訪問内網資源;無需安裝額外軟件,直接使用浏覽器訪問内網Web資源,也可以通過安裝浏覽器插件,訪問其他非Web資源;SSL VPN既支持全局流量,也支持局部流量,根據不同用戶的身份,分配不同的訪問權限,實現精細控制。
OpenVPN作為一個開源軟件,就是一個典型的SSL VPN應用,使用的是工業标準的SSL/TLS協議。OpenVPN不是一個基于Web代理的應用,也不是基于浏覽器訪問,而是需要安裝專門的客戶端,其客戶端可以支持當前所有主流終端類型。
OpenVPN技術
OpenVPN的技術核心是虛拟網卡,其次是SSL協議實現。虛拟網卡工作原理如圖1所示。
圖1 虛拟網卡工作原理
OpenVPN是一個基于SSL加密的純應用層VPN協議,是SSL VPN的一種,支持UDP與TCP兩種方式。UDP的效率會比較高,速度也相對較快。所以,盡量使用UDP連接方式,如果網絡延遲高或者丢包嚴重,再使用TCP連接方式。
OpenVPN支持全局流量和局部流量兩種方式,客戶端軟件可以很方便地配合路由表,實現不同線路的路由選擇,實現一部分目标IP走VPN,另一部分目标IP走本地網絡。
02
遠程訪問系統的功能設計與實現
OpenVPN功能設計
OpenVPN是一個強大、高度可配置的開源軟件,可以根據場景和業務需求進行靈活部署。OpenVPN工作在OSI模型的第2層或第3層,使用SSL/TLS協議進行網絡傳輸,支持多種認證方法,如證書、加上用戶名密碼的證書認證,還支持與LDAP等認證系統進行對接;支持多台部署以實現高可用與負載均衡;不但支持全流量的全路由模式,還支持指定流量的局部路由模式;具有完整的日志記錄功能,支持通過自定義腳本實現用戶訪問資源的統計與監控。
本文根據圖書館的業務需求,主要在高可用性、局部路由推送、用戶管理和日志監控等方面進行讨論,為其設計的系統結構如圖2所示。
圖2 OpenVPN系統架構
OpenVPN功能實現
1.多出口部署
很多高校的校園網采用多出口方案,校園網會根據校内用戶所訪問的外網資源所在ISP而自動選擇相應的ISP出口。同理,外網用戶訪問校内資源最快的方式,也是選擇相應的校園網ISP出口。
為了讓用戶在外網獲得更快的訪問速度,OpenVPN采用多出口部署,OpenVPN服務器分别在各ISP的出口做IP地址映射。其網絡拓撲結構如圖3所示。
圖3 網絡拓撲結構
在出口防火牆的in方向上,做出口IP到OpenVPN服務器的地址映射,其映射關系如表2所示。
表2 防火牆出口地址映射表
2.高可用負載均衡設計
OpenVPN采用兩台部署,不僅實現VPN的高可用性,還可以進行流量的負載均衡。負載均衡采用DNS輪詢方案,配合智能DNS的自動應答功能,實現不同ISP用戶請求,返回對應的響應地址。
(1)利用DNS實現負載均衡。每次域名解析請求DNS會根據對應的負載均衡算法計算出一個不同的IP地址并返回,這樣A記錄中配置多個服務器就可以構成一個集群,并可以實現負載均衡。如用戶請求openvpn.cpu.edu.cn,DNS根據A記錄和負載均衡算法計算得到一個IP地址,并返回給用戶,用戶根據該IP地址,訪問真實的物理服務器。所有這些操作對用戶來說都是透明的,用戶可能隻知道openvpn.cpu.edu.cn這個域名即可。
(2)智能DNS根據來源IP實現智能應答。智能DNS技術能根據用戶所在網絡的不同,返回不同的解析結果。換言之,智能DNS技術可以智能地判斷訪問用戶,然後根據不同的訪問者把域名分别解析成不同的IP地址,從而達到讓用戶快速訪問資源的目的。
當網絡用戶通過域名對openvpn.cpu.edu.cn進行訪問時,DNS系統根據用戶不同的源地址,分别做出不同地址的解析。教育網和三大運營商返回的IP地址為出口防火牆通過NAT功能将OpenVPN服務器的IP地址靜态映射到一個公網的地址,這樣外網用戶便可高速訪問OpenVPN服務。具體查詢和解析過程如圖4所示。
圖4 智能DNS查詢解析過程
DNS的View功能自動根據客戶端IP來判斷,然後把DNS請求指向分别相對應的區文件。這樣,教育網用戶解析出教育網的IP,聯通用戶解析出聯通的IP,移動用戶解析出移動的IP,其它用戶解析出電信的IP,使用戶避免跨網訪問,從而提高訪問速度。
3.用戶端策略路由設計
默認情況下,VPN連接成功後會自動增加一些路由,并把VPN設置成默認網關,客戶端所有的流量都會通過VPN來傳送,這顯然不是很合理。OpenVPN支持局部路由功能,可以指定哪些流量通過VPN,或者哪些流量不通過VPN,從而達到節省流量和提高訪問速度的目的。
當校外用戶訪問圖書館的數字資源時,需要在OpenVPN服務器的配置文件中将數字資源對應的IP加入。OpenVPN服務器向客戶端push路由,客戶端通過pull指令獲得服務器push的所有選項并應用。例如訪問中國知網CNKI,需要訪問,并加入到配置文件中。同理,其他數字資源也如此獲得,其部分配置示例如下:
獲取數字資源IP的方法可以有很多種,比如直接從數據商獲得,或者通過工具查詢獲得。當然,OpenVPN也支持用戶在客戶端自己添加路由信息,格式為:route ip/域名,如route。
4.用戶認證與管理
OpenVPN支持靈活的客戶端授權方式,支持證書、智能卡、用戶名和密碼。圖書館擁有多種數字資源,并向師生提供VPN服務,最合适的認證方式就是用戶名和密碼認證,既簡單安全又方便管理。用戶名和密碼認證既支持内建賬号和密碼,也支持與現有的LDAP或者radius服務器對接。本文采用與現有LDAP服務器進行對接,以實現用戶的認證與管理。
LDAP的實現方式有很多方式,本文選用最簡單的方式,即OpenVPN自帶的LDAP插件實現。
(1)打開/etc/openvpn/server.conf文件,對部分内容進行修改,具體示例如下:
(2)打開/etc/openvpn/auth/ldap.conf文件,對部分内容進行修改,具體示例如下:
這樣就完成了OpenVPN與負責用戶管理的LDAP服務器對接,實現了VPN和用戶管理兩個功能的相互獨立。獨立的模塊化部署,既穩定又安全,用戶新建、删除,修改密碼、更新屬性等用戶管理操作,在LDAP服務器上操作即可,避免每一次用戶修改都會修改OpenVPN服務器,減少對VPN服務穩定性的影響。
03
客戶端配置
客戶端設置
客戶端配置文件中的remote選項使用域名,即使多條運營商線路,也可以通過域名實現自動選路,而不必針對不同的運營商維護多個配置文件。
客戶端配置使用用戶名密碼認證,用戶名使用ldap認證,具體示例如下:
多客戶端的支持
OpenVPN最大的優點就在于客戶端操作系統支持比較廣泛,通過安裝OpenVPN-Client實現VPN訪問,客戶端支持的操作系統幾乎涵蓋了所有的主流系統,包括:Windows、Linux、Mac OS X、Android、IOS和DD-WRT等。
用戶安裝客戶端,需要導入配置文件證書,涉及3個文件:ca.crt、ta.key(如果不開啟tls-auth,則無需該文件)、client.ovpn。為了使移動端(安卓和蘋果)順利導入配置文件,需要将ca.crt和ta.key合并到client.ovpn中,具體示例如下:
04
日志與用戶訪問監控
用戶訪問監控
OpenVPN為校外師生訪問圖書館數字資源提供穩定的VPN服務的同時,用戶訪問監控功能同樣重要。管理員利用該功能,可以更詳細地了解用戶的登錄與退出時間,登錄IP和訪問URL等信息。這樣一旦出現惡意下載事件,管理員可以利用日志進行高效的事件追蹤。本文根據OpenVPN的日志,利用自定義腳本統計用戶的登錄與退出等信息。
1.記錄用戶撥入腳本
建立/etc/openvpn/connect文件,具體示例如下:
2.記錄用戶退出腳本
建立/etc/openvpn/disconnect文件,具體示例如下:
3.修改OpenVPN服務器配置文件,啟用腳本
打開/etc/openvpn/server.conf文件,對部分内容進行修改,具體示例如下:
這樣每天就會在/var/log/openvpn下面建立文件名為2020-12-27這樣的文件,該文件記錄了當天登錄OpenVPN的用戶名和時間,輸出如下:
定時報表
通過郵件将用戶訪問日志定時發送給管理員,可以讓管理員詳細了解每天用戶的訪問情況。
1.創建發信腳本
新建/etc/openvpn/mail2admin文件,編輯内容,具體示例如下:
2.定時發信
建立cron工作表,每天定時23:55發送當天的日志給管理員,具體示例如下:
筆者借鑒OpenVPN在其他行業的應用經驗,構建低成本、易實施、高效率的數字資源遠程訪問系統。由于OpenVPN是開源的,并且在設計之初就充分考慮了系統的擴展性,所以在VPN的基礎上可以很方便地擴展。
例如:用戶連接數、日志審計等方面。高校圖書館可以進一步探索OpenVPN的功能,尤其是在數字資源訪問量統計上做深入的開發,可以通過程序監控用戶訪問特定資源的時間和數量,對特定數字資源進行監控,對有可能被資源提供商視為“違規”下載的用戶行為給予提醒和及時制止,避免因懲罰影響廣大用戶的合理使用。同時,也為圖書館數字資源建設、評估、采購等提供有力依據。
基金項目:江蘇省工程技術文獻信息資源及共享服務平台共享共建項目(7422000027/018)
作者:申繼年1、劉新霞2(1為中國藥科大學圖書與信息中心,2為南京财經大學圖書館)
責編:陳永傑
投稿或合作,請聯系:eduinfo@cernet.com
往期推薦
● 校園網 VPN 服務面臨的安全挑戰
● 案例分享丨高校圖書館數字資源遠程服務
點擊觀看↓如何推進職業教育信息化
歡迎分享、點贊、在看
積極留言還會有驚喜好禮哦~
有話要說...