OpenVPN是什么?

答:OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用,相比传统的VPN更加安全。

VPN又是什么?

答:vpn又叫虚拟专用网络,利用可用公用网络上架设一个虚拟专用网络进行加密通信,其中VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问实现对网关中各个网络设备进行加密通信。

OpenVPN搭建使用场景?(当然这是原话)

远程办公:公司员工可以使用OpenVPN连接到公司的网络,从而访问公司的资源和应用程序,实现远程办公。
网络安全:OpenVPN可以加密数据传输,保护用户的隐私和安全,在公共Wi-Fi网络或不安全的网络环境中使用。
跨地域连接:OpenVPN可以连接不同地域的网络,实现跨地域的数据传输和资源共享。
云计算和虚拟机:OpenVPN可以连接到云计算平台或虚拟机,实现安全的数据传输和访问。
家庭网络:OpenVPN可以连接家庭网络中的多个设备,实现家庭网络的安全和共享。
游戏和娱乐:OpenVPN可以连接游戏服务器,实现游戏的安全和快速连接。
企业ybrid网络:OpenVPN可以连接企业的混合网络,实现不同网络之间的安全和数据共享。
网络桥接:OpenVPN可以桥接不同网络之间的连接,实现网络之间的安全和数据共享。
安全浏览:OpenVPN可以连接到安全的浏览代理服务器,实现安全的浏览和访问。
科研和教育:OpenVPN可以连接到科研和教育机构的网络,实现安全的数据传输和资源共享。

准备工作

需求:搭建一个虚拟网络去实现公司对内部网络访问办公。

这里我准备一台阿里云服务器配置不高宽带也不是特别高主要是价格便宜优惠一年才100元。
阿里云服务器centos7系统:安装openvpn 阿里云地址:ttps://account.aliyun.com/login/
个人笔记本windows系统:安装openvpn GUL 下载地址:OpenVPN 64 bit 2.6.12 https://www.npackd.org/p/openvpn64/2.6.12

安装openvpn

1.用ssh登录阿里云:

2.先更新:

yum -y update

3.安装依赖:

yum install -y lrzsz gcc-c++ openssl openssl-devel net-tools lzo lzo-devel pam pam-devel vim wget

4.下载openvpn:

本来是想下载版本高一点(2.6.12)的想到大家网络环境不是很好。

wget https://swupdate.openvpn.org/community/releases/openvpn-2.5.6.tar.gz

5.解压

tar -zxvf openvpn-2.5.6.tar.gz

6.安装编译

cd openvpn-2.5.6/

./configure --prefix=/data/openvpn/

#编译make

make install

##配置环境echo -e “PATH=$PATH:/data/openvpn/sbin” >/etc/profile.d/openvpn256.sh

#加载环境变量source /etc/profile

##检测是否安装完成openvpn --version

创建CA机构与服务器证书

1.下载EasyRSA

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz

2.解压

tar -zxvf EasyRSA-3.0.8.tgz

3.签发证书的默认变量文件

cd EasyRSA-3.0.8/egrep -v “$|#” vars.example >vars

##配置环境文件echo -e “set_var EASYRSA_CA_EXPIRE 36500\nset_var EASYRSA_CERT_EXPIRE 3650” > vars

4.创建CA机构与服务器证书

#生成pki目录bash easyrsa init-pki

5.创建CA文件

./easyrsa build-ca nopass

##随便创建一个名称即可demo

##CA证书创建成功##ca证书文件“/root/EasyRSA-3.0.8/pki/ca.crt##CA密钥文件 ”/root/EasyRSA-3.0.8/pki/private/ca.key

6.创建服务端证书

##openvpn_server./easyrsa gen-req openvpn_server nopass##为了方便我去名 server_vpn

Keypair and certificate request completed. Your files are:

#服务端请求文件”/root/EasyRSA-3.0.8/pki/reqs/openvpn_server.req“

#服务端私钥文件”
/root/EasyRSA-3.0.8/pki/private/openvpn_server.key“

7.签发服务端证书

./easyrsa sign server openvpn_server#输入yes

#服务端证书文件
“/root/EasyRSA-3.0.8/pki/issued/openvpn_server.crt”

8.创建交互秘钥

./easyrsa gen-dh

#交换秘钥文件
“/root/EasyRSA-3.0.8/pki/dh.pem”

#启用安全增强配置
openvpn --genkey tls-auth ta.key #我用这个指令失败了,就换了下面这一条
openvpn --genkey --secret ta.key #这条指令执行成功了
#安全增强文件
“/root/EasyRSA-3.0.8/ta.key”

OpenVPN服务端配置

1.创建日志文件

mkdir logs

2.创建用户

##创建用户组groupadd openvpn

##创建用户名并加入组和用户目录useradd -M -s /sbin/nologin -g openvpn openvpn

3.创建服务端配置文件config

vim server.conf##按键盘i进入插入模式#添加内容

#端口
port 1194
#port 51820
#协议
proto tcp
dev tun
#ca证书文件
ca  /root/EasyRSA-3.0.8/pki/ca.crt
#服务端证书文件
cert /homerootEasyRSA-3.0.8/pki/issued/openvpn_server.crt
#服务端私钥文件
key /root/EasyRSA-3.0.8/pki/private/openvpn_server.key
#交换秘钥文件
dh /root/EasyRSA-3.0.8/pki/dh.pem
#安全增强文件,0是服务端,1是客户端
tls-auth /root/EasyRSA-3.0.8/ta.key 0
#分配客户端IP的网段,不能和服务器一个网段,不能冲突
server 10.8.0.0 255.255.255.0
#运行通讯的内网路由,可以多条
push "route 192.168.0.0 255.255.255.0"
#会话检测,每十秒测试一下,超过120秒没回应就认为对方down
keepalive 10 120
#加密算法
cipher AES-256-CBC
#压缩算法
compress lz4-v2
#推送客户端使用lz4-v2算法
push "compress lz4-v2"
#最大客户端数
max-clients 100
#运行openvpn的用户和用户组
user openvpn
group openvpn
#状态日志
status  /logs/openvpn-status.log
log-append /logs/openvpn.log
#日志级别
verb 3
mute 20

##添加完成按”esc“案件在输入” :wq “保持推出即可

启动项OpenVPN

1.创建开机启动文件

vim /etc/systemd/system/openvpn.service##添加如下内容

[Unit]
Description=OpenVPN Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
#ExecStart=/data/openvpn/sbin/openvpn --config /root/openvpn-2.5.6/server.conf
ExecStart=/usr/sbin/openvpn --config /root/openvpn-2.5.6/server.conf

和原来的教程相比,#ExecStart=/data/openvpn/sbin/openvpn --config /root/openvpn-2.5.6/server.conf 执行失败了所以改成了文中现在使用的这一句、

#加载系统服务
systemctl daemon-reload
#开机启动
systemctl enable openvpn.service
#启动服务
systemctl start openvpn.service
#查看服务运行状态
systemctl status openvpn.service

启动成功:

客户端文件配置

1.客户端证书

##创建一个新目录用于生成客户端证书cd ~ mkdir openvpn_client##复制EasyRSA-3.0.8文件到cp -r EasyRSA-3.0.8/ openvpn_client/

##进入openvpn_client/cd /root/openvpn_client/EasyRSA-3.0.8

./easyrsa init-pki##输入”yes“即可

./easyrsa gen-req client_demo nopass##下一步直接回车###客服端请求文件"/root/openvpn_client/EasyRSA-3.0.8/pki/reqs/client_demo.req"##客服端私钥证书/root/openvpn_client/EasyRSA-3.0.8/pki/private/client_demo.key"

##回到服务端目录cd /root/EasyRSA-3.0.8

##将客户端复制到CA工作目录 ./easyrsa import-req /root/openvpn_client/EasyRSA-3.0.8/pki/reqs/client_demo.req client_demo

#签发证书./easyrsa sign client client_demo#输入yes

2.准备客户端配置文件

##回到openvpn目录cd /root/openvpn-2.5.6

##创建文件mkdir -p client/client_demo

##复制 cp /root/openvpn_client/EasyRSA-3.0.8/pki/private/client_demo.key /root/openvpn-2.5.6/client/client_demo cp /root/EasyRSA-3.0.8/pki/issued/client_demo.crt /root/openvpn-2.5.6/client/client_demo cp /root/openvpn_client/EasyRSA-3.0.8/ta.key /root/openvpn-2.5.6/client/client_demo cp /root/EasyRSA-3.0.8/pki/issued/openvpn_server.crt /root/openvpn-2.5.6/client/client_demo cp /root/openvpn_client/EasyRSA-3.0.8/pki/ca.crt /root/openvpn-2.5.6/client/client_demo

vim /root/openvpn-2.5.6/client/client_demo/client.ovpn

clientdev tunproto tcpremote 阿里云IP 1194resolv-retry infinitenobindca ca.crtcert client_demo.crtkey client_demo.keyremote-cert-tls servertls-auth ta.key 1cipher AES-256-CBCverb 3compress lz4-v2

3.打包下载客户端文件

tar -zcvf client_demo.tar.gz /root/openvpn-2.5.6/client

##下载scp root@你服务器ip:/root/openvpn-2.5.6/client/client_demo.tar.gz D:/

##防火墙firewall-cmd --add-port=1194/tcp --add-port=1194/udp --permanentfirewall-cmd --reload

##还有阿里云自带防火墙

测试

1.window安装好是这个样子
在这里插入图片描述

2.下载客户端文件解压

3.导入打上面文件放入”C:\Program Files\OpenVPN\config“
在这里插入图片描述

4.导入

  1. 导入完成后如果其他相关证书没有一并自动到拷贝到config下 就收到拷贝过来。
  2. 客户端启动连接
    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐