Open**的简介与搭建

一、简介

Open 是一个基于 OpenSSL 库的应用层 实现。和传统 ** 相比,它的优点是简单易用

什么是Open直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,Open无疑是Linux下开源的先锋,提供了良好的性能和友好的用户GUI。该软件最早由James Yonan编写
Open允许参与建立的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议
Open能在Linux、xBSD、Mac OS X与Windows2000/XP上运行。它并不是一个基于Web的软件,也不与IPsec及其他**软件包兼容。

【以下深蓝色字体部分来自维基百科:http://zh.wikipedia.org/wiki/Open
Open
允许参与建立的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函式库。目前Open能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista上运行,并包含了许多安全性的功能。它并不是一个基于Web的软件,也不与IPsec及其他软件包兼容。
Open**使用OpenSSL库加密数据与控制信息:它使用了OpenSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。

Open提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。Open2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。
Open
所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同时TCP也被支持。Open连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。Open提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过LZO算法压缩。IANA(Internet Assigned Numbers Authority)指定给Open的官方端口为1194。Open2.0以后版本每个进程可以同时管理数个并发的隧道。

Open使用通用网络协议(TCP与UDP)的特点使它成为IPsec等协议的理想替代,尤其是在ISP(Internet service provider)过滤某些特定协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择TCP协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。

Open**搭建

环境:centos7 3.10x86x64(core)
1、一台客户端windows7x64 IP:123.123.123.10 tun网段:10.0.100.0/24
2、网关、open 服务器(切记开启虚拟化) Centos73.10.0-514.el7.x8664
公网IP:123.123.123.123 内网IP:192.168.100.251(网关)
3、两台不同网段内网服务器(这里用wingdows7和windows XP模拟)
FTP服务器IP:192.168.150.10 Samba服务器IP:192.168.157.10*

一、安装软件包

1、更新源 yum upgrade

2、装epel库 yum -y install epel-release

3、安装依赖包 yum -y install open openssh-server lzo openssl openssl-devel NetworkManager-open open-auth-ldap
4、手动下载easy-rsa 想要生成各种证书和密钥,我们还要用到easy-rsa(只有服务器端需要easy-rsa,客户端无需安装)。坑爹的是,Open
2.3.x并没有自带这个东西,我们还需要去GitHub下载easy-rsa。更坑爹的是,GitHub上的easy-rsa已经升级到了3.0版本,该版本几乎重写了之前所有的程序代码,连使用方法都全变了,然Open的官方文档并没有作相应更新,其中介绍的仍然是easy-rsa 2.0的操作方法。为了避免不必要的麻烦,我们推荐下载2.0版本的easy-rsa,你也可以直接点击这里下载。
1)在这里我们将下载的easy-rsa-release-2.x.zip上传并解压放在/usr/local/open
/目录中(这里open目录是新建的)

openHarmony axios 和compileSdkVersion 对应关系_运维


openHarmony axios 和compileSdkVersion 对应关系_客户端_02


5、拷贝配置文件 cp /usr/share/doc/open
-2.4.4/sample/sample-config-files/server.conf /etc/open

openHarmony axios 和compileSdkVersion 对应关系_运维_03


6、备份配置文件cp /etc/open
/server.conf /etc/open/server.conf.back

openHarmony axios 和compileSdkVersion 对应关系_运维_04


openHarmony axios 和compileSdkVersion 对应关系_客户端_05


7、编辑配置文件 vim /etc/open
/server.conf

openHarmony axios 和compileSdkVersion 对应关系_操作系统_06


注:这里使用的是udp协议(tcp协议在网络较弱时容易断线)

二、配置证书

1、递归创建/easy-rsa/2.0/目录 mkdir -p /etc/open/easy-rsa/2.0/

openHarmony axios 和compileSdkVersion 对应关系_操作系统_07


2、保留原文件属性复制文件 cp -a /usr/local/open
/easy-rsa-release-2.x/easy-rsa/2.0/ /etc/open/easy-rsa/2.0(这里以后就是各种证书和密钥的根据地了)

openHarmony axios 和compileSdkVersion 对应关系_运维_08


3、编辑vars文件 vi /etc/open
/easy-rsa/2.0/vars

openHarmony axios 和compileSdkVersion 对应关系_IP_09


4、制作证书

1)备份证书配置文件 cp /etc/open/easy-rsa/2.0/openssl-1.0.0.cnf /etc/open/easy-rsa/2.0/openssl.cnf

openHarmony axios 和compileSdkVersion 对应关系_运维_10


2)切换目录让配置文件生效(根据截图提示按步骤操作)

当执行完 ./build-ca后按回车键,一直到结束。

openHarmony axios 和compileSdkVersion 对应关系_操作系统_11


3)创建服务端证书

执行命令./build-key-server server 按回车键进行,在提示输入密码的地方,设置一个密码如feiyu,在An optional company name处输入xingyoucai.com,最后输入两次“y”回车。

openHarmony axios 和compileSdkVersion 对应关系_客户端_12


openHarmony axios 和compileSdkVersion 对应关系_IP_13


4)创建客户端证书

执行命令生成迪菲•赫尔曼交换密钥./build-dh 创建秘钥文件,等待命令执行完。

openHarmony axios 和compileSdkVersion 对应关系_运维_14


5)查看目录中创建好的证书文件 ls /etc/open/easy-rsa/keys/

openHarmony axios 和compileSdkVersion 对应关系_运维_15


6)创建客户端证书文件(在/etc/open
/easy-rsa/2.0/下执行)

执行命令./build-key client1创建客户端证书文件,按回车进行,提示输入密码的地方,输入之前设置的证书密码feiyu,An optional company name处输入先前设置的公司名字(xingyoucai.com)。【一定要和先前输入的一样,其他参数如果前面设置了,也要保持一致噢】 #另外注意:有多少个客户端就需要./build-key client 多少次,当然client名字需不同。

openHarmony axios 和compileSdkVersion 对应关系_客户端_16


openHarmony axios 和compileSdkVersion 对应关系_操作系统_17


7)查看证书 ls /etc/open**/easy-rsa/keys/

openHarmony axios 和compileSdkVersion 对应关系_IP_18

三、设置iptables、路由转发

1、安装iptables yum -y install iptables-services

2、设置iptables开机自启 systemctl enable iptables

3、关闭Centos7默认的 firewall防火墙 systemctl stop firewalld

4、关闭Centos7默认的 firewall防火墙开机自启 systemctl disable firewalld

5、启动iptables systemctl start iptables

6、清空iptables默认规则 iptables –F iptables –X iptables -Z

7、设置iptables NAT转发规则 iptables -t nat -A POSTROUTING -s 10.0.100.0/24 -j MASQUERADE

openHarmony axios 和compileSdkVersion 对应关系_IP_19


openHarmony axios 和compileSdkVersion 对应关系_操作系统_20


注:保存防火墙规则service iptables save(防止重启规则丢失)

openHarmony axios 和compileSdkVersion 对应关系_网络_21


8、开启路由转发 vi /etc/sysctl.conf

openHarmony axios 和compileSdkVersion 对应关系_运维_22


验证: sysctl -p

openHarmony axios 和compileSdkVersion 对应关系_网络_23

四、启动open***

1、创建日志存放目录 mkdir /var/log/open/
2、设置启动文件 systemctl -f enable open
@server.service

openHarmony axios 和compileSdkVersion 对应关系_客户端_24


3、启动open的命令 systemctl start open@server.service

openHarmony axios 和compileSdkVersion 对应关系_网络_25


注:根据查看状态信息解决报错 systemctl status open@server.service
解决完报错重启open
systemctl start open@server.service

openHarmony axios 和compileSdkVersion 对应关系_IP_26


以上报错问题已解决,解决办法为注释以下这两行重启就好了。
#tls-auth ta.key 1 #explicit-exit-notify 1
4、打开iptables防火墙的1194端口 iptables -A INPUT -p udp --destination-port 1194 -j ACCEPT

openHarmony axios 和compileSdkVersion 对应关系_操作系统_27


5、查看open
服务运行(centos7需要安装net-tools) netstat –antulp

openHarmony axios 和compileSdkVersion 对应关系_网络_28


6、open客户端(电脑、手机)连接使用telnet命令连接**1194端口

六、配置客户端实现连接

1、把服务器上的三个客户端证书文件,下载到本地电脑配置客户端。
/etc/open
/easy-rsa/keys/ca.crt

/etc/open/easy-rsa/keys/client.crt
/etc/open
/easy-rsa/keys/client.key

2、安装好open客户端软件后,把证书文件,存放到open安装目录的config文件夹下。 从sample-config文件夹下,拷贝客户端的配置文件client.o到config文件夹下。

openHarmony axios 和compileSdkVersion 对应关系_IP_29


3、编辑config文件夹下的配置文件client.o
,修改remote my-server-1 1194 这行配置,指定open**服务器的ip地址,默认为你服务器的外IP然后修改协议。需要注意的是:在服务器端的配置需要和客户端的配置参数一致

openHarmony axios 和compileSdkVersion 对应关系_客户端_30


openHarmony axios 和compileSdkVersion 对应关系_运维_31


openHarmony axios 和compileSdkVersion 对应关系_IP_32


openHarmony axios 和compileSdkVersion 对应关系_IP_33


openHarmony axios 和compileSdkVersion 对应关系_IP_34

4、客户端连接,右击软件生成的运行图标,点击连接。

openHarmony axios 和compileSdkVersion 对应关系_IP_35


openHarmony axios 和compileSdkVersion 对应关系_运维_36


转载于:https://blog.51cto.com/13043516/2091972