张先辉
(国家广播电视总局282台,湖南 长沙 410146)
近年来广播电视传输的方式越来越多样化,广播电视监测范围也在不断扩大,很多监测业务需要通过互联网来实现,诸如IPTV用户终端、有线数字电视、互联网电视等。互联网环境不同导致播出的节目也有所不同,相关监管部门需要定期对不同的节目源进行实地收测、取证、抓包、分析等,耗费了不少的人力资源和时间成本。本文基于OpenVPN提出了一个远程监测方案,该方案适用于对IPTV用户终端、有线数字电视、互联网电视等进行远程监测,同时也解决了上述人力和时间成本的问题。本文对OpenVPN的特点进行简要分析,并搭建一个基于Windows系统的OpenVPN远程控制监测系统。
虚拟私有网络(VPN)就是一个专用的虚拟网络通道,通过该技术将两个不同地理位置的网络安全地连接起来,提供给企业之间或者个人与公司之间的一种安全的通讯线路,类似于内网专线。和传统的VPN相比,OpenVPN的性能良好且稳定,系统搭建和使用简单友好,维护也相对方便,便于相关技术人员学习使用。OpenVPN使用共享密钥、数字证书进行身份验证,这些都是根据用户自身需求利用软件自带的脚本工具配置的。利用OpenSSL加密库对通讯进行加密和证书管理,能够在Windows、Linux等常用系统上使用,它包含了许多诸如访问控制、加密、可用性管理等安全可靠的功能,已经不再是一个单纯的经过加密的网络通讯线路,而是一个可以解决广播电视远程监测系统网络环境的较优的方案。
虚拟网卡是OpenVPN的主要技术核心,依靠tun/tap驱动来实现其功能,除不具备物理网卡的硬件功能外,其他功能是一模一样的。其中包含了网卡处理驱动和字符设备驱动,负责在内核网络、物理网卡和用户之间传输数据。利用网卡驱动部分tun设备模拟网络行为处理网络数据,接收来自TCP/IP的数据或者将数据发送给TCP/IP进行处理。而字符设备驱动tap设备读写数据链路层完成与应用层的数据传送,将数据在内核网络和用户之间传送。OpenVPN虚拟网卡工作过程如下。
1.1.1 发送数据过程
①应用程序发送网络数据;
②经过路由决策,网络数据传到内核网络协议栈做处理,再传输到虚拟网卡;
③数据通过虚拟网卡进入数据队列被OpenVPN读取并写入到网络协议栈;
④网络协议栈对数据进行封装等处理,然后转发给物理网卡;
⑤物理网卡处理并发送数据。
1.1.2 接收数据过程
①物理网卡接收到数据,对比特流进行解析,将得到的数据写入内核网络协议栈;
②应用层通过字符设备驱动,把数据传给驱动网卡;
③数据通过虚拟网卡netif_rx()接收程序重新进入协议栈;
④协议栈把数据传输至上层的应用程序。
虚拟网卡工作流程如图2-1所示。
图2-1 虚拟网卡工作流程
SSL/TLS最初叫作SSL协议,是“Secure Sockets Layer”英文的缩写,是一种安全套接字协议,共推出了1.0、2.0、3.0三个版本,广泛用于当今的互联网。随着SSL协议在互联网中的应用愈发广泛,已然成为互联网的安全标准。后来IETF组织将SSL3.0协议进行改进,便有了TLS协议(Transport Layer Security)的问世,但后来人们将其统称为SSL/TLS协议。该协议通过握手方式进行参数协商,诸如加密算法、认证算法、摘要算法、密钥配送算法等,通过握手制定出相同的加密算法和秘钥等相关加密信息,核心步骤很简单,双方确立加密算法并各自生成一个公钥和一个私钥,并交换公钥用于非对称加密算法,为接下来的通讯进行加密,也可以复杂一点添加HASH算法等。这样就在开放的互联网环境中实现加密通信,从而实现安全可靠的信息传递,让双方可以安心的说悄悄话。目前SSL/TLS应用最多的地方是与HTTP(超文本传输协议)结合成HTTPS(带加密技术的HTTP),HTTP很容易被窃听,而经过SSL协议加密的HTTPS通讯即使被窃听,通讯内容也不会被轻易破解解读。
这一部分是服务器设备跟客户端设备都要做的工作,操作基本相似。通过OpenVPN的官网或者其他安全途径下载最新的安装包openvpn-install-2.4.6-I602.exe,安装在服务器和客户端的计算机中,安装过程中要注意需要勾选添加easy-rsa,安装完成以后,会在easy-rsa目录下生成OpenVPN相关证书、秘钥制作的命令脚本等相关工具。
搭建基于OpenVPN的远程监测系统,大部分和重要的工作都需要在服务器设备上进行,客户端方面较服务器端少了几个步骤,相对简单一些。服务器采用RSA非对称加密的算法和CA证书的验证方式对客户端进行验证,在默认的情况下一个客户端和服务器对应一个证书、秘钥等加密套件。所以第一步要做的就是证书和秘钥的制作。证书和秘钥的制作需要在服务器端进行,从证书制作工具(easy-rsa文件夹)找到vars.bat.sample文件,用写字板打开,这里需要设置环境变量、证书及密钥生成命令的基础信息,如国家、机构等,可依据单位信息进行编辑,如表2-1所示。
表2-1 证书密钥默认值
编辑完成后使用init-config命令进行初始化。easyrsa目录下能看到安装自带的制作证书、秘钥等可能要用到的批处理文件,接下来依次制作CA证书文件、服务器证书和秘钥文件以及相应的客户端证书和秘钥文件,如表2-2所示。制作完成后,会在easy-rsakeys目录下生成刚刚制作的相关证书和秘钥文件。
表2-2 生成证书和密钥命令
在安装目录OpenVPNsample-config文件夹中找到server.ovpn文件并拷贝至服务器端OpenVPNconfig文件夹中。将client.ovpn文件拷到客户端电脑安装目录下OpenVPNconfig目录中,并根据自身对系统搭建的情况对文件关键部分进行编辑改写如表2-3、表2-4所示。
表2-4 OpenVPN客户端配置文件
表2-3 OpenVPN服务器端配置文件
分配服务器证书(此操作在服务器设备上进行),将 keys目录下 ca.crt、ca.key、dh2048.pem、server01.crt、server01.key、ta.key这些文件存放到OpenVPNconfig目录中,如图2-1、图2-2所示。
图2-1 keys目录下的文件
图2-2 将上述文件拷贝至服务器端该目录处
分配客户端证书的操作与分配服务器证书的操作相似,将服务器端 keys目录下 ca.crt、client01.crt、client01.key、ta.key文件拷贝到客户端安装目录OpenVPNconfig下即可。
系统搭建安装完毕后,对某一地市的工控机进行连接测试,主要的测试内容是远程控制的速度与稳定性等。打开OpenVPN GUI,测试服务器及客户端是否搭建安装完成。如图3-1、图3-2所示。
图3-1 OpenVPN启动图标
图3-2 Open VPN程序主页
见图3-2,若搭建安装完成,则在OpenVPN程序主页,会看到分配的ip,图标亮绿灯。
通过服务器端OpenVPN下config文件中的日志文件,可以查到通过VPN连接到此服务器的客户端IP等信息,如图3-3所示。
图3-3 服务器端日志文件
根据文档中的IP地址信息远程连接客户端10.8.0.14,见图3-4。
图3-4 远程控制客户端界面
从连接测试环节可以看到,Open VPN系统比较稳定,远程操作、画面回传都比较正常,能够顺利对前端IPTV用户终端设备、互联网电视机顶盒进行抓包,获取抓包信息文件传回本地进行分析,也能够对前端路由器、交换机、编码器等设备进行配置调试,保障了前端设备稳定运行,保证了业务顺利开展。
本文通过对OpenVPN的安装,在服务器和客户端上进行不同的操作配置,论述了OpenVPN远程控制环境的搭建过程。服务器与客户端的构建过程包含了安装OpenVPN、建立 PKI(Public Key Infrastructure,公钥基础设施)、修改与分配配置文件四个步骤。此系统为监测系统的研发提供了新的思路和可行性,不仅可以实现远程IPTV用户终端、互联网电视、有线数字电视等监听监看相关任务,还可以随时对前端广播电视监测设备进行调试检修,极大地节省人员外出巡检带来的人力、财力、时间的成本。此外,该系统对环境的需求及技术门槛不高,操作起来非常方便,提高了前端广播电视监听监看的效率和稳定性。不过目前由于服务器设备性能及网络带宽的限制,还无法做到像内网专线那样流畅,后续会对服务器设备及网络方面进行升级优化,提高该系统的稳定性。