陳莉


摘要:在當前的互聯網/物聯網的發展中,網絡安全問題至關重要, 如何快速的部署一個低成本,可擴展,高安全的網絡在項目開發中是十分關鍵的。本文探討了基于IPSec協議的虛擬私有網絡技術(VPN)技術來實現安全的數據傳輸網絡的方式,并基于樹莓派和阿里云搭建網絡拓撲,給出了設備建立IPSec VPN連接的具體實現過程和詳細的配置命令,為物聯網設備部署IPSec-VP提供參考和借鑒。
關鍵詞:IPSec;VPN;PKI;樹莓派;阿里云主機;網絡安全;Linux
中圖分類號: TP3? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)17-0028-03
開放科學(資源服務)標識碼(OSID):
隨著企事業組織結構的發展壯大,互聯網絡在企業組織結構中的深入應用,讓鏈接不同業務部門的網絡的安全問題日益突出。隨著物聯網,大數據和AI,5G技術的發展,萬物互聯的時代即將來臨,而物聯網中,網絡安全的要求更加突出,物聯網的網絡如果收到惡意攻擊,會產生比互聯網更加嚴重的甚至威脅生命的影響。如何在快速的項目迭代中,快捷的部署一個低成本呢,高安全,可擴展的安全網絡架構,是當前網絡部署項目中至關重要的一個環節。
為了解決安全問題,傳統的一個思路是使用物理私有網絡線路來鏈接不同組織部門或者設備,但是對于大多數中小企業,甚至部分跨國企業來說,搭建私有專用網絡成本過于高昂,而對于物聯網設備來說,本來就是需要把數據分享到云端或數據中心,所以搭建私有網絡不現實。另一個的思路是使用VPN技術(virtual private network) - 虛擬私有網絡技術,VPN技術是基于公共網絡結合加密、身份認證等技術來在不同業務部門之間建立虛擬安全通道,讓連接到虛擬安全通道的不同業務部門認為互相處于一個私有網絡之中。VPN 技術具有高安全性,很強的擴展性,低成本,便于管理(虛擬非物理搭建)等特性,具有廣闊的發展前景[1]。本文主要探討了一種基于IPSec協議的VPN 網絡的快速實現方案,并給出了在linux系統上的詳細配置文件,為項目IPSec-VPN的構建提供借鑒。
1 VPN簡介
VPN技術是一種遠程訪問技術,其實就是利用加密技術,在公共網絡的架構上封裝一條專門的有加密服務的數據鏈路。比如在企業中,如何通過外部互聯網,訪問到企業內網呢?在工業物聯網中,如果通過互聯網遠程訪問到工控內網呢?這些都可以通過VPN, 在內網中搭建一臺VPN服務器,外部訪問通過VPN服務器再進入企業/工控內網。VPN服務器和客戶機之前的通訊進行了數據加密,所以基于VPN的數據傳輸是安全的[2]。
根據不同的標準,VPN可以分為以下幾種分類:
不同位置的部門通過支持VPN服務的路由器建立VPN 安全通道,每一個部門的路由器子網中的電腦可以和其他的部門路由器子網中電腦安全通信
b.單點到部門(network to host)
員工個人電腦通過VPN客戶端軟件連接到某一個部門的VPN路由器,建立VPN安全通道,對于出差、移動辦公,提供簡單方便的安全網絡訪問。
其中,工作在網絡層的IPSec VPN,其基于IPSec 協議,為了保障IP通訊安全的一系列開放式協議,能夠提供數據完整性認證,防重傳,保證數據機密性,數據鑒別等各種級別的服務,是當前最為流行的加密技術,特別在物聯網的網絡安全中得到廣泛應用。
2 IPSec 原理
IPSec是IETF(因特網工程任務組)頒發的為了保證傳輸數據安全性的三層隧道加密技術。它包含一組協議,為數據傳輸提供了高質量的,可互操作的,基于密碼學的安全保證,通過在IP層加密和數據源認證等方式,提供了包括數據機密性,數據完整性,來源認證,防重放等安全服務。
IKE(Internet Key Exchange)為IPSec提供了自動協商交換密鑰、建立安全聯盟的服務, 能夠簡化IPSec的使用和管理,大大簡化IPSec的配置和維護工作[3]。
2.1 IPSec 數據包
IPSec的核心是在IP層對原始數據包添加IPSec頭部來實現對原始數據包的加密、完整性和源IP認證。
2.2 IPSec的兩種分裝:AH和ESP
AH(authentication header)協議編號51,AH協議能夠為數據包提供完整性和認證的安全服務,并能防止重放攻擊(截獲網絡通信包,再次發送),但是不提供數據包加密功能。不能提供數據加密是AH協議沒有得到廣泛應用的以這個重要原因[4]。
如圖2所示為AH封裝數據包結構圖,AH封裝包含了源和目的IP地址,并且會對原始IP地址進行驗證。AH 封裝最初是為IPv6規范設計,在IPv6網絡中,因為有足夠多的地址可供設備分配、使用,所以IPv6的數據包中地址一般不會改變,但是對于IPv4規范,因為地址資源有限,達不到一個設備使用一個公網IPv4地址,多數都是需要內網IPV4和公網IPv4進行網絡地址轉換(NAT),這樣就帶來一個問題,一旦IPSec使用AH的封裝,數據包則不能穿越NAT網絡,因為經過NAT網絡之后,地址會轉換,也就不能通過地址驗證,這是AH封裝沒有廣泛應用的另一個重要原因。
ESP (encapsulation security payload)協議編號50,ESP封裝能夠為數據包提供加密、完整性和源認證三大安全服務,同樣也可以防止重放攻擊。ESP和AH封裝另外一個區別是ESP只保護數據域,不對IP頭做保護和驗證,這樣,ESP數據包可以穿透NAT網絡。
如圖3所示為ESP封裝數據包結構圖,其中SPI和序列號是最關鍵的兩個參數。SPI是一個32bit的字段,用來標識數據包的SA(security association),IPSec peer之間建立鏈接過程中,分為兩個階段,第一階段建立IKE SA,第二階段是建立IPSEC的SA,這里32bit就是第二階段的IPSec的SA編號。序列號是一個單向增長的向量編號,用來唯一標識一個ESP封裝的數據包。ESP頭里面使用序列號是為防范重放攻擊,比如:當前數據包的序列號是1000,下一個包的序列號就是1001,如果接收方收到兩個重復序列號的數據包,后面一個數據包就會被判斷為重復報攻擊,該包會被丟棄。
2.3 IPSec的兩種模式:
IPSec的分裝有兩種,傳輸也有兩種,組合起來數據包就有4種結構,鑒于ESP封裝的廣泛使用,這里以ESP與傳輸模式、ESP與隧道模式兩種包結構來進行分析。
傳輸模式(transport mode):
傳輸模式就是在原始IP數據包的IP頭和IP數據域之間插入ESP頭,末尾加上ESP尾和ESP驗證數據,對ESP頭之后到ESP驗證數據之間的數據域進行加密,原始IP數據包頭不做任何改動,數據包結構見 圖-3。配置IPSEC時,對于通信點和加密點合一的情況,就是適合使用傳輸模式,通信點是指實際發起網際通信的設備,如路由器or主機,機密點是指實際對數據包進行加密的設備,如路由器。比如員工A的個人電腦在家和處于公司路由器子網另一員工B的電腦之間收發郵件,員工A的電腦使用IPSEC客戶端連接到公司路由器的VPN服務器,這樣,員工A的電腦即是通信的也是加密點,員工B的電腦發出原始數據包,到達公司路由器,再由路由器的VPN服務加密,這樣,員工B的電腦就是通信點,公司的路由器就是加密點。這種情況,就不合適使用傳輸模式建立IPSec連接。
隧道模式(tunnel mode):
隧道模式ESP封裝的數據包結構如下圖4。
隧道模式一般用于站點到站到(network-to-network/site-to-site),兩個不同位置的分部使用帶VPN功能的路由器連接。在兩個分部的路由器自網絡的設備都是通信點,兩個路由器都是加密點。比如,分部A的路由器Arouter子網內的員工電腦A1和分部B的路由器Brouter子網內的員工電腦B1收發郵件。A1電腦發出郵件到B1電腦,A1發出的郵件被分割成一個一個IP數據包,源IP地址為A1地址,目的地址是B1地址,A1和B1都是通電點,A1發出的IP數據包到達Arouter時,觸發Arouter對數據包使用ESP和隧道模式進行封裝和加密,使用Arouter的IP地址為數據包的新的源IP地址,Brouter的IP地址為數據包的新的目的IP地址。Brouter接收到數據包后,首先對數據包解密解封裝,判斷數據包的內部原始源和目的地址,再講數據包路由到B1電腦。從B1電腦回郵件到A1電腦,也是類似過程。
3 VPN實現
3.1 網絡拓撲和環境部署
為了驗證VPN在當前流行的物聯網/云端項目上的快速部署和搭建,本實現方案部署在Linux系統下,采用開源的Linux內核IPsec解決方案-strongSwan[5]。
云端采用阿里云主機,搭載CentOS系統,安裝quagga實現動態路由。設備端采用樹莓派,搭載Ubuntu系統,同樣安裝quagga,實現路由功能。
網絡拓撲如下圖:
關于Ipsec的具體配置如下:
3.2 實現過程
在樹莓派和阿里云主機,分別安裝strongswan 以及quagga,按照上面的配置,配置好strongswan 的配置項,阿里云主機先重啟strongswan,進入等待狀態,然后在樹莓派上,重啟strongswan,使用IP up hes_vpn 命令,手工發起IPSec連接,連接成功后,可見下圖-6,VPN連接建立完成,收發包功。
可見,通過開源庫,我們可以快速地在設備和服務器端部署一個點對點的安全的VPN網絡,實現通訊網絡的安全。該方案可以便捷的應用在物聯網的部署中。
4 結束語
本文介紹了虛擬私有網絡技術VPN的幾種方式,并詳細介紹了IPSec原理和數據包封裝,以及基于PKI的加密技術,最后在樹莓派和阿里云服務器組成的網絡拓撲中,模擬了設備之間基于IPSec的VPN連接的過程,并提供了詳細的配置文件,驗證了該方案在嵌入式系統中部署的可行性和便捷性。可見,基于IPSec的VPN 技術,可以快速便捷的部署在網絡中,對通訊數據進行安全保證,相信在以后萬物互聯的浪潮中,會占據越來越重要的地位。
參考文獻:
[1] 肖蔚琪.IPSec-VPN 技術在私有虛擬專網中的應用探討[J].信息通信,2014(12):170-190.
[2] 王達.虛擬專用網(VPN)精解(第一版)[M].北京:清華大學出版社,2004.
[3] 秦柯.Cisco IPSec VPN實戰指南[M].北京:人民郵電出版社,2012:50-60.
[4] Kent S,Atkinson R. IP Authentication Header[S]. RFC2402 IETF,1998.
[5] 楊黎斌,慕德俊.基于硬件加密的嵌入式VPN網關實現[J].計算機工程與應用,2007,43(4):120-125.
【通聯編輯:張薇】