王 謙
(安徽新聞出版職業技術學院包裝工程系,安徽合肥 2 30601)
基于OpenVPN技術的校園VPN系統設計
王 謙
(安徽新聞出版職業技術學院包裝工程系,安徽合肥 2 30601)
針對校園網安全的實際需要,提出了適合中等規模校園網的VPN協議選取和設計方案,并完成了與防火墻相結合的OpenVPN實現。
OpenVPN;路由
VPN是采用隧道技術以及加密、身份認證等方法,在共用網絡上建立專用網絡的技術。之所以稱為虛擬網主要是因為整個VPN網絡的任意兩個結點之間的連接并沒有傳統專網建設所需的點到點的物理鏈路,而是架構在公用網絡服務商ISP所提供的網絡平臺之上的邏輯網絡。用戶的數據是通過ISP在公共網絡(Internet)中建立的邏輯隧道(Tunnel),即點到點的虛擬專線進行傳輸的。通過相應的加密和認證技術來保證用戶內部網絡數據在公網上安全傳輸,從而真正實現網絡數據的專有性[1]。將VPN技術應用于校園網,可以突破校園專用網的地域性限制,優化校園網的管理和應用,滿足師生在校園外訪問校園網資源的要求。師生員工可以使用該系統進入校園網,并以校園網內部用戶身份進行訪問。本文針對校園網安全的實際需要,提出了適合中等規模校園網絡的VPN協議選取和設計方案,并完成了與防火墻相結合的OpenVPN實現。
目前廣泛使用的VPN實現主要是基于PPTP和IPSec協議的VPN方案。基于PPTP協議的VPN的優點是簡單易用、兼容性好,缺點是具有安全隱患,而且當網絡上存在防火墻或地址轉換設備時,PPTP VPN可能不能正常連接;IPSec VPN的優越性在于它的安全性、互操作性,但是管理復雜且不支持多協議。SSL VPN是采用SSL(Security Socket Layer)協議來實現遠程接入的一種新型VPN技術。OpenVPN通過使用SSL/TLS協議,實現OSI 2層及3層安全網絡擴展,但它與常見的SSL VPN只能通過瀏覽器使用不同,它適用范圍非常廣泛,包括遠程訪問,站點到站點的VPN等,幾乎可以實現IPSec VPN的全部功能,同時它通過TLS/SSL加密保證了數據傳輸的安全,并通過數據壓縮提高數據傳輸速度。和PPTP VPN相比,OpenVPN支持從NA T設備后的連接,并且支持H TTP代理,對動態地址支持很好,配置簡單易用,方式多樣。目前,OpenV PN提供了Window s,Solaris,Linux,BSD等多種操作系統的客戶端,具有較好的可移植性,遠遠超過了IPSec V PN實現對不同操作系統的支持[2]。因此,在本系統設計中,選擇了以OpenVPN技術為基礎的VPN方案,既保證了數據的安全和數據傳輸速度,又易于安裝使用。在系統平臺的選擇上,客戶端和服務器端均可選用目前流行的Linux或Window s操作系統。
在數據傳輸的過程中,OpenVPN使用虛擬網卡進行數據傳輸,虛擬網卡的使用是OpenVPN實現其SSL VPN功能的關鍵,其使用的驅動是Tun/tap驅動程序。
Tun/tap驅動程序中包含兩個部分,一部分是字符設備驅動,還有一部分是網卡驅動部分。利用網卡驅動部分接收來自TCP/IP協議棧的數據包并發送或者反過來將接收到的數據包傳給協議棧處理;而字符驅動部分則將數據包在內核與用戶空間傳送,模擬物理鏈路的數據接收和發送。Tun/tap設備提供的虛擬網卡驅動,從tcp/ip協議棧的角度而言,它與真實網卡驅動并沒有區別。從驅動程序的角度來說,它與真實網卡的不同表現在tun/tap設備獲取的數據不是來自物理鏈路,而是來自用戶空間,Tun/tap設備驅動通過字符設備文件來實現數據從用戶區的獲取。發送數據時tun/tap設備也不是發送到物理鏈路,而是通過字符設備發送至用戶區,再由用戶區程序通過其他渠道發送[3]。
Tun設備使用的模式為路由模式,如同虛擬的點對點裝置,由于連線后才決定VPN雙方的連線路徑,因此Tun驅動所處理的是OSILayer3的工作。而Tap設備使用的模式為網橋模式,如同虛擬的Ethernet網卡,所處理的是OSILayer2的工作。
由于Tun/tap所處理的是OSILayer2和Layer3的部分,因此很容易結合上層安全機制。同時也給OpenVPN提供了建立隧道的兩種基本類型:路由IP隧道和橋接以太網隧道。
OpenVPN是一種基于SSL的開源VPN技術。SSL是一個介于H TTP層及TCP層的安全協議。傳輸的內容是經過加密的。OpenVPN使用SSL/TLS的握手協議來完成身份認證,在身份認證的同時,雙方也實現了會話密鑰的交換。
OpenVPN使用OpenSSL庫加密及驗證,所有加密都由OpenSSL庫處理。它能夠使用任何OpenSSL支持的算法,提高連接的安全性。同時OpenSSL的硬件加速也提高了OpenVPN的性能。OpenVPN缺省采用Blow fish算法給隧道數據加密,如果想采用其他加密算法,可以在配置文件中加入--cipher選項,如--cipher DES-EDE3-CBC將選擇Trip le-DES算法進行加密。
OpenVPN中的會話認證采用TLS/SSL協議中的RSA/DHE來實現。會話認證的握手過程要交換4個消息(圖1)[4]。會話認證結束后,OpenVPN就成功建立了VPN隧道。
OpenVPN所有的通信都基于一個單一的IP端口,指定給OpenVPN的官方端口為1194[2]。如果想修改端口號,可以修改配置文件中port 1194語句,把端口號修改為所需值。默認情況下,OpenVPN使用UDP協議,UDP效率更高,因為它的信息頭更小,不包含TCP提供的那種內建的確認檢查信息包,不會像TCP那樣增加額外的負載,性能較好些。但它也支持TCP協議。如果防火墻阻塞UDP傳輸,就需要使用TCP協議,在配置文件中使用p roto udp語句。

圖1 OpenVPN會話認證過程
VPN服務器的主要作用就是通過遠程接入VPN來為遠程用戶提供接入服務,這需要考慮VPN服務器與防火墻的配置問題。由于VPN服務器可以放置在網絡的不同位置,如可以跟防火墻并行放置,也可以放置在防火墻前端或防火墻后端等。若放在防火墻前端或后端,VPN服務器處在校園內外數據交換的主干通道上,校園內外網絡數據的交換都需要通過VPN服務器來處理,若校園內外數據交換比較頻繁的話,則會給VPN服務器性能帶來較大的壓力。而如果將VPN服務器放置在防火墻前端,還需要更改防火墻配置,這影響了防火墻的安全保護功能。因此,在具體的設計過程中,將VPN服務器與防火墻并行,普通的內外網數據交換從防火墻走,而通過VPN請求的數據則從VPN服務器走,以降低V PN服務器的數據處理壓力,提高VPN服務器性能。另外,在VPN服務器上進行的訪問規則的配置,只對VPN請求有效,不會影響到其它的網絡訪問。具體的網絡拓撲結構如圖2所示。

圖2 網絡結構圖
遠程訪問用戶建立VPN連接之后,防火墻的安全策略仍然對遠程用戶有效,對原有的網絡安全沒有影響。
在VPN服務器端安裝OpenVPN軟件包,加載TUN/TAP內核模塊。VPN Server中安裝雙網卡,eth0對外,IP:218.22.46.141 eth1對內,IP:192.168.0.13,內網地址:192.168.0.0/16。VPN Server中安裝lzo,lzo-devel,M ysql,OpenVPN。創建一個tun設備,使用OpenVPN包自帶的腳本生成根證書,并生成創建和簽發服務器和客戶端使用的證書。
根據VPN系統方案的設計,遠程用戶通過VPN服務器,僅在訪問校園內網以及一些特殊的外部地址如圖書館萬方數據庫鏡像資源時必須走VPN專用隧道,在服務器端配置文件中添加路由。使用Open-VPN必須修改路由表[5]。
Linux服務器端路由設置:
#push“redirect-gateway”;不重定位網關
push“dhcp-op tion DNS 192.168.0.1”;遠程連接客戶端的域名服務由VPN服務器提供
當客戶端連接VPN服務器時,由VPN服務器為客戶端添加路由,將校園網IP范圍和特殊公網的IP范圍增加到客戶端VPN路由表中,客戶端按照此路由表進行訪問。路由添加如下:
push“route 192.168.0.0 255.255.0.0”;增加客戶端VPN路由-校園網IP范圍
push“route 210.45.242.0 255.255.255.0”;增加客戶端VPN路由-特殊的公網IP范圍
push“route 210.45.210.0 255.255.255.0”;增加客戶端VPN路由-特殊的公網IP范圍
由于已在服務器端增加了客戶端訪問的路由,客戶端配置文件中路由可省略
Linux服務器端Ip tables訪問規則:
-A POSTROU TING-s 10.0.0.0/255.255.255.0-o eth0-j SNA T--to-source 192.168.0.13
來自客戶端的數據路由至校園網
-A POSTROU TING-s 10.0.0.0/255.255.255.0-d!192.168.0.0/255.255.0.0-j MASQUERADE
目標IP為非校園網的數據路由至公網
在選用OpenVPN技術作為VPN實現方面,為簡化證書的管理,身份認證方式采用的是用戶名+密碼,安裝pam_mysql-0.7RC1[2],同時,Linux服務器端需要添加語句

數據庫采用M ysql,在數據庫服務器上創建數據庫表vpnuser,表結構如圖3。編程實現客戶端的密碼修改及新增用戶注冊程序。

圖3 vpnuser表結構
對于Linux客戶端,用如下命令啟動 VPN:openvpn--config client.conf
對于Window s客戶端,將OpenVPN官方網站中客戶端軟件下載安裝后,其自帶的GUI工具會裝在系統托盤里。用鼠標右鍵單擊圖標,再點菜單里的connect,輸入用戶名和密碼即可。
在實驗中,使用兩臺機器百兆物理網絡連接,其中一臺Pentium4 3.0GHz機器上運行CentOS 5.2,作為OpenVPN服務器,另一臺作為客戶端。Open-VPN采用TLS協議用于密鑰交換,Blow fish算法作數據加密。實測當走VPN隧道用FTP傳輸一個預先壓縮的大文件時,收/發傳輸速度最大達到了8.8MB/s,而不走VPN服務器的最大傳輸速率為9MB/s。實驗證明,OpenVPN的加密算法對數據傳輸的影響不大,且在傳輸過程中并未出現掉線現象,性能較好。
使用OvpnVPN技術建立的VPN系統,在調試成功并投入運行階段后,用戶反映良好。它實用性強,成本低,適用于中等規模的校園網。
[1]徐家臻,陳莘萌.基于IPSec與基于SSL的vpn的比較與分析[J].計算機工程與設計,2004,25(4):586-588.
[2]OpenVPNTM 2.0 HOW TO[EB/OL].http://openvpn.net/how to.htm l.2005,Sep tember.
[3]肖凌,李之棠,梅松.一種基于虛擬網卡的Window sVPN體系結構研究[J].小型微型計算機系統,2007,28(9):1586-1590.
[4]郭學超,翟正軍.OpenVPN體系安全性研究[J].科學技術與工程,2007,7(8):1742-1745.
[5]程克勤,于博,周健,等.基于OpenVPN接入系統的設計與實現[J].廈門大學學報(自然科學版),2007,46(sup2):199-201.
Design of Campus VPN System Based on Open VPN Technology
WANG Qian
(Department of Packaging Engineering,Anhui News Publishing Vocational College,Hefei230601,China)
According to the needs of campus network security,this paper proposes the selection and design of VPN protocol which is suitable to themedium scale campus network,and discusses the implementation of the combination of the OpenVPN and firewall system.
OpenVPN;Route
TP393
A
1009-9735(2010)05-0036-03
2010-05-20
2008年安徽省教育廳自然科學基金項目(KJ2008B112)。
王謙(1975-),女,安徽合肥人,安徽新聞出版職業技術學院副教授,碩士,研究方向:網絡安全、軟件工程。