• 138-1082-4283 / 138-1166-5846
  • ztic@ztic.cn (销售)
  • 北京市海淀区知春路111号理想大厦1603室
搜索
手机版
扫码访问手机版
关注微信
扫码关注官方微信
  • 客服电话
    点击联系客服

    周一至周五 9:00-12:00 13:00-17:00

    客服电话

    138-1082-4283

    138-1166-5846

    电子邮件

    ztic@ztic.cn
  • 手机版

    扫描进手机版

    随时随地掌握行业动态

  • 官方微信

    扫描二维码

    关注中泰联创微信公众号

VPN在物联网中数据采集的应用

时间:2019-12-13 17:00 来源:中泰联创 作者:中泰联创 阅读:

通过使用VPN技术使我们的产品EM9118在公网远程采集数据实现高速化!

VPN简介

VPN,virtual private network,虚拟专用网络,使用公用网络架设局域网,它可以使分布于各地的设备通过internet网络连接起来,就像是在一个局域网内一样彼此访问。

企业使用VPN的好处是可以让分散在各地的员工直接通过VPN来访问公司内部局域网,从而实现移动办公,而且由于数据传输都是经过加密的,因此也大大提高了企业信息安全。

个人使用VPN的好处是可以隐藏自己的IP信息,防止泄漏个人隐私。

在物联网应用中,VPN的主要好处是配置好VPN服务器后,可以让局域网内的设备连接VPN服务器,和其他设备以及主控端共同组成一个虚拟局域网,从而方便快捷的实现不同地域之间设备的通讯。目前成熟的物联网云平台基本都无法提供高速采集,因此我们使用了VPN技术,以后云平台可以解决高速数据传输问题了,还是要尽量使用通用物联网技术的。

VPN实现技术主要有L2TP,PPTP,IPSec,SSL/TLS协议四种,其安全级别也顺次增加。

OpenVPN

它使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库,它不基于web,也不与IPSec及其它VPN软件包兼容。它算是一种基于SSL/TLS协议的VPN应用,在主流操作系统中均可以使用。

它支持三种验证方式:预享私匙,第三方证书以及用户名/密码。

预享私匙最简单,但是只能应用于点对点连接。

第三方证书功能最完善,需要维护PKI证书体系。比较复杂。

用户名/密码是OpenVPN2.0后引入的

下面的链接有一些配置介绍:

https://boke.wsfnk.com/archives/698.html

http://www.cnblogs.com/lidabo/p/7027463.html

查看版本:

openvpn --version

日志文件路径可以通过配置文件下面的条目中看到:

log-append /var/log/openvpn.log

客户端和服务器端都是一样的方法,如果是相对路径,则可以在/etc/openvpn目录下找到

实际配置一个VPN服务器:

本文参考下面两个链接写成

https://yq.aliyun.com/articles/434416

https://www.jianshu.com/p/4bbf946222d5

安装OpenVPN

EPEL 包含一个叫做 ‘epel-release’ 的包,其中包含了用于软件包签名的 gpg 密钥和软件源的信息。安装这个包到您的企业版 Linux 上之后,您将可以通过使用类似于 yum 的工具来安装软件包和它们的依赖。在默认情况下,EPEL 仓库的稳定版本是开启的。除了 epel-release 源,还有一个叫做 ‘epel-testing’ 仓库 包含尚未被视作稳定的软件,请自行斟酌开启的风险:

yum install epel-release -y

yum install openvpn easy-rsa -y

安装完毕后,使用这个命令可以看到都在哪里安装了什么:

rpm -ql openvpn

复制服务器端配置文件:

cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/

生成证书:

使用rpm -ql easy-rsa看其安装路径,类似下面:

/usr/share/doc/easy-rsa-3.0.3
/usr/share/doc/easy-rsa-3.0.3/COPYING.md
/usr/share/doc/easy-rsa-3.0.3/ChangeLog
/usr/share/doc/easy-rsa-3.0.3/README.quickstart.md
/usr/share/doc/easy-rsa-3.0.3/vars.example
/usr/share/easy-rsa
/usr/share/easy-rsa/3
/usr/share/easy-rsa/3.0
/usr/share/easy-rsa/3.0.3
/usr/share/easy-rsa/3.0.3/easyrsa
/usr/share/easy-rsa/3.0.3/openssl-1.0.cnf
/usr/share/easy-rsa/3.0.3/x509-types
/usr/share/easy-rsa/3.0.3/x509-types/COMMON
/usr/share/easy-rsa/3.0.3/x509-types/ca
/usr/share/easy-rsa/3.0.3/x509-types/client
/usr/share/easy-rsa/3.0.3/x509-types/san
/usr/share/easy-rsa/3.0.3/x509-types/server
/usr/share/licenses/easy-rsa-3.0.3
/usr/share/licenses/easy-rsa-3.0.3/gpl-2.0.txt

 

3.0.3目录下内容复制到/etc/openvpn目录下,该目录名为easy-rsa

接下来的操作均在/etc/openvpn/easy-rsa目录下进行

初始化pki目录:

./easyrsa init-pki

建立根证书,不设置密码:

./easyrsa build-ca nopass

出现下面提示的时候写上你自己的名字,我写的是ztic

Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ztic

创建服务器端证书并签名:

./easyrsa gen-req server nopass
./easyrsa sign server server

其中会有个需要输入yes的地方

创建Diffie-Hellman,确保key穿越不安全网络的命令,只有服务器端需要:

./easyrsa gen-dh

可以使用下面的命令查看证书

openssl x509 -in server.crt -text | more

创建客户端证书并签名:

easyrsa3:

./easyrsa gen-req client1 nopass
./easyrsa sign client client1

easyrsa2:

./build-key clientname

一路回车,然后y/n的时候y,就能完成了

将所有证书文件复制到openvpn根目录下

至此生成的证书文件下面的文件:

/etc/openvpn/easy-rsa/pki/ca.crt
/etc/openvpn/easy-rsa/pki/dh.pem
/etc/openvpn/easy-rsa/pki/reqs/client1.req
/etc/openvpn/easy-rsa/pki/reqs/server.req
/etc/openvpn/easy-rsa/pki/issued/client1.crt
/etc/openvpn/easy-rsa/pki/issued/server.crt
/etc/openvpn/easy-rsa/pki/private/ca.key
/etc/openvpn/easy-rsa/pki/private/client1.key
/etc/openvpn/easy-rsa/pki/private/server.key

复制文件到openvpn相关目录:

cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn
cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn

这样就将上述四个文件放入到了/etc/openvpn目录下

cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/client
cp /etc/openvpn/easy-rsa/pki/issued/client1.crt /etc/openvpn/client
cp /etc/openvpn/easy-rsa/pki/private/client1.key /etc/openvpn/client
这样就将上述三个文件复制到了/etc/openvpn/client目录,包括:ca.crtqingliu.crtqingliu.key

配置server.conf

vi server.conf

;local a.b.c.d
port 24461
proto tcp
;proto udp
;dev tap
dev tun
;dev-node MyTap
ca ca.crt
cert server.crt
key server.key
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge
;push "route 10.0.0.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
client-config-dir ccd
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 114.114.114.114"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
;duplicate-cn

#####

开机启动openvpn服务

systemctl -f enable openvpn@server.service

systemctl start openvpn@server

验证服务器端服务是否开启成功

netstat -tlnp

有类似下面内容则成功:

tcp 0 0 0.0.0.0:24461 0.0.0.0:* LISTEN 20121/openvpn

此时可以和一个客户端连接。

分配固定IP

ccd目录下添加和客户端名称一致的文件

ifconfig-push 10.8.0.34 10.8.0.33

注意由于子网掩码使用252,因此必须二进制最后两位01和10,在本例中,34给本机,33给服务器

如果修改了conf文件,则需要重启服务:

systemctl restart openvpn@server

也可以修改ipp.txt来分配地址,ccd目录比ipp.txt优先级高

ipp.txt是使用网段来标识设备,因此对应上面的地址是:

client13,10.8.0.32

连接Windows操作系统客户端

1. 安装OpenVPN, 运行openvpn-2.2.0-install.exe,默认安装即可。

2. 拷贝配置文件和证书文件到openvpn安装目录下,覆盖原有config目录,默认安装目录为:C:Program FilesOpenVPN 。主要是ca.crt, *.crt, *.key, *.ovpn

3. 以管理员身份运行桌面快捷方式: OpenVPN GUI,运行之后桌面右下角的工具栏会出现OpenVPN的小图标(小电脑)

4. 双击图标,OpenVPN将会启动连接服务器,也可右击图标选择[connect]

5. 连接成功后会提示服务器分配给本机的IP 10.8.0.X,图标变为绿色。

6. OK,OpenVPN配置完成。

windows下连接OpenVPN GUI 连接后就无法访问公网了,使用route print看路由,会发现连接后多出来了一个和vpn ip相关的0.0.0.0路由,删掉它就可以上网了,但是重新连接vpn后就又会出来那个路由了,这个还没有研究出来如何解决

有的时候连接后没有正确设置路由,导致无法ping通服务器,此时需要手动添加路由:

route add 10.8.0.22 mask 255.255.255.0 10.8.0.21

EM9118下位机配置客户端

北京中泰联创科技有限公司的数据采集卡已经配置好vpn客户端环境。

将服务器端生成的证书下载后复制到EM9118的/etc/openvpn目录中,三个文件ca.crt,clientx.crt, clientx.key

windows下使用secureCRT不能使用scp命令,可以用alt-p组合键进入sftp界面,然后可以使用get命令下载文件,put命令上传文件。

然后使用web管理界面-》系统设置-》OpenVPN设置,选中启用,保存后重启即可

注意下位机必须得是当前时间才可以

新增加客户端

1.创建名称为client的客户端证书并且签名,主要是crt文件中的“CN=”后面内容

2.将客户端签名后的证书,client.crt, client.key, ca.crt复制到客户端的/etc/openvpn文件夹中

3.添加配置文件client.conf(windows尾坠是ovpn):

client
dev tun
proto tcp
remote 服务器IP 24460
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key
comp-lzo
script-security 2
log-append /var/log/openvpn.log
verb 3

 
VPN|物联网|数据采集|数据采集卡|采集模块

 

微信二维码

扫一扫Get更多资讯

Copyright © 北京中泰联创科技有限公司 版权所有 ICP备案号:京ICP备18049974号-1 京公网安备:11010802021254号 技术支持:聚辉网络