完整CentOS搭建OpenVPN服务详细教程

一、介绍 1、定义

① OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。

② 它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。

③ 目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android和iOS上运行,并包含了许多安全性的功能。它并不是一个基于Web的VPN软件,也不与IPsec及其他VPN软件包兼容。

完整CentOS搭建OpenVPN服务详细教程

 

2、原理

① OpenVPN的技术核心是虚拟网卡,其次是SSL协议实现。

② OpenVPN中的虚拟网卡

  虚拟网卡是使用网络底层编程技术实现的一个驱动软件。安装此类程序后主机上会增加一个非真实的网卡,并可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如网络浏览器)向虚拟网卡发送数据,则服务程序可以读取到该数据。如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统中都有相应的实现,这也是OpenVPN能够跨平台使用的一个重要原因。

  在OpenVPN中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,会通过SOCKET从外网上发送出去。这完成了一个单向传输的过程,反之亦然。当远程服务程序通过SOCKET从外网上接收到数据,并进行相应的处理后,又会发送回给虚拟网卡,则该应用软件就可以接收到。

  

3、加密和身份验证

(1)加密

  OpenVPN使用OpenSSL库来加密数据与控制信息。这意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。2.3.0以后版本引入PolarSSL。

(2)身份验证

OpenVPN提供了多种身份验证方式,用以确认连接双方的身份,包括:

① 预享私钥

② 第三方证书

③ 用户名/密码组合

  预享密钥最为简单,但同时它只能用于创建点对点的VPN;基于PKI的第三方证书提供了最完善的功能,但是需要额外维护一个PKI证书系统。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍需要一份服务器证书用作加密。

  

二、在服务器上搭建openvpn

声明,我的openvpn 是搭建在我自己的阿里云服务器上的

1、安装openvpn 和easy-rsa(该包用来制作ca证书)

(1)安装epel 仓库源

wget

rpm -Uvh epel-release-6-8.noarch.rpm

  

(2)安装openvpn

[root@along ~]# yum install openvpn

  

(3)在github 上,下载最新的easy-rsa

① https://github.com/OpenVPN/easy-rsa 下载包

完整CentOS搭建OpenVPN服务详细教程

② 上传,解压缩

[root@along]# mkdir openvpn

[root@along openvpn]# unzip easy-rsa-3.0.5.zip

[root@along openvpn]# mv easy-rsa-3.0.5 easy-rsa

  

2、配置/etc/openvpn/ 目录

(1)创建目录,并复制easy-rsa 目录

[root@along ~]# mkdir -p /etc/openvpn/

[root@along openvpn]# cp -a easy-rsa /etc/openvpn/

  

(2)配置,编辑vars文件,根据自己环境配置

[root@along test]# cd /etc/openvpn/easy-rsa/easyrsa3

[root@along easyrsa3]# cp vars.example vars

[root@along easy-rsa3]# vim vars

set_var EASYRSA_REQ_COUNTRY "CN" set_var EASYRSA_REQ_PROVINCE "Henan" set_var EASYRSA_REQ_CITY "Zhengzhou" set_var EASYRSA_REQ_ORG "along" set_var EASYRSA_REQ_EMAIL "along@163.com" set_var EASYRSA_REQ_OU "My OpenVPN"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgfsj.html