王 曉,孫丕波
(1.青島遠洋船員職業(yè)學院,山東青島266071;2.青島酒店管理學院信息工程技術學院,山東青島266100)
VPN安全性與地址沖突研究*
王 曉1,孫丕波2
(1.青島遠洋船員職業(yè)學院,山東青島266071;2.青島酒店管理學院信息工程技術學院,山東青島266100)
為了解決校園網(wǎng)絡升級改造過程中引入DMZ與VPN技術后,導致的內網(wǎng)資源安全性降低與虛擬IP地址碰撞的難題,在傳統(tǒng)VPN解決方案基礎上,提出虛擬IP地址生成算法與IP地址連接池的思想。異地用戶通過VPN訪問內網(wǎng)資源時,必需使用IP地址連接池來獲取虛擬IP地址,實現(xiàn)虛擬IP地址分配的動態(tài)管束,有效控制虛擬IP地址的隨意分配,避免因爭奪虛擬IP地址資源而產生的碰撞問題。這種方法對于提高VPN網(wǎng)絡的安全性和訪問效率,遏制黑客通過匹配IP地址的方式入侵內網(wǎng)、保護內網(wǎng)資源安全與解決地址沖突問題非常有效。
DMZ專區(qū);虛擬專用網(wǎng)絡;IP地址連接池;動態(tài)管束
為了解決既能在校外使用內網(wǎng)資源,又能充分保證內網(wǎng)資源的高度安全,通常的做法是將DMZ和VPN技術結合建設校園網(wǎng)絡。通過DMZ技術實現(xiàn)內網(wǎng)資源與公開信息的分離,為內網(wǎng)資源提供安全保障;通過VPN技術實現(xiàn)異地用戶對內網(wǎng)資源的共享訪問,為外網(wǎng)用戶提供異地訪問內網(wǎng)資源的VPN通道。這種做法,雖然兼顧了內網(wǎng)資源的安全與異地訪問的便利,但是從國內外已有的案例分析,還主要存在如下兩方面的缺陷:一是隨機生成的虛擬IP地址,只要符合DMZ與VPN的要求,就可以通過VPN實現(xiàn)內網(wǎng)資源的訪問,為黑客通過匹配IP地址方式入侵內網(wǎng)提供了方便,從而降低了內網(wǎng)資源的安全性;二是當使用VPN的異地用戶數(shù)量過多時,容易造成虛擬IP地址的碰撞(沖突),反復查詢空閑虛擬IP地址的操作增加了訪問的時間復雜度。本文在對DMZ與VPN技術分析研究基礎上,對VPN虛擬IP地址分配函數(shù)加以改進,提出了IP地址連接池的思想,將其應用于數(shù)字化校園的升級改造。
DMZ是非軍事區(qū)(Demilitarized Zone)的簡稱,與軍事區(qū)(信任區(qū))相對應。它是1個既不同于外網(wǎng),又不同于內網(wǎng)的特殊網(wǎng)絡區(qū)域。其作用是通過DMZ網(wǎng)絡把校園網(wǎng)分為開放區(qū)與保護區(qū)2個區(qū)域,把WEB、E-mail、考試系統(tǒng)等允許外部訪問的服務器連接在DMZ服務器的DMZ(開放)端口上,構成開放區(qū)網(wǎng)絡;把不允許外部訪問的內網(wǎng)服務器連接在DMZ服務器的MZ(信任)端口上,構成保護區(qū)網(wǎng)絡。根據(jù)資源的開放程度,實現(xiàn)開放信息與私有信息的分離。DMZ專區(qū)設置后,可以將一些公開信息放到DMZ專區(qū)的公用服務器上,將機密信息或僅對師生開放的信息放到內網(wǎng)中,從而根據(jù)不同的需要,有針對性地采取隔離措施,在對外提供信息服務的同時,最大限度地保護內部網(wǎng)絡安全。
DMZ區(qū)與內網(wǎng)區(qū)、外網(wǎng)區(qū)的通信是通過網(wǎng)絡地址轉換(NAT)原理[1]實現(xiàn)的。這里主要用到了靜態(tài)地址轉換與重載2種地址轉換模式(見圖1)。在進行網(wǎng)絡配置時,需要在DMZ服務器上,按照這兩種模式對內網(wǎng)IP地址分區(qū)間段,將1個內網(wǎng)IP地址映射到1個已注冊的外網(wǎng)IP地址,從而達到從外網(wǎng)訪問校內資源時,隱藏內部網(wǎng)絡IP地址的目的。
圖1 網(wǎng)絡地址轉換(NAT)與請求轉發(fā)關系Fig.1 Network address translation and the relationship between the request forwarding
由于DMZ專區(qū)的存在,極大地提高了內網(wǎng)資源的安全級別,同時也設置了外網(wǎng)用戶自由訪問內網(wǎng)資源的限制。如果異地用戶想通過外網(wǎng)訪問內網(wǎng)資源,則必須在授權的情況下,通過VPN虛擬通道,實現(xiàn)異地用戶對內網(wǎng)資源的訪問。
VPN虛擬網(wǎng)絡[2]是通過源、宿(內、外網(wǎng))IP地址轉換,利用公用網(wǎng)絡(通常是因特網(wǎng)Internet)構建虛擬局域網(wǎng)[3]實現(xiàn)的。通過這條連接為外網(wǎng)用戶虛擬出1條內部專線,從而將內部網(wǎng)絡擴展到整個Internet互聯(lián)網(wǎng)絡,實現(xiàn)異地用戶對于內網(wǎng)信息的自由訪問。VPN的核心就是利用公共網(wǎng)絡建立虛擬私有網(wǎng)絡,其關鍵是將來自外部網(wǎng)絡請求的IP地址映射為1個虛擬內網(wǎng)IP地址,將外部請求映射為內部請求,從而做到異地用戶像校內用戶一樣自由地訪問內網(wǎng)資源。異地用戶訪問內網(wǎng)時,會利用瀏覽器內建的VPN技術,將用戶請求封包處理,通過瀏覽器連接到學校內部的VPN服務器,VPN服務器會對合法請求的IP地址,按照(1)式映射關系[4],將異地請求轉變?yōu)?個虛擬的內網(wǎng)請求,讓異地用戶也能像校內用戶一樣,方便地使用內網(wǎng)資源。VPN虛擬專網(wǎng)構建原理見圖2。
其中:A是內網(wǎng)未注冊的IP地址集合,C是公網(wǎng)注冊的IP地址集合,公式中反應的映射關系見圖2。
圖2 VPN實現(xiàn)內網(wǎng)的訪問Fig.2 VPN access to campus network
定義虛擬內網(wǎng)IP地址時,一般根據(jù)整個校園網(wǎng)絡的IP地址規(guī)劃分為不同區(qū)間段,將某1個區(qū)間段或者某幾個區(qū)間段的IP地址留作VPN使用。以IPv4為例,通常做法是將IP地址的前3個整數(shù)固定,第4個整數(shù)由程序隨機生成1個0~255范圍內的整數(shù)填充。虛擬IP地址形式如下
10.168.172.XX
其中,XX的取值為0~255之間的整數(shù),10.168.172表示內網(wǎng)的1個區(qū)間段,在圖5鏈表圖示中用172表示。
如果以上256個IP地址不夠分配,則按照如下形式繼續(xù)分配
10.168.173.XX
其中,XX取值同上,10.168.173表示另一個區(qū)間段,在圖5鏈表圖示中用173表示。
依此類推,當異地用戶通過VPN通道訪問內網(wǎng)時,運行在VPN服務器上的程序,會根據(jù)合法外部請求的定義以及合法請求的提取流程找出合法請求,并為合法請求生成1個形如10.168.172.XX的IP地址(此時的XX值已經確定),將外部請求轉變?yōu)?個虛擬的內部請求,從而實現(xiàn)異地用戶對內網(wǎng)資源的訪問。
2.2.1 合法外部請求的定義 1個能夠通過VPN驗證的合法外部請求需要滿足以下2個條件:
Ⅰ該請求是對校內某一特定VPN服務器發(fā)出的請求,這一VPN服務器的IP地址通過網(wǎng)絡地址轉化后,與1個公網(wǎng)注冊的IP地址唯一對應。
Ⅱ對VPN服務器發(fā)出的請求必須是合法用戶發(fā)出的。即通過VPN建立虛擬專線時,客戶端輸入的用戶名和密碼必須通過VPN驗證。
2.2.2 合法請求的提取過程 對于合法請求的提取,采用端口監(jiān)聽方式實現(xiàn):首先、建立用戶信息資料庫,為用戶訪問內網(wǎng)資源創(chuàng)建認證信息——包括用戶名和密碼等;其次、設置異地主機VPN網(wǎng)絡[5],輸入需要訪問VPN服務器的IP地址以及驗證需要的用戶名、密碼等信息;第三、按照流程圖(3)編寫監(jiān)聽程序,并在VPN服務器上部署端口監(jiān)聽程序。
采用VPN技術改造校園網(wǎng)絡,對于異地用戶共享內網(wǎng)資源提供了方便,使遠程辦公與內網(wǎng)的異地維護工作成為可能。同時,這也給校園網(wǎng)絡正常運行帶來了兩方面的隱患:一是程序隨機生成的虛擬IP地址,只要符合10.168.172.XX這種形式,整數(shù)XX的取值范圍在0~255之間,就能符合DMZ與VPN的要求,就可以順利地通過VPN實現(xiàn)內網(wǎng)資源的訪問,從而使內網(wǎng)資源的安全性降低,容易遭受黑客的攻擊;二是當使用VPN的異地用戶數(shù)量增加時,容易造成虛擬IP地址的碰撞(沖突),這種碰撞不一定是由于預設的虛擬IP地址被分配完畢,而主要是由于查詢VPN隨機分配的虛擬IP地址是否已經被使用造成的,這種反復查詢空閑虛擬IP地址的操作增加了訪問的時間復雜度,容易引發(fā)VPN服務器的局部繁忙與網(wǎng)絡擁塞。
圖3 VPN服務器端口監(jiān)聽程序流程圖Fig.3 VPN Server port monitoring program flow chart
多數(shù)程序一般采用隨機函數(shù)rand()生成虛擬IP地址。rand()函數(shù)生成“隨機數(shù)”的算法有很多,但無論如何,都不可能產生真正的隨機數(shù),因為電腦程序是個確定狀態(tài)轉換機,一種輸入必定產生一種確定的輸出。試驗發(fā)現(xiàn),當循環(huán)次數(shù)增多后rand()函數(shù)產生的結果就會有很多相同,并且還有一定規(guī)律可循。因此,尋找1個合理的IP地址產生函數(shù)對于維護內網(wǎng)的安全性、克服IP地址發(fā)生沖突、降低算法的復雜度至關重要。本文采用(2)式作為虛擬IP地址生成函數(shù)
其中,x是自變量;e是歐拉數(shù),e≈2.718 281 828 4;λ是調整系數(shù),取值為0~1之間的小數(shù)。
從(2)式可以看出,當x=0時,f(x)=255;當x→∞時,f(x)→0,也即當x在整個實數(shù)集上取值,則f(x)的值域空間為[0,255]。因此,在實數(shù)空間中,對f(x)取整運算所得結果完全符合IPv4協(xié)議需要的IP地址。采用(2)式作為虛擬IP地址生成函數(shù)的最大好處是,自變量x的取值可以變得更加自由,程序員可以采用多種方式來控制x的取值,從而達到所獲IP地址的隨機性。
連接池是眾多連接對象的“緩沖存儲池”,是連接對象的集合體[6]。在連接池內部提供1種管理機制,能夠控制連接池內部連接對象的數(shù)目,對應用程序提供獲取、釋放連接的接口以及控制連接對象的生存周期。本文提出的IP地址連接池是1個專門用于為VPN連接分配虛擬IP地址的“產生器”,它提前將n(n>0)個空閑虛擬IP地址放在連接池中,當外網(wǎng)請求需要分配虛擬IP地址時,系統(tǒng)會從連接池中獲取1個IP地址,通過這個IP地址為異地用戶建立起1條VPN虛擬連接。工作原理見圖4。
圖4 虛擬IP地址連接池工作原理圖Fig.4 the connection pool works of virtual IP address diagram
3.2.1 連接池的構成 虛擬IP地址連接池內部包含2個彼此獨立且相互依存的鏈表:一個是空閑鏈表,用于存放由(2)式產生的空閑IP地址,供系統(tǒng)建立VPN連接使用;另一個是使用鏈表,用于存放正在被VPN連接占用的虛擬IP地址,標記虛擬IP地址的使用情況。連接池與外部的信息交換是通過地址獲取接口getIP()和地址釋放接口freeIP()實現(xiàn)的,通過調用getIP()接口,獲取連接池中1個空閑虛擬IP地址;通過調用freeIP()接口,回收斷開連接的虛擬IP,交予連接池管理進程釋放。虛擬IP地址連接池內部結構如圖5。
圖5 虛擬IP地址連接池內部結構圖Fig.5 the connection pool within the structure of virtual IP address chart
3.2.2 地址連接池的操作
創(chuàng)建結點creatNode() 調用(2)式生成1個空閑IP地址,并將這個IP地址作為結點插入到空閑鏈表中。插入結點InsertNode() 從空閑鏈表中取出第一個結點,插入到按照IP地址排好序的使用鏈表中,從而得到1個新的、結點數(shù)增1的有序使用鏈表。
釋放結點freeNode() 將超期或者斷開連接的IP地址從使用鏈表中刪除,從而得到一個新的、結點數(shù)減1的有序使用鏈表。
查找結點seekNode() 根據(jù)(2)式生成的IP地址,在使用鏈表中查找是否存在其值等于該IP地址的結點。若存在則查找成功,返回該結點;若不存在,則查找不成功,返回“空”指針。
取結點值GetNodeIP() 返回連接池中空閑鏈表第一個結點的IP值,交給地址獲取接口getIP(),建立連接后,調用插入結點InsertNode()操作,把該結點插入到使用鏈表中,并從空閑鏈表刪除該結點。
創(chuàng)建連接池CreatPool() 在連接池中生成2個鏈表─空閑鏈表和使用鏈表。調用創(chuàng)建結點creatNode()操作,在空閑連表中插入n(一次生成空閑結點的最大值)個IP結點,生成長度為n的空閑鏈表;生成使用鏈表,設置使用鏈表初值為空。創(chuàng)建后連接池的初始狀態(tài)如下圖6。
圖6 虛擬IP地址連接池初始狀態(tài)圖Fig.6 The connection pool initial state of virtual IP address diagram
管理連接池managePool() 主要完成兩方面的工作,一是維護使用鏈表,通過地址釋放接口freeIP()獲得斷開連接的IP和連接超時的IP,調用釋放結點free-Node()操作,把結點從使用鏈表中釋放;二是創(chuàng)建空閑鏈表,當空閑鏈表中的結點被分配完畢,即n=0時,調用查找結點seekNode()操作和創(chuàng)建結點creatNode()操作,生成n個空閑IP結點,創(chuàng)建1個新的空閑鏈表。關閉連接池closePool() VPN連接斷開后,由系統(tǒng)把斷開連接的虛擬IP通過地址釋放接口freeIP()返還給連接池,由連接池調用釋放結點freeNode()操作釋放。
3.2.3 地址連接池工作流程 由于連接池內的IP地址是虛擬內網(wǎng)段上的空閑IP地址,只要從連接池內獲得了虛擬IP地址,也就獲得了訪問內部資源的權限,通過這個IP就可以自由訪問內部信息。因此,虛擬IP地址連接池的創(chuàng)建并不需要像“數(shù)據(jù)庫連接池”那樣,預先建立好多條訪問數(shù)據(jù)庫的連接。IP地址連接池的主要任務是對虛擬IP地址進行有效地使用和管理,主要包括2個方面:空閑虛擬IP地址在連接池中的儲備和正被使用IP地址的管理。因此,合理設計連接池的工作流程,做好空閑IP地址的儲備與使用IP地址的管理是建立VPN通道的關鍵。虛擬IP地址連接池的工作流程見圖7。
圖7 虛擬IP地址連接池工作流程圖Fig.7 The connection pool work flow of virtual IP address chart
采用IP地址連接池技術后,用于建立VPN連接的虛擬IP地址必須來自連接池,對于連接池中不存在的IP地址,即使合法、空閑、滿足條件也不能用于建立VPN連接。這就為建立VPN連接需要的虛擬IP地址增加了更為嚴格的限制條件,減少了惡意匹配IP的概率,從而提高了內網(wǎng)的安全性;同時,連接池中的虛擬IP地址是由系統(tǒng)根據(jù)資源使用情況合理產生的空閑IP地址,它有自身的沖突管理機制,當有外來請求時,只需從池中獲取IP地址即可建立起訪問內部資源的連接,而不必再去判斷IP地址的使用情況,避免了IP地址碰撞的產生,提高了VPN連接建立的效率。
采用IP地址連接池技術后,異地用戶通過VPN訪問內網(wǎng)資源時,必需使用IP地址連接池來獲取虛擬IP地址,實現(xiàn)了虛擬IP地址的隨機產生與分配的動態(tài)管束。對于隨意獲得虛擬IP地址的行為進行有效管制,極大地提高了內網(wǎng)資源的安全級別;同時解決了過多異地用戶同時訪問內部資源時產生的虛擬IP地址碰撞問題,提高了內網(wǎng)資源的訪問效率。但是,在應用系統(tǒng)主導的獨立管理信息模式[7]下,內網(wǎng)是1個地理空間概念,是將用戶使用內網(wǎng)資源的權限與用戶主機的IP地址進行綁定,通過對校園網(wǎng)內不同IP主機的權限設置來達到是否允許用戶使用與管理內網(wǎng)資源的目的。其實質是通過約束機器的方法來約束人,這無疑給用戶使用與網(wǎng)絡管理增添了深層次難度。要想徹底解決這一問題,就必須做到內網(wǎng)資源與IP地址脫鉤,使資源訪問權限,僅與訪問網(wǎng)絡的具體用戶綁定,從而達到用戶所獲信息與其對應的權限相匹配。通過對用戶訪問權限設定,決定用戶獲取信息的權限,從而達到最終消除內網(wǎng)的地理空間概念。
[1] 陳曉蘇,吳悠.路由器中網(wǎng)絡地址轉換的一種實現(xiàn)方法[J].計算機工程與應用,2004,40(1):157-159.
[2] 肖圳莎,林闖,楊冉.P2P-VPN虛擬網(wǎng)絡架構模型分析[J].計算機科學與探索,2009,3(3):257-266.
[3] 束坤,吳國新.基于Internet的VPN技術[J].計算機應用,1999,19(11):28-31.
[4] 左孝陵,李為監(jiān),劉永才.離算數(shù)學[M].上海:上??茖W技術文獻出版社,2000:81-170.
[5] 李萬紅,胡辰浩.Windows XP系統(tǒng)管理指南[M].清華大學出版社,2002:421-430.
[6] 羅榮,唐學兵.基于JDBC的數(shù)據(jù)庫連接池的設計與實現(xiàn)[J].計算機工程,2004,30(9):92-93.
[7] 勞東.管理信息系統(tǒng)[M].北京:中國人民大學出版社,2009:264-320.
VPN Security and IP Address Conflict Research
WANG Xiao1,SUN Pi-Bo2
(1.Qingdao Ocean Shipping Mariners College,Qingdao 266071,China;2.School of Information Engineering Technology,Qingdao Hismile College,Qingdao 266100,China)
In order to solve the security of the internal network and the collision of the virtual IP address,the methods of the virtual IP address connection pool and the IP address generation algorithm are proposed in the process of upgrading the campus network.When accessing the internal network resources,remote users need access to the virtual IP address from the connection pool,which implements the virtual IP address assignment dynamic bundle,effectively controls the random allocation of the virtual IP address,avoids the problem of collisions of the virtual IP address and improves the security of internal resources and efficiency.It has been proved in practice that the technology of virtual IP address connection pool and IP address generation algorithm are very effective to enhance the security of VPN network,curb hacker intrusion by matching the IP address of the internal network and resolve the IP address conflicts.
demilitarized zone;virtual private network;the connection pool of IP address;dynamic bundle
TP391
A
1672-5174(2011)03-088-05
中國遠洋集團公司項目(2009-1-H-002)資助
2009-11-20;
2010-04-25
王 曉(1971-),男,工學碩士。E-mail:wangxiao@126.com
責任編輯 陳呈超