现代移动通信技术具有通信速度快、通信灵活、安全性更强等特点,基于这些特点,笔者认为基于移动网络构建安全办公环境,特别是4G、5G来临之后,具备非常好的应用前景。于是笔者按照办公需求针对性的进行了研究和开发。由于5G网络环境和硬件板卡限制,可供开发使用的硬件板卡还没有上市,该实验主要是基于4G(TD-LTE)技术,具体分为5部分,分享给大家。
基于4G(TD-LTE)移动网络构建安全办公环境之一——环境测试
基于4G(TD-LTE)移动网络构建安全办公环境之二——硬件设计
基于4G(TD-LTE)移动网络构建安全办公环境之三——软件设计
基于4G(TD-LTE)移动网络构建安全办公环境之四——整体配置
基于4G(TD-LTE)移动网络构建安全办公环境之五——写在最后
在第一篇文章中,我们可以看出4G网络能够基本满足办公需要,然而它也存在着无公网IP,无法作为服务端为客户端提供服务;信号质量与基站有关,位置不同网速变化较大;可控性一般等问题。为更有效的实现应用,我对市面商用通信模块进行了二次开发,形成优化的4G移动平台,主要特点如下:一是摒弃WIFI热点拨号上网的做法,采用USB接口做为信号总线,避免无线网络信号干扰。二是实时查看信号强度,含2G、3G、4G等多种制式,并加装GPRS天线,减少模块的信号衰减,增强抗干扰性,更好地适应各种网络环境。三是提供限制可访问的目标IP和锁定小区等安全功能,进一步增强移动办公安全性。四是研究通过VPN拨号获得独立IP,进而实施可靠服务的方法。
本文重点介绍软件设计方面的内容。
通讯模块控制软件是用于发送和接收多组AT指令,并实现特定功能的PC端软件。主要涉及到串口操作、文件操作、AT指令发送读取操作等。设计出的软件界面如下图所示,主要由端口控制区、数据操作区、功能区、命令发送区、返回数据、端口状态区几个部分组成,界面如下图:
4.2.1开发工具和语言
软件采用VS作为开发工具,借助了MFC操作串口的应用程序框架。
4.2.2端口控制区功能实现
端口控制区的功能是识别出无线通讯模块对应的PC UI Interface。一般选择端口号为COM1,波特率为9600,一个校验位,数据位为8,无停止位,见下图:
4.2.3数据操作区功能实现
数据操作区是对接收的数据进行文件存档,或者对接收到的数据显示清空。其实现的效果如下图:
4.2.4功能区实现
功能区是软件的核心部分,主要实现功能如下:
- 网络类型
实现的是查询模块当前所处网络环境,返回的数据为:
数据具体含义是:最开始是两条AT指令,然后在AT+COPS=?后返回当前模块所处小区所覆盖的运营商信号(1,"CHINA MOBILE,"CMCC","46000",7)。
代表手动搜网状态下,得到网络名称为CHINA MOBILE(移动)的运营商网络,缩写码为CMCC,国家代码和网络代码合起来为46000,识别出的网络制式为7(EUTRAN,LTE网络),同理后面的(1,"CHINA MOBILE","CMCC","46000",2)为CHINA MOBILE的3G网络,依次类推得出CHN-UNICOM(联通)的4G网络,CHN-CT(电信)的4G网络。根据实际情况,不同地点能够找到的网络信号有所差别。
- 2G信号强度
搜寻到2G网络以后,通过发送指令可获取搜寻到的2G网络的信号强度,返回的值为:
其中第一条AT指令让模块搜寻2G网络,第二条指令查询2G网络的信号强度,这里的RSSI值为14,算是一个中等偏下的水平。
- 3G信号强度
同上面的情况一样,首先让模块只搜索3G网络,然后在查询3G网络的信号强度。需要修改AT^SYSCFGEX中的搜寻网络类型为02 对应的是3G网络。实际返回的效果为:
- 4G信号强度
和上面2G 3G信号强度查询一样其返回的数据为:
注册状态
模块返回结果如下:
其中<n>和<stat>的含义解释如下:
- 飞行模式和GPRS数据OFF
对于普通上网卡而言,此两项都是直接关闭上网功能。但对于具备上网、短信和话音功能的电话卡来说,飞行模式相比关闭GRPS更彻底。若需网络恢复正常,在命令发送区输入AT+CFUN=1(回车)并发送即可。
- 访问目的IP
限制模块只能联接特定ip的指定端口,如访问百度搜索的80端口,首先输入ATIPINIT="any"(1234可以任意填写为字符串),再输入ATSSLEN=1,1,1初始化和设置安全套接字,最后AT^IPOPEN=1,"HTTP","61.134.169.125",80(1是linkID, "HTTP"是服务类型,"61.134.169.125"是百度的ip,80是对应的端口号),需要设置成其他选项见下图:
命令成功返回的信息为:
可通过输入AT指令 AT^IPCLOSE=1来断开连接。
- 小区锁定
此功能限制上网模块使用范围,以防事后未切断网络暴露身份。要完成此功能,首先通过ATMONSC查询基站信息,关注返回值中的<LAC>参数的值,这个代表小区号。若要锁定LTE网络下的333C小区,再发送命令ATCELLLOCK=1,"04","333C","00000001"\r\n",即可实现。