在阿里云服务器搭建Open未-皮-恩

Posted JohnnyFang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在阿里云服务器搭建Open未-皮-恩相关的知识,希望对你有一定的参考价值。

    V-P-N​(Virtual Private Network)​虚拟私有网络,又称为虚拟专用网络,用于在不安全的线路上安全的传输数据,与专用网相对应。OpenV-P-N是一个能够实现V-P-N的开源软件,它支持 SSL/TLS 安全、Ethernet bridging、经由代理的 TCP 或 UDP 隧道和 NAT。另外,它也支持动态 IP 地址以及DHCP,可伸缩性足以支持数百或数千用户的使用场景,同时可移植至大多数主流操作系统平台上。

    此次实验主要是通过阿里云服务器来搭建OpenV-P-N,模拟企业员工出差也能连接到公司内网。

  1. 阿里云服务器购买及基础设置

    至少准备两台阿里云服务器,一台作为OpenV-P-N服务器兼职CA服务器,一台作为企业内网服务器。

1.1 主服务器购买

1.1.1 基础配置

    因为只是模拟一下出差在外的员工使用内网服务,笔者在“基础配置”部分选择“按量付费”会相对划算;找到合适的地区去选购一台云服务器,配置低点也行,就是性能可能会差点,有可能会导致实验失败,笔者这边就选择2v4g了;镜像部分可根据自己的习惯来选择版本,如果选择CentOS8系列,下载服务需自己配置yum源;存储部分选择默认的40够用​​该部分需注意所选择的服务器是在哪个可用区的,后面交换机设置环节要用到​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件

在阿里云服务器搭建Open未-皮-恩_内网_02

在阿里云服务器搭建Open未-皮-恩_内网_03

    如果是首次在阿里云进行付费操作,还需进行充值,并且最低充值金额为100元,当然用来做实验肯定是够的。

在阿里云服务器搭建Open未-皮-恩_配置文件_04

1.1.2 网络与安全组

    首次购买需创建专用网络,点击“前往控制台创建”,里面有三个供选择的内网网段​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_05

在阿里云服务器搭建Open未-皮-恩_内网_06

在阿里云服务器搭建Open未-皮-恩_服务器_07

    由于选择的网段比较大,作为内网肯定用不了那么多,可以使用交换机来划分小的网段。需要注意交换机部分的可用区部分,后面内网服务器的地区选择需要与此处设定的可用区保持一致。保存设置后,返回之前的页面,点击刷新按钮即可看到专有网络和内网网内信息​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_08

在阿里云服务器搭建Open未-皮-恩_配置文件_09

    “公网IP”部分,阿里云内网使用划分的172.30.0.0/24网段,要想通过外网连接,需要使用公网地址,因此购买时的“分配公网IP地址”前需要打√;“带宽计费模式”选择“按使用流量”会比较划算;“带宽峰值”默认5M够用,调低点也行,为了保准网速笔者改成10M​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_10

    ​1.1.3 系统配置

    “登录凭证”部分可选择“创建后设置”,和后面两台内网主机的密*码设成一样的,便于管理;“主机名”部分建议设一个比较好记的,便于通其他内网主机区分开​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_11

    分组设置部分不用动;确认订单勾选《云服务器ECS服务条款》即可,其他部分不用动,另外要记得试验后进行实例释放​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_12

在阿里云服务器搭建Open未-皮-恩_配置文件_13

1.1.4 修改私网ip

    进入控制台后可查看已购买的实例,并会显示实例的公网和内网地址。如想修改默认的实例私网地址,需先将实例暂停掉​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_14

在阿里云服务器搭建Open未-皮-恩_服务器_15

在阿里云服务器搭建Open未-皮-恩_内网_16

1.2 内网服务器购买

    内网服务器要求不高,配置比较随意,需注意的是“地域及可用区”要与主服务器保持一致,否则内网不在同网段无法连接;公网地址不用勾选;密*码部分选择后面设置,与主服务器保持一次便于管理​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_17

在阿里云服务器搭建Open未-皮-恩_服务器_18

在阿里云服务器搭建Open未-皮-恩_服务器_19

1.3 统一设置密*码

    停止所有的实例服务,将所有实例勾选后,点击下方的“重置实例密*码”进行统一的密*码设置,如果想修改内网服务器的ip也可参照上面主服务的修改方法​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_20


  1. 连接及内网服务下载

2.1 阿里云服务器连接

    阿里云服务器的登录可通过阿里云网页,也可通过xshell等方式连接。点击控制台实例右侧“远程连接”-“立即登录”-输入密*码后即可登录到对应的服务器​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_21

在阿里云服务器搭建Open未-皮-恩_服务器_22

在阿里云服务器搭建Open未-皮-恩_配置文件_23

    查看地址时显示的是内网地址而没有公网地址,因为使用了DNAT,通过防火墙将内网地址映射成为公网地址​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_24

2.2 内网服务器下载httpd服务

    两台内网服务器下载并开启httpd服务,此时内网之间可以查看网页内网,外网暂时无法查看​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_25

在阿里云服务器搭建Open未-皮-恩_配置文件_26

在阿里云服务器搭建Open未-皮-恩_配置文件_27

在阿里云服务器搭建Open未-皮-恩_配置文件_28

    另外,由于官方已经停止对CentOS8系列的更新,yum源这块需要自己去创建,当前笔者亲测可行的如下:

在阿里云服务器搭建Open未-皮-恩_服务器_29

2.3 开放1194端口

    使用OpenV-P-N会打开1194端口,在阿里云中是有防火墙的,默认的只允许了22端口、Windows远程桌面的3389端口和进行ping操作的-1端口,因此需要在阿里云上开放服务器的1194端口。

    在阿里云的控制台左侧找到“安全组”,点击“安全组ID/名称”部分进入端口设置页面,选择“手动添加”​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_30

在阿里云服务器搭建Open未-皮-恩_配置文件_31


  1. 服务器配置文件准备及修改

3.1 下载服务

    主服务器端下载openv-p-n软件和证书管理工具​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_32

在阿里云服务器搭建Open未-皮-恩_内网_33

3.2 生成服务器配置文件

    openv-p-n默认的配置文件是在/etc/openv-p-n/目录下,但是现在没有相关的配置文件,可以拷贝参考案例到目录下,此时查看/etc/openv-p-n目录, 会发现多出了server.conf文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_34

在阿里云服务器搭建Open未-皮-恩_配置文件_35

3.3 准备证书签发相关文件

    同理,执行​ cp -r /usr/share/easy-rsa/ /etc/openv-p-n/easy-rsa-server​ 命令拷贝生成证书签发相关文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_36

3.4 准备签发证书相关变量的配置文件

    执行 ​cp /usr/share/doc/easy-rsa/vars.example /etc/openv-p-n/easy-rsa-server/3/vars​ 命令生成签发证书相关的配置文件,这个配置文件规定了CA证书的有效期等​​建议修改给CA和OpenV-P-N服务器颁发的证书的有效期,可适当加长。例如,CA的默认有效期是10年,可以改为100年;服务器的证书有效期默认为825天,可以改为10年​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_37


  1. 准备证书相关文件

4.1 初始化PKI和CA签发机构环境

    ​进入到/etc/openv-p-n/easy-rsa-server/3/ 目录下,其实是一个软链接,指向的是3.0.8文件夹,tree可查看文件夹下的文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_38

    初始化数据,在当前目录下生成pki目录及相关文件。当前是1个文件夹11个文件,执行 ./easyrsa init-pki 命令,使用tree查看,变成了4个文件夹,13个文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_39

4.2 创建CA机构

    执行 ​./easyrsa build-ca nopass​ 命令,创建自签名CA证书,并且不设口令,通用名可就用Easy-RSA CA,此时执行tree查看,已经有14个文件夹,18个文件。执行 ​openssl x509 -in pki/ca.crt -noout -text​ 命令可将证书的相关信息以文本形式输出,便于查看​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_40

在阿里云服务器搭建Open未-皮-恩_服务器_41

在阿里云服务器搭建Open未-皮-恩_配置文件_42

    也可执行 ​sz pki/ca.crt​ 命令可将证书保存到电脑桌面​(如下图)​。

    *注意不要直接在页面登录中操作此命令,否则容易报错

在阿里云服务器搭建Open未-皮-恩_配置文件_43

4.3 创建服务端证书申请

    ​执行 ​./easyrsa gen-req server nopass​ 命令创建openv-p-n服务器证书申请文件,通用名部分可空,也可设置想要的名称。其中server是文件前缀,并且证书私钥文件是不设置口令的​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_44

4.4 签发服务端证书

    执行​ ./easyrsa help sign​ 命令可查看如何颁发证书。

在阿里云服务器搭建Open未-皮-恩_服务器_45

    针对上面的server.req的申请,颁发server类型的证书,即执行 ​./easyrsa sign server server​ 命令生成,查看生成的证书显示的是v,因而是有效的,也可发送到桌面查看​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_46

在阿里云服务器搭建Open未-皮-恩_服务器_47

在阿里云服务器搭建Open未-皮-恩_服务器_48

4.5 创建DH秘钥

    创建方法有脚本和命令行两种,这里就用脚本创建​(命令行的为:openssl dhparam -out /etc/openv-p-n/dh2048.pem 2048)​,执行 ​./easyrsa gen-dh ​命令,等待一会,会生成一个一个pki/dh.pem文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_49

4.6 准备客户端证书环境

    当前准备的证书是根CA和server的证书,有效期是100年和10年的,服务端的或者用户的证书需要准备一套新的环境。

    主服务器执行 cp -r /usr/share/easy-rsa/ /etc/openv-p-n/easy-rsa-client 命令,创建一个用户的文件夹来装用户的证书等信息​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_50

4.7 创建客户端证书申请

    进入到/etc/openv-p-n/easy-rsa-client/3/ 目录下,执行 ​./easyrsa init-pki ​命令生成证书申请所需目录pki和文件,同时创建用户johnnyfang的证书申请文件和私钥文件​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_51

在阿里云服务器搭建Open未-皮-恩_服务器_52

4.8 签发客户端证书

    ​进入到/etc/openv-p-n/easy-rsa-server/3目录下,将客户端证书请求文件复制到CA的工作目录,同时修改给客户端颁发的证书的有效期,建议改为90天或者180天​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_53

在阿里云服务器搭建Open未-皮-恩_内网_54

    执行 ​./easyrsa sign client johnnyfang ​命令给johnnyfang用户签发客户端证书,查看证书索引数据库中多出了johnnyfang的证书信息,并且是v开头,所以是有效的​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_55

在阿里云服务器搭建Open未-皮-恩_内网_56

    如果是企业内部,要签发的证书比较多,也可以考虑使用脚本,脚本内容如下:

在阿里云服务器搭建Open未-皮-恩_服务器_57

    测试一下脚本,以用户名为LeoMessi为例,是可以创建成功的​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_58

在阿里云服务器搭建Open未-皮-恩_配置文件_59

4.9 将CA和服务器证书相关文件复制到服务器相应的目录

    执行 ​mkdir /etc/openv-p-n/certs​ 命令来创建一个文件夹来专门放CA和服务器的证书,同时将对应内容都拷贝进去​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_60

4.10 将客户端私钥与证书相关文件复制到服务器相关的目录

    执行 ​mkdir /etc/openv-p-n/client/johnnyfang/​ 命令创建johnnyfang的文件夹,同时将将johnnyfang的证书相关文件都拷贝到/etc/openv-p-n/client/johnnyfang目录下,以便用户拿到后放在Windows里使用​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_61


  1. 准备服务器端配置文件

5.1 修改配置文件

    之前拷贝过来的/etc/openv-p-n/server.conf配置文件内容比较多,直接修改的话比较麻烦,可以考虑自己来重新创建。删除配置文件的全部内容,并填写如下内容​(该部分截图有错,需将配置文件放在/etc/openv-p-n/server目录下)​:

在阿里云服务器搭建Open未-皮-恩_内网_62

5.2 准备日志相关目录

    查看配置文件设置的openv-p-n和日志保存路径是否存在,不存在的需创建​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_63


  1. 准备iptables规则和内核参数

6.1 开启ip_forward

    在上周的作业中,我们已经了解到,要想将内网和外网进行连接,需要开启中间服务器的ip_forward转发功能​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_64

6.2 添加SNAT规则

    将规则写到配置文件中,其中,10.8.0.0/24为V-P-N网络中的虚拟网段,只要是从这个网段来的,就进行地址伪装处理,这里是将地址伪装成openv-p-n的内网地址,即172.30.0.1这个ip。

在阿里云服务器搭建Open未-皮-恩_服务器_65

在阿里云服务器搭建Open未-皮-恩_配置文件_66


  1. 启动OpenV-P-N

    CentOS8 默认缺失/usr/lib/systemd/system/openv-p-n@.service文件,可以从CentOS7复制文件,也可自己新建一个​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_67

    重新加载后,可以设为启动并开机自启动。此时查看端口,1194端口已经打开,查看ip,发现多了虚拟网络的10.8.0.3的地址。查看日志,最后一项也显示了初始化完成​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_68

在阿里云服务器搭建Open未-皮-恩_配置文件_69

在阿里云服务器搭建Open未-皮-恩_内网_70


  1. 准备客户端配置文件

    准备一个客户端的配置文件,这个配置文件是所有客户端共用的,同时生成客户端文件后缀必须为.ov-p-n,因为这个文件是要放在Windows中使用,而Windows对文件后缀比较敏感,其他的后缀会导致Windows无法识别​(如下图,​打码部分为公网ip,尽量减少空格,防止后面客户端无法登录​)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_71


  1. Windows配置部署OpenV-P-N 客户端

9.1 安装Windows相关软件

    Open-V-P-N客户端软件可以通过官网下载,不过现在好像没办法去官网下了,笔者这边刚好有一个安装程序就直接安装了。安装完成后,在电脑桌面会生成一个图标,右击图标,选择“打开文件所在的位置”后进入到上一级目录,有一个config文件夹,这个文件夹为后期保存证书等信息等文件夹​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_72

9.2 主服务器打包文件

    主服务器段进入到/etc/openv-p-n/client/johnnyfang/目录下,可查看有4个文件,执行​ tar cf /root/johnnyfang.tar ./​ 命令将目录下的四个文件打包给root目录下,再发送到电脑桌面。在电脑桌面解压后剪切到上述config文件夹中​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_内网_73

在阿里云服务器搭建Open未-皮-恩_内网_74

9.3 客户端测试

    客户端在未连接时,电脑端是无法对内网进行ping或者访问页面的​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_配置文件_75

在阿里云服务器搭建Open未-皮-恩_服务器_76

在阿里云服务器搭建Open未-皮-恩_服务器_77

    连接后,则可以ping通内网,也能在本地访问内网网页,同时可以直接通过本地主机连接内网主机​(如下图)​。

在阿里云服务器搭建Open未-皮-恩_服务器_78

在阿里云服务器搭建Open未-皮-恩_内网_79

在阿里云服务器搭建Open未-皮-恩_服务器_80

在阿里云服务器搭建Open未-皮-恩_服务器_81


  1. 故障排错

10.1 在tcp模式下开启explicit-exit-notify 导致无法启动

    explicit-exit-notify 可以支持在UDP协议时,OpenV-P-N重启后客户端自动重新连接。如果配置文件里面有“explicit-exit-notify 1”,需要将“proto tcp”改为“proto udp”。

10.2 压缩算法错误导致连接失败

    OpenV-P-N 2.4.x 客户端支持更新的压缩算法lz4-v2, 而comp-lzo是为老版本兼容使用,两者不要在一起混用,否则可能会导致连接失败。

10.3 工作模式错误

    ​OpenV-P-N两种工作模式:TUN和TAP,它们都可以支持TCP和UDP协议,但如果服务器和客户工作模式不同,比如服务器为TAP,客户端为TUN,就会导致连接失败。


  1. 阿里云资源释放

    完成实验后,记得将阿里云服务器的资源进行释放,否则在不关机的情况下,如果有流量产生会一直扣钱。

    控制台停止服务器运行后,选择释放设置-立即释放。

在阿里云服务器搭建Open未-皮-恩_内网_82

    删除安全组部分添加的TCP和UDP协议。

在阿里云服务器搭建Open未-皮-恩_内网_83

    删除专有网络部分的交换机设置。

在阿里云服务器搭建Open未-皮-恩_配置文件_84

以上是关于在阿里云服务器搭建Open未-皮-恩的主要内容,如果未能解决你的问题,请参考以下文章

从零开始用阿里云服务器搭建网页

阿里云无法访问ECS云服务器怎么解决

RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群

从零开始搭建一个K8S的环境

阿里云搭建邮箱服务无法发送邮件,可能是端口问题

使用Aliyun阿里云ECS云服务器及宝塔安装LAMP环境并搭建WordPress博客