博海的自留地. - OpenVPN
type: channel
link: https://vt0.cn/tag/OpenVPN/
items: CentOS7部署OpenVPN服务

CentOS7部署OpenVPN服务
type: item
date: 2024-09-01T20:38:00+08:00
description: 简介最近需要部署openvpn服务来实现电脑与另外一个服务器环境内网互通，在网上找到的多数的OpenVPN例子都是基于客户端密钥认证的，多个客户那就要多个密钥，这样配置服务端或者客户端都非常麻烦。本次文章主要实现功能:容易安装容易配置多个账号客户端仅需导入一个配置Prometheus监控这里建议是使用TCP部署服务环境准备使用主机IP系统端口作用106.212.66.32CentOS Linux release 7.9.2009 (Core)5001/tcpOpenVPN 服务器192.168.50.1-----------内网测试服务器网络分配IP作用10.80.0.0/24OpenVPN网段192.168.50.0/24内网通讯网段软件资源软件名称版本easy-rsa3.0.8openvpn2.4.11安装环境本文使用yum来安装openvpn，openvpn及其依赖的一些包在epel源上，首先先安装epel源。# 安装epel源 yum install -y epel-release # 安装依赖包 yum install -y openssl lzo pam openssl-devel lzo-devel pam-devel net-tools* yum install -y easy-rsa # 安装openvpn yum install -y openvpn配置环境上面我们已经安装好了openvpn了，下面我们对openvpn进行配置。配置证书密钥我们通过yum方式安装的 easy-rsa 版本是3.0.8，直接从安装路径copy一份工具出来。这里用默认的 easy-rsa 3.0.8 来配置生成证书密钥。# 复制easy-rsa工具 cp -rf /usr/share/easy-rsa/3.0.8 /etc/openvpn/server/easy-rsa cd /etc/openvpn/server/easy-rsa # 生成证书密钥 ./easyrsa init-pki ./easyrsa build-ca nopass ./easyrsa build-server-full server nopass # 下面这步可能要几分钟 ./easyrsa gen-dh openvpn --genkey --secret ta.key配置服务端创建使用的目录并授权# 日志存放目录 mkdir -p /var/log/openvpn/ # 用户管理目录 mkdir -p /etc/openvpn/server/user # 配置权限 chown -R openvpn:openvpn /var/log/openvpn配置服务端配置文件新建 /etc/openvpn/server/server.conf文件，并写入以下内容:local 0.0.0.0 # VPN服务端端口 port 5001 # VPN服务端协议 proto tcp dev tun ca /etc/openvpn/server/easy-rsa/pki/ca.crt cert /etc/openvpn/server/easy-rsa/pki/issued/server.crt key /etc/openvpn/server/easy-rsa/pki/private/server.key dh /etc/openvpn/server/easy-rsa/pki/dh.pem tls-auth /etc/openvpn/server/easy-rsa/ta.key 0 auth-user-pass-verify /etc/openvpn/server/user/checkpsw.sh via-env # 把openvpn的状态写入日志中,单位秒 status /var/log/openvpn/status.log 3 # 配合status，记录客户端字段：虚拟地址，虚拟IPv6地址，用户名，客户端ID，对等ID status-version 3 script-security 3 verify-client-cert none username-as-common-name # VPN客户端自动分配的DHCP地址池 server 10.80.0.0 255.255.255.0 # 需要通讯的内网网段（如果需要VPN客户端与客户端组成一个私网,也可加入10.80.0.0网段） push "route 192.168.50.0 255.255.255.0" compress lzo client-to-client duplicate-cn keepalive 10 120 cipher AES-256-CBC comp-lzo persist-key persist…