什麼是VPN
認識數據加/解密
數據加/解密的類型
散列算法
IPSecBase VPN
Linux下的IPSec架構
在前面的章節中筆者用了很多篇幅討論加強企業網絡安全的方法,本章我們還要繼續討論這方面的議題,只不過這裏所要討論的方向是如何讓企業網絡的通信變得更安全。
其實,加強通信安全的方法有很多,例如,使用Modem來撥號連接或是FrameRelay 的應用等,都可以提高網絡上數據傳遞的安全,但就方便、經濟及安全性來考慮,筆者認爲VPN(VirtualPrivate Network)是其中最好的選擇,但是好一點的商用版VPN系統設備少則幾十萬,如果使用VPN的人數很多,這些VPN的授權費用更是一般中小企業所無法負擔的,然而,近年來在Linux系統上VPN技術的發展,已足夠與商用版VPN系統平起平坐,而且LinuxVPN 系統所能提供的安全性、穩定性及高性能等優點,都是大多數商用VPN系統所望塵莫及的,當然,另一個更爲誘人的原因是它完全免費。
VPN技術發展至今已有數個年頭,且衍生出多種不同的VPN技術,比方說,PPTP、SSLVPN、CIPE、IPSec等。而本章所要介紹的是以IPSec技術爲基礎的VPN系統,除了完整介紹IPSec的相關技術之外,還包含各種不同網絡架構下VPN系統的配置方式,如果你對VPN技術有興趣或有需求,那麼本章的內容你絕對不能錯過。
8.1什麼是VPN
VPN(VirtualPrivateNetwork)的中文意思爲“虛擬專用網絡”,而VPN的功能是將因特網虛擬成企業網絡來使用,這樣的敘述似乎不是很容易理解,筆者以圖8-1爲例來說明VPN的功能及使用VPN的必要性。
(點擊查看大圖)圖8-1VPN 介紹 (1) |
圖8-1中,筆者假設某企業有兩個分點,分別爲臺北總公司及上海分公司,而這兩個分部的企業網絡都設置有防火牆,且內部網絡都是使用PrivateIP,另外,公司的老闆經常會到世界各地出差,所以在這個網絡架構下,請你思考一個問題,上海分公司及經常出差的老闆是否能夠正常訪問臺北總公司內的FileServer ?答案當然是“不可能”,因爲臺北總公司內的FileServer 是放在NAT後方的PrivateIP 區段上,因此上海分公司及出差的老闆不可能訪問到總公司內的FileServer,但這樣的需求在現實網絡應用中卻是需要的,難道沒有完整的解決方案嗎?
VPN正是爲了解決此問題而設計出來的技術。在以往,我們爲了連接兩個遠程PrivateIP 網段,必須向電信業者申請FrameRelay 的服務,而FrameRelay感覺就像電信業者幫我們拉了一條很長的網線,然後運用這條網線來連接兩個PrivateIP 的網段,雖然FrameRelay 也可以幫我們解決以上的問題,但FrameRelay 並不是萬能的,下面我們來看看FrameRelay 的優缺點。
FrameRelay的優點:FrameRelay最大的優點在於“帶寬保證”,也就是說,如果你申請的是1Mbps的FrameRelay,就一定會有1Mbps的帶寬可以使用,不會因爲因特網的擁塞而有任何折扣。
FrameRelay的缺點:FrameRelay服務的費用並不是很便宜,而且在Fr ame Re l ay網絡中所傳送的數據並沒有加密,故其安全性較差;此外,FrameRelay服務僅能應用於固定的位置(地理環境),如圖8-2所示是老闆帶着NoteBook到處出差,並沒有固定的位置,因此,就無法使用FrameRelay的服務。
(點擊查看大圖)圖8-2VPN 介紹(2) |
相對於VPN就不一樣了,在早期由於侷限在因特網頻寬的限制下,如果企業想高速跨越因特網來連接兩個網段,那麼FrameRelay 絕對是首選,但近年來,因爲ISP業者不斷加大其所擁有的頻寬,使得我們上網的連接速度不像以前極不穩定,再加上數據加/解密技術已成熟且CPU運算速度夠快,因此,VPN技術已逐漸被企業所接受。那VPN究竟是哪種技術呢?如果以圖8-1爲例來套用VPN技術,其邏輯上的架構就會如同圖8-2,也就是說,VPN把整個因特網虛擬成一個Router,因此,上海分公司及出差的老闆就可以藉助這個Router來訪問企業內部的FileServer。
8.1.1VPN的原理
說到這裏,你或許會有疑問:來源及目的端IP都是PrivateIP,VPN如何讓這些PrivateIP 可以在因特網上的路由呢?這就是VPN最爲重要的一個特點,筆者以圖8-3爲例來說明VPN技術是如何讓兩部PrivateIP 的主機能夠跨越因特網來連接。
(點擊查看大圖)圖8-3VPN 的原理 |
從圖8-3中我們可以看到兩部VPNServer,且各自都有兩塊網卡,其中一塊連接在因特網,我們假設其IP分別爲A及B兩個PublicIP,另外一塊網卡則分別連接至192.168.1.0/24及192.168.2.0/24兩個PrivateIP 的網段,接着我們來看看192.168.1.10主機如何藉助VPN技術跨越因特網來連接192.168.2.20主機。
首先192.168.1.10主機送封包給192.168.2.20主機,當這個封包傳送至①的位置時,其封包的來源端IP爲192.168.1.10,目的端IP爲192.168.2.20,如圖8-4所示。
(點擊查看大圖)圖8-4VPN 技術下封包處理(1) |
但是這個封包被送到VPNServer(A)之後②,VPNServer 會把這個封包以特殊的方式來處理,如圖8-5所示,VPNServer 會把原本的整個封包當做其所要傳遞的數據內容,並且重新產生一個新的IP包頭,而這個新的IP包頭中的來源端IP爲VPNServer(A)上的PublicIP A,目的端IP則爲VPNServer(B)上的PublicIP B,這樣這個封包當然就可以從VPNServer(A)跨越因特網傳送到VPNServer(B)。
(點擊查看大圖)圖8-5VPN 技術下封包處理(2) |
待VPNServer(B)收到這個封包之後③,其內容應該還是如圖8-5所示,接着VPNServer(B)就執行其該做的事,就是將新的IP包頭整個去除掉,而去除新IP包頭之後的內容就如圖8-4所示,最後VPNServer(B)將這個封包送至192.168.2.0/24的網段上④,這樣兩個PrivateIP
的主機就可以跨越因特網來連接。
接着,請你想象以上這樣的原理,像不像是使用A及B兩個IP來搭建出一條隧道,然後讓192.168.1.10及192.168.2.20兩部主機所傳送的封包得以穿梭於隧道之中,這種邏輯上的技術我們稱爲Tunnel。而VPN的隧道技術有很多種方式,一般較常見的有IPin IP Tunnel、L2TPTunnel 及PPTPTunnel,目前我們所討論的是IPin IP Tunnel。
8.1.2常見的VPN架構
VPN的架構大概可分爲兩種,以圖8-1爲例,我們使用VPN將臺北總公司與上海分公司的兩個網段串接起來,這稱爲Site-to-Site或是Subnet-to-Subnet的VPN架構;此外,老闆以便攜計算機通過VPN來串接臺北總公司的網段,則稱之爲Client-to-Site或是Client-to-Subnet的VPN架構。
8.1.3VPN的安全性問題
在看完VPN的原理之後,你或許無法接受VPN的技術,如圖8-5所示,如果192.168.1.10與192.168.2.20所傳遞的是極機密的數據,那麼圖8-3中我們在VPNServer A 與B之間啓動WireShark之類的封包提取軟件不就可以看到這些機密的數據內容嗎?如果你有這樣的想法,就代表你對網絡數據傳遞的安全性已有正確的概念,不過,這個問題我們並不需要太在意,因爲VPN機制允許我們在VPNServer A 與B之間進行數據加密,因此,你可以暫時把加密過後的封包想象成如圖8-6的樣子,這樣就不必擔心企業內的機密數據被竊取了。
(點擊查看大圖)圖8-6VPN 技術下封包處理(3) |