搭建基于证书认证登录的OpenVPN服务器

一、OpenVPN 简介

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

OpenVPN 允许参与建立 VPN 的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了 OpenSSL 加密库中的 SSLv3/TLSv1 协议函式库。OpenVPN 能在 Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X 与 Windows 2000/XP/Vista上运行,并包含了许多安全性的功能。它并不是一个基于 Web 的 VPN 软件,也不与 IPsec 及其他 VPN 软件包兼容。

OpenVPN 2.0 后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。 OpenVPN 所有的通信都基于一个单一的 IP 端口, 默认且推荐使用 UDP 协议通讯,同时 TCP 也被支持。OpenVPN 连接能通过大多数的代理服务器,并且能够在 NAT 的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP 地址、路由设置等。OpenVPN 提供了两种虚拟网络接口:通用 Tun/Tap 驱动,通过它们, 可以建立三层 IP 隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过 LZO 算法压缩。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP 协议作为底层协议,UDP 协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。

二、OpenVPN 的安装

2.1、软件系统版本

CentOS 7.6
OpenVPN 2.4.6

2.2、安装前的准备工作

请关闭防火墙和selinux,简单的安装方法就是使用yum安装,首先我们应该先安装epel软件仓库。

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
curl -o /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo

2.3、开启服务器端路由转发功能

sysctl -w net.ipv4.ip_forward=1

2.4、设置nat转发

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

2.5、安装OpenVPN,使用 epel 源里面的

yum install openvpn -y

三、OpenVPN 的配置

3.1、创建证书文件,放到/etc/openvpn/server/下面。

ca.crt,server.crt,server.key,dh2048.pem

3.2、添加配置文件 server.conf

创建配置文件/etc/openvpn/server/server.conf,新增如下内容:

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key  # This file should be kept secret
dh /etc/openvpn/server/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.20.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 114.114.114.114"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

创建日志目录

mkdir -p /var/log/openvpn

添加开机启动

systemctl enable [email protected]

启动服务

systemctl start [email protected]

四、客户端配置

证书的创建我这里不再演示。
创建配置文件client.ovpn,增加内容如下:

client
dev tun
proto udp
remote 47.92.170.32 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3

创建完成之后点击连接即可。

猜你喜欢

转载自www.cnblogs.com/wzlinux/p/10345320.html