張先輝
(國家廣播電視總局282臺,湖南 長沙 410146)
近年來廣播電視傳輸?shù)姆绞皆絹碓蕉鄻踊瑥V播電視監(jiān)測范圍也在不斷擴(kuò)大,很多監(jiān)測業(yè)務(wù)需要通過互聯(lián)網(wǎng)來實(shí)現(xiàn),諸如IPTV用戶終端、有線數(shù)字電視、互聯(lián)網(wǎng)電視等。互聯(lián)網(wǎng)環(huán)境不同導(dǎo)致播出的節(jié)目也有所不同,相關(guān)監(jiān)管部門需要定期對不同的節(jié)目源進(jìn)行實(shí)地收測、取證、抓包、分析等,耗費(fèi)了不少的人力資源和時間成本。本文基于OpenVPN提出了一個遠(yuǎn)程監(jiān)測方案,該方案適用于對IPTV用戶終端、有線數(shù)字電視、互聯(lián)網(wǎng)電視等進(jìn)行遠(yuǎn)程監(jiān)測,同時也解決了上述人力和時間成本的問題。本文對OpenVPN的特點(diǎn)進(jìn)行簡要分析,并搭建一個基于Windows系統(tǒng)的OpenVPN遠(yuǎn)程控制監(jiān)測系統(tǒng)。
虛擬私有網(wǎng)絡(luò)(VPN)就是一個專用的虛擬網(wǎng)絡(luò)通道,通過該技術(shù)將兩個不同地理位置的網(wǎng)絡(luò)安全地連接起來,提供給企業(yè)之間或者個人與公司之間的一種安全的通訊線路,類似于內(nèi)網(wǎng)專線。和傳統(tǒng)的VPN相比,OpenVPN的性能良好且穩(wěn)定,系統(tǒng)搭建和使用簡單友好,維護(hù)也相對方便,便于相關(guān)技術(shù)人員學(xué)習(xí)使用。OpenVPN使用共享密鑰、數(shù)字證書進(jìn)行身份驗(yàn)證,這些都是根據(jù)用戶自身需求利用軟件自帶的腳本工具配置的。利用OpenSSL加密庫對通訊進(jìn)行加密和證書管理,能夠在Windows、Linux等常用系統(tǒng)上使用,它包含了許多諸如訪問控制、加密、可用性管理等安全可靠的功能,已經(jīng)不再是一個單純的經(jīng)過加密的網(wǎng)絡(luò)通訊線路,而是一個可以解決廣播電視遠(yuǎn)程監(jiān)測系統(tǒng)網(wǎng)絡(luò)環(huán)境的較優(yōu)的方案。
虛擬網(wǎng)卡是OpenVPN的主要技術(shù)核心,依靠tun/tap驅(qū)動來實(shí)現(xiàn)其功能,除不具備物理網(wǎng)卡的硬件功能外,其他功能是一模一樣的。其中包含了網(wǎng)卡處理驅(qū)動和字符設(shè)備驅(qū)動,負(fù)責(zé)在內(nèi)核網(wǎng)絡(luò)、物理網(wǎng)卡和用戶之間傳輸數(shù)據(jù)。利用網(wǎng)卡驅(qū)動部分tun設(shè)備模擬網(wǎng)絡(luò)行為處理網(wǎng)絡(luò)數(shù)據(jù),接收來自TCP/IP的數(shù)據(jù)或者將數(shù)據(jù)發(fā)送給TCP/IP進(jìn)行處理。而字符設(shè)備驅(qū)動tap設(shè)備讀寫數(shù)據(jù)鏈路層完成與應(yīng)用層的數(shù)據(jù)傳送,將數(shù)據(jù)在內(nèi)核網(wǎng)絡(luò)和用戶之間傳送。OpenVPN虛擬網(wǎng)卡工作過程如下。
1.1.1 發(fā)送數(shù)據(jù)過程
①應(yīng)用程序發(fā)送網(wǎng)絡(luò)數(shù)據(jù);
②經(jīng)過路由決策,網(wǎng)絡(luò)數(shù)據(jù)傳到內(nèi)核網(wǎng)絡(luò)協(xié)議棧做處理,再傳輸?shù)教摂M網(wǎng)卡;
③數(shù)據(jù)通過虛擬網(wǎng)卡進(jìn)入數(shù)據(jù)隊(duì)列被OpenVPN讀取并寫入到網(wǎng)絡(luò)協(xié)議棧;
④網(wǎng)絡(luò)協(xié)議棧對數(shù)據(jù)進(jìn)行封裝等處理,然后轉(zhuǎn)發(fā)給物理網(wǎng)卡;
⑤物理網(wǎng)卡處理并發(fā)送數(shù)據(jù)。
1.1.2 接收數(shù)據(jù)過程
①物理網(wǎng)卡接收到數(shù)據(jù),對比特流進(jìn)行解析,將得到的數(shù)據(jù)寫入內(nèi)核網(wǎng)絡(luò)協(xié)議棧;
②應(yīng)用層通過字符設(shè)備驅(qū)動,把數(shù)據(jù)傳給驅(qū)動網(wǎng)卡;
③數(shù)據(jù)通過虛擬網(wǎng)卡netif_rx()接收程序重新進(jìn)入?yún)f(xié)議棧;
④協(xié)議棧把數(shù)據(jù)傳輸至上層的應(yīng)用程序。
虛擬網(wǎng)卡工作流程如圖2-1所示。
圖2-1 虛擬網(wǎng)卡工作流程
SSL/TLS最初叫作SSL協(xié)議,是“Secure Sockets Layer”英文的縮寫,是一種安全套接字協(xié)議,共推出了1.0、2.0、3.0三個版本,廣泛用于當(dāng)今的互聯(lián)網(wǎng)。隨著SSL協(xié)議在互聯(lián)網(wǎng)中的應(yīng)用愈發(fā)廣泛,已然成為互聯(lián)網(wǎng)的安全標(biāo)準(zhǔn)。后來IETF組織將SSL3.0協(xié)議進(jìn)行改進(jìn),便有了TLS協(xié)議(Transport Layer Security)的問世,但后來人們將其統(tǒng)稱為SSL/TLS協(xié)議。該協(xié)議通過握手方式進(jìn)行參數(shù)協(xié)商,諸如加密算法、認(rèn)證算法、摘要算法、密鑰配送算法等,通過握手制定出相同的加密算法和秘鑰等相關(guān)加密信息,核心步驟很簡單,雙方確立加密算法并各自生成一個公鑰和一個私鑰,并交換公鑰用于非對稱加密算法,為接下來的通訊進(jìn)行加密,也可以復(fù)雜一點(diǎn)添加HASH算法等。這樣就在開放的互聯(lián)網(wǎng)環(huán)境中實(shí)現(xiàn)加密通信,從而實(shí)現(xiàn)安全可靠的信息傳遞,讓雙方可以安心的說悄悄話。目前SSL/TLS應(yīng)用最多的地方是與HTTP(超文本傳輸協(xié)議)結(jié)合成HTTPS(帶加密技術(shù)的HTTP),HTTP很容易被竊聽,而經(jīng)過SSL協(xié)議加密的HTTPS通訊即使被竊聽,通訊內(nèi)容也不會被輕易破解解讀。
這一部分是服務(wù)器設(shè)備跟客戶端設(shè)備都要做的工作,操作基本相似。通過OpenVPN的官網(wǎng)或者其他安全途徑下載最新的安裝包openvpn-install-2.4.6-I602.exe,安裝在服務(wù)器和客戶端的計(jì)算機(jī)中,安裝過程中要注意需要勾選添加easy-rsa,安裝完成以后,會在easy-rsa目錄下生成OpenVPN相關(guān)證書、秘鑰制作的命令腳本等相關(guān)工具。
搭建基于OpenVPN的遠(yuǎn)程監(jiān)測系統(tǒng),大部分和重要的工作都需要在服務(wù)器設(shè)備上進(jìn)行,客戶端方面較服務(wù)器端少了幾個步驟,相對簡單一些。服務(wù)器采用RSA非對稱加密的算法和CA證書的驗(yàn)證方式對客戶端進(jìn)行驗(yàn)證,在默認(rèn)的情況下一個客戶端和服務(wù)器對應(yīng)一個證書、秘鑰等加密套件。所以第一步要做的就是證書和秘鑰的制作。證書和秘鑰的制作需要在服務(wù)器端進(jìn)行,從證書制作工具(easy-rsa文件夾)找到vars.bat.sample文件,用寫字板打開,這里需要設(shè)置環(huán)境變量、證書及密鑰生成命令的基礎(chǔ)信息,如國家、機(jī)構(gòu)等,可依據(jù)單位信息進(jìn)行編輯,如表2-1所示。
表2-1 證書密鑰默認(rèn)值
編輯完成后使用init-config命令進(jìn)行初始化。easyrsa目錄下能看到安裝自帶的制作證書、秘鑰等可能要用到的批處理文件,接下來依次制作CA證書文件、服務(wù)器證書和秘鑰文件以及相應(yīng)的客戶端證書和秘鑰文件,如表2-2所示。制作完成后,會在easy-rsakeys目錄下生成剛剛制作的相關(guān)證書和秘鑰文件。
表2-2 生成證書和密鑰命令
在安裝目錄OpenVPNsample-config文件夾中找到server.ovpn文件并拷貝至服務(wù)器端OpenVPNconfig文件夾中。將client.ovpn文件拷到客戶端電腦安裝目錄下OpenVPNconfig目錄中,并根據(jù)自身對系統(tǒng)搭建的情況對文件關(guān)鍵部分進(jìn)行編輯改寫如表2-3、表2-4所示。
表2-4 OpenVPN客戶端配置文件
表2-3 OpenVPN服務(wù)器端配置文件
分配服務(wù)器證書(此操作在服務(wù)器設(shè)備上進(jìn)行),將 keys目錄下 ca.crt、ca.key、dh2048.pem、server01.crt、server01.key、ta.key這些文件存放到OpenVPNconfig目錄中,如圖2-1、圖2-2所示。
圖2-1 keys目錄下的文件
圖2-2 將上述文件拷貝至服務(wù)器端該目錄處
分配客戶端證書的操作與分配服務(wù)器證書的操作相似,將服務(wù)器端 keys目錄下 ca.crt、client01.crt、client01.key、ta.key文件拷貝到客戶端安裝目錄OpenVPNconfig下即可。
系統(tǒng)搭建安裝完畢后,對某一地市的工控機(jī)進(jìn)行連接測試,主要的測試內(nèi)容是遠(yuǎn)程控制的速度與穩(wěn)定性等。打開OpenVPN GUI,測試服務(wù)器及客戶端是否搭建安裝完成。如圖3-1、圖3-2所示。
圖3-1 OpenVPN啟動圖標(biāo)
圖3-2 Open VPN程序主頁
見圖3-2,若搭建安裝完成,則在OpenVPN程序主頁,會看到分配的ip,圖標(biāo)亮綠燈。
通過服務(wù)器端OpenVPN下config文件中的日志文件,可以查到通過VPN連接到此服務(wù)器的客戶端IP等信息,如圖3-3所示。
圖3-3 服務(wù)器端日志文件
根據(jù)文檔中的IP地址信息遠(yuǎn)程連接客戶端10.8.0.14,見圖3-4。
圖3-4 遠(yuǎn)程控制客戶端界面
從連接測試環(huán)節(jié)可以看到,Open VPN系統(tǒng)比較穩(wěn)定,遠(yuǎn)程操作、畫面回傳都比較正常,能夠順利對前端IPTV用戶終端設(shè)備、互聯(lián)網(wǎng)電視機(jī)頂盒進(jìn)行抓包,獲取抓包信息文件傳回本地進(jìn)行分析,也能夠?qū)η岸寺酚善?、交換機(jī)、編碼器等設(shè)備進(jìn)行配置調(diào)試,保障了前端設(shè)備穩(wěn)定運(yùn)行,保證了業(yè)務(wù)順利開展。
本文通過對OpenVPN的安裝,在服務(wù)器和客戶端上進(jìn)行不同的操作配置,論述了OpenVPN遠(yuǎn)程控制環(huán)境的搭建過程。服務(wù)器與客戶端的構(gòu)建過程包含了安裝OpenVPN、建立 PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)、修改與分配配置文件四個步驟。此系統(tǒng)為監(jiān)測系統(tǒng)的研發(fā)提供了新的思路和可行性,不僅可以實(shí)現(xiàn)遠(yuǎn)程IPTV用戶終端、互聯(lián)網(wǎng)電視、有線數(shù)字電視等監(jiān)聽監(jiān)看相關(guān)任務(wù),還可以隨時對前端廣播電視監(jiān)測設(shè)備進(jìn)行調(diào)試檢修,極大地節(jié)省人員外出巡檢帶來的人力、財力、時間的成本。此外,該系統(tǒng)對環(huán)境的需求及技術(shù)門檻不高,操作起來非常方便,提高了前端廣播電視監(jiān)聽監(jiān)看的效率和穩(wěn)定性。不過目前由于服務(wù)器設(shè)備性能及網(wǎng)絡(luò)帶寬的限制,還無法做到像內(nèi)網(wǎng)專線那樣流暢,后續(xù)會對服務(wù)器設(shè)備及網(wǎng)絡(luò)方面進(jìn)行升級優(yōu)化,提高該系統(tǒng)的穩(wěn)定性。