「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」
一、简介
VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。
OpenVPN大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。
OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。
二、环境规划
openvpn 服务端 centos7
IP 192.168.31.168
双网卡
三、安装部署
1.配置yum源(安装epel)
参考地址:fedoraproject.org/wiki/EPEL
1 | bash复制代码yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
2.生成证书
2.1.下载证书生成工具easy-rsa
1 | bash复制代码yum -y install easy-rsa |
2.2.创建证书环境目录
1 | bash复制代码mkdir -p /opt/easy-rsa |
2.3.生成秘钥前,准备vars
文件
修改文件/opt/easy-rsa/vars
中的如下配置(要取消注释)
1 | bash复制代码set_var EASYRSA_DN "cn_only" |
2.4.初始化
在当前目录下创建pki
目录,用于存储证书
1 | bash复制代码[root@openvpn easy-rsa]# cd /opt/easy-rsa/ |
2.5.创建根证书
根证书用于ca对之后生成的server和client证书签名时使用。(输入两次密码,直接回车)
1 | bash复制代码[root@openvpn easy-rsa]# /opt/easy-rsa/easyrsa build-ca |
2.6.创建server端证书和私钥文件
nopass表示不加密私钥文件,生成过程中直接回车默认
1 | bash复制代码[root@openvpn easy-rsa]# /opt/easy-rsa/easyrsa gen-req server nopass |
2.7.给server证书签名(输入yes,输入密码)
1 | bash复制代码[root@openvpn easy-rsa]# /opt/easy-rsa/easyrsa sign server server |
2.8.创建Diffie-Hellman文件,秘钥交换时的Diffie-Hellman算法
1 | bash复制代码/opt/easy-rsa/easyrsa gen-dh |
2.9.创建client端证书和私钥文件
nopass表示不加密私钥文件,生成过程中直接回车默认
1 | bash复制代码[root@openvpn easy-rsa]# /opt/easy-rsa/easyrsa gen-req client nopass |
2.10. 给client端证书签名(输入yes,输入密码)
1 | bash复制代码[root@openvpn easy-rsa]# /opt/easy-rsa/easyrsa sign client client |
四、OpenVPN服务端部署
1.安装openvpn
软件
1 | bash复制代码yum -y install openvpn |
2.修改配置文件
自行创建配置文件/etc/openvpn/server.conf
,并加入如下配置
1 | bash复制代码port 1194 #端口 |
- 拷贝证书到openvpn主配置文件目录下
1 | bash复制代码cp -a /opt/easy-rsa/pki/ca.crt /etc/openvpn/ |
4 启动openvpn
1 | bash复制代码systemctl -f enable openvpn@server.service |
五、OpenVPN客户端部署
1.安装OpenVPN客户端软件
这里是在windows环境下部署OpenVPN的客户端的,首先需要下载安装OpenVPN客户端软件
2.配置客户端
拷贝服务端生成的证书到OpenVPN安装目录的config
目录下
分别拷贝以下几个文件
1 | bash复制代码/opt/easy-rsa/pki/ca.crt |
3.编写客户端配置文件
在OpenVPN安装目录的config
目录下,新建一个client.ovpn
文件,在文件中添加如下配置:
1 | bash复制代码client #指定当前VPN是客户端 |
4.启动OpenVPN客户端软件
双击安装好后的OpenVPN软件,然后右键点击连接。
连接成功后,在托任务栏位置的OpenVPN图标会变绿色,则说明OpenVPN已经连接成功。
OpenVPN会分配一个IP地址给客户端,客户端会使用该虚拟网络IP地址与服务端进行通信。
本文转载自: 掘金