您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

Linux安装部署OpenVPN

时间:2022-04-29 10:33:05  来源:  作者:爱学习de小乌龟

本次部署的通过账户与密码进行认证,实现多人登录使用VPN,只需要分发固定的证书和用户名、密码就可以,简单快捷。

一、软件与规划网络

软件版本:
centos7.6
easy-rsa 3.0.8
OpenVPN 2.4.9
网络环境规划:
VPN客户端地址段:10.98.1.0/24
VPN服务器网卡地址:10.99.1.253
VPN流量出设备NAT为10.99.1.253

二、基础环境配置

2.1、关闭SElinux

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

2.2、开启内核转发

grep -qF ".NET.ipv4.ip_forward" /etc/sysctl.conf  || echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

2.3、关闭Firewall防火墙

systemctl stop firewalld
systemctl disable firewalld

三、服务器安装与部署

3.1、软件与环境安装

本文使用yum来安装openvpn,openvpn及其依赖的一些包在epel源上,首先先安装epel源。

yum -y update
#更新软件包
yum install -y epel-release
#安装epel源
yum install -y openssl lzo pam openssl-devel lzo-devel pam-devel
yum install -y easy-rsa
#安装依赖包
yum install -y openvpn
#安装openvpn

3.2、easy-rsa配置证书密钥

cp -rf /usr/share/easy-rsa/3.0.8 /etc/openvpn/server/easy-rsa
cd /etc/openvpn/server/easy-rsa
#复制easy-rsa工具
find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars
#复制vars.example并重命名vars

配置vars文件,文件也有该内容不过是注释的,可以直接再最后追加如下内容:

cat << EOF >> /etc/openvpn/server/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY     "CN"
# 国家
set_var EASYRSA_REQ_PROVINCE    "BJ"
# 省
set_var EASYRSA_REQ_CITY        "BeiJing"
# 城市
set_var EASYRSA_REQ_ORG         "Lin"
# 组织
set_var EASYRSA_REQ_EMAIL       "test@xxshell.com"
# 邮箱
set_var EASYRSA_REQ_OU          "Lin"
# 拥有者

set_var EASYRSA_KEY_SIZE        2048
# 长度
set_var EASYRSA_ALGO            rsa
# 算法

set_var EASYRSA_CA_EXPIRE      36500
# CA证书过期时间,单位天
set_var EASYRSA_CERT_EXPIRE    36500
# 签发证书的有效期是多少天,单位天
EOF

生成证书与私钥:

./easyrsa init-pki
./easyrsa build-ca nopass
#生成CA证书,需要填写组织名称,随便写。
./easyrsa build-server-full server nopass
./easyrsa gen-dh
openvpn --genkey --secret ta.key

3.3、创建日志存储与用户目录

mkdir -p /var/log/openvpn/
# 日志存放目录
mkdir -p /etc/openvpn/server/user
# 用户管理目录
chown -R openvpn:openvpn /var/log/openvpn
# 配置权限

3.4、创建用户名密码文件

echo 'vpnuser01 admin123456' >> /etc/openvpn/server/user/psw-file
#后续添加用户直接在该文件下添加就可以;
chmod 600 /etc/openvpn/server/user/psw-file
chown openvpn:openvpn /etc/openvpn/server/user/psw-file

3.5、创建密码检查脚本

创建一个shell文件
/etc/openvpn/server/user/checkpsw.sh,内容如下:

#!/bin/sh

PASSFILE="/etc/openvpn/server/user/psw-file"
LOG_FILE="/var/log/openvpn/password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`

if [ ! -r "${PASSFILE}" ]; then
  echo "${TIME_STAMP}: Could not open password file "${PASSFILE}" for reading." >>  ${LOG_FILE}
  exit 1
fi
CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`
if [ "${CORRECT_PASSWORD}" = "" ]; then
  echo "${TIME_STAMP}: User does not exist: username="${username}", password=
"${password}"." >> ${LOG_FILE}
  exit 1
fi
if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
  echo "${TIME_STAMP}: Successful authentication: username="${username}"." >> ${LOG_FILE}
  exit 0
fi
echo "${TIME_STAMP}: Incorrect password: username="${username}", password=
"${password}"." >> ${LOG_FILE}
exit 1

赋予密码检查脚本权限:

chmod 700 /etc/openvpn/server/user/checkpsw.sh
chown openvpn:openvpn /etc/openvpn/server/user/checkpsw.sh

3.7、创建OpenVPN服务器配置文件

编辑
/etc/openvpn/server/server.conf文件,并写入以下内容:
(也可以复制一份模板文件进行改写,模板文件路径
/usr/share/doc/openvpn-2.4.9/sample/sample-config-files/server.conf

port 10444
proto udp
dev tun
user openvpn
group openvpn

#配置证书信息
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
script-security 3
verify-client-cert none
username-as-common-name
client-to-client
duplicate-cn

#配置网络信息
server 10.98.1.0 255.255.255.0
push "route 10.99.1.0 255.255.255.0"
push "route 172.16.0.9 255.255.255.255"

compress lzo
cipher AES-256-CBC
keepalive 10 120
persist-key
persist-tun
verb 3
reneg-sec 0

#配置日志存放位置
log /var/log/openvpn/server.log
log-Append /var/log/openvpn/server.log
status /var/log/openvpn/status.log

设置server.conf配置文件软链接,因为程序获取的配置文件为:.server.conf

cd /etc/openvpn/server/
ln -sf server.conf .service.conf

3.8、设置NAT规则或防火墙规则

需要配置一条NAT的规则,这里我使用的是iptables,下面也有firewalld的示例(网卡eth0名称根据实际修改),如果你VPN互访是通过路由通信则不需要配置NAT规则:
iptables:

systemctl stop firewalld
systemctl disable firewalld    #关闭firewalld防火墙

yum -y install iptables-services
systemctl enable iptables.service
systemctl start iptables.service

iptables -t nat -A POSTROUTING -s 10.98.1.0/24 -o eth0 -j MASQUERADE #添加NAT规则 
iptables-save
iptables-save > /etc/sysconfig/iptables   #保存iptable规则并开机自动加载 
[root@Cloud_Pool_OpenVPN ~]# iptables -t nat -nvL #查看nat规则

firewalld(建议使用iptables):

#设置防火墙开机自启动
systemctl enable firewalld --now
firewall-cmd --public --add-masquerade  # 允许防火墙伪装IP
firewall-cmd --public  --add-port=10444/udp
firewall-cmd --public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.98.1.0/24 -o eth0 -j MASQUERADE
firewall-cmd --reload

3.9、启动服务并设置开机自动启动

rpm -ql openvpn |grep service
# 查看service名
/usr/lib/systemd/system/openvpn-client@.service
/usr/lib/systemd/system/openvpn-server@.service
/usr/lib/systemd/system/openvpn@.service

systemctl start openvpn-server@.service.service
# 启动
systemctl status openvpn-server@.service.service
#检查服务状态
systemctl enable openvpn-server@.service.service
#设置开机自启

四、windows客户端配置

因为我们前面配置的是账号密码认证,所以我们只需要下载ca.crt、ta.key文件即可,从server上将生成的ca.crt、ta.key下载到客户端的配置文件config下。ca.crt在
/etc/openvpn/server/easy-rsa/pki/下
在config目录(目录位置:C:Users[用户名]OpenVPNconfig)下新建一个文件 client.ovpn,文件内容如下:

client
proto udp
dev tun
auth-user-pass
remote www.aalook.com 10444
ca ca.crt
tls-auth ta.key 1
remote-cert-tls server
cipher AES-256-CBC
auth-nocache
persist-tun
persist-key
reneg-sec 0
compress lzo
verb 3
mute 10

配置完成就可以进行连接测试了:

Linux安装部署OpenVPN

 

参考文章:

https://www.jianshu.com/p/637b4123fc92

https://www.fandenggui.com/post/centos7-install-openvpn.html



Tags:OpenVPN   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
基于linux部署openvpn2.9 as
环境 CentOS7.9安装yum install -y open-vm-tools openvpn-as-bundled-clients-17.rpm yum install -y openvpn-as-2.9.2_04614689-CentOS7.x86_64.rpmyum install -y lrzsz...【详细内容】
2023-04-24  Search: OpenVPN  点击:(375)  评论:(0)  加入收藏
使用树莓派安装OpenVPN,在外部访问家庭内部网络
简介OpenVPN 是一个功能齐全的 SSL VPN,它使用行业标准 SSL/TLS 协议实现 OSI 第 2 层或第 3 层安全网络扩展,支持基于证书、智能卡和/或用户名/密码凭据的灵活客户端身份验...【详细内容】
2022-09-05  Search: OpenVPN  点击:(952)  评论:(0)  加入收藏
padavan openvpn实现两个局域网互联
背景:网络穿透互联是方便我们技术人员的一种工具,通过各种协议实现您想要的网络互联。家庭组网可以参照低成本电信家庭宽带架构网络拓扑今天,我们需要在这个基础上扩展网络应...【详细内容】
2022-06-27  Search: OpenVPN  点击:(3419)  评论:(0)  加入收藏
Linux安装部署OpenVPN
本次部署的通过账户与密码进行认证,实现多人登录使用VPN,只需要分发固定的证书和用户名、密码就可以,简单快捷。一、软件与规划网络软件版本: Centos7.6 easy-rsa 3.0.8 OpenVPN...【详细内容】
2022-04-29  Search: OpenVPN  点击:(3102)  评论:(0)  加入收藏
Centos7安装与配置OpenVPN服务器
养成良好习惯,在安装前先更新一下软件包,多数软件包更新主要是修补漏洞。 更新 CentOS 软件包yum -y update虽然也是可以不进行更新直接安装。安装 OpenVPN 和...【详细内容】
2021-09-02  Search: OpenVPN  点击:(707)  评论:(0)  加入收藏
企业内网神器OpenVPN
VPN详解一、VPN介绍 什么是vpn?# VPN是虚拟专用网络的缩写,它是两个或多个物理网络(或设备)之间沟通互联网/公共网络创建的虚拟网络,可以为企业之间或者个人与企业之间提供安...【详细内容】
2021-09-02  Search: OpenVPN  点击:(2432)  评论:(0)  加入收藏
OpenVPN搭建部署
一、为什么要搭建VPN随着企业规模的发展,越来越多的远程办公需求将会产生,为支持远程办公,解决远程连接本地测试环境问题,可以使用开源软件搭建VPN解决,毕竟硬件的VPN不便宜,OpenV...【详细内容】
2020-10-28  Search: OpenVPN  点击:(841)  评论:(0)  加入收藏
▌简易百科推荐
手机就可以修改WiFi密码,进行网络提速,还能防止别人蹭网
随着网络的普及和使用频率的增加,很多人可能遇到了一些网络管理上的问题,比如忘记了WiFi密码、网络速度缓慢、或者发现有不明设备在家中蹭网。相信朋友们也曾遇到过吧?但是,你知...【详细内容】
2024-04-03  老毛桃    Tags:WiFi密码   点击:(9)  评论:(0)  加入收藏
手机WiFi信号满格却接收消息延迟?这里有妙招帮你解决!
在现代社会,手机已经成为了我们生活中不可或缺的一部分。无论是工作、学习还是娱乐,手机都扮演着重要的角色。然而,有时我们会遇到一些令人烦恼的问题,比如明明手机WiFi信号满格...【详细内容】
2024-04-03  蔡前进    Tags:手机WiFi   点击:(8)  评论:(0)  加入收藏
SASE技术应用落地的五个关键趋势
在Gartner 最新发布的《2023网络技术成熟度曲线》报告中认为,SASE技术已经开始走出最初的技术炒作期,将逐步迈向新一轮的实用落地阶段。在Gartner发布的《Hype Cycle for Ente...【详细内容】
2024-04-01    安全牛  Tags:SASE   点击:(12)  评论:(0)  加入收藏
提示“该网站安全证书存在问题,连接可能不安全”如何解决
在你输入网址并浏览网页时,如果你的浏览器弹出一个警告,提示“网站的安全证书存在问题”,或是显示一个红色的锁标志,这些都是网站不安全的警示。这些提示通常是由HTTPS协议中的S...【详细内容】
2024-03-18  倏然间    Tags:网站安全证书   点击:(10)  评论:(0)  加入收藏
如何有效排除CAN总线错误
控制器局域网(CAN)控制器局域网(CAN)是现代车辆中电子元件无缝运行的基础。在远程信息处理领域,CAN总线系统的效率至关重要,其能够实现支撑当今汽车技术的复杂功能。然而,CAN总...【详细内容】
2024-02-20    千家网  Tags:CAN   点击:(52)  评论:(0)  加入收藏
网络连接受限或无连接怎么办?这里提供几个修复办法
可能错误提示 连接受限或无连接:连接具有有限的连接或无连接。你可能无法访问Internet或某些网络资源。 连接受限。排除和解决“连接受限或无连接”错误此错误可能由计算机上...【详细内容】
2024-02-06  驾驭信息纵横科技    Tags:网络连接受限   点击:(50)  评论:(0)  加入收藏
如何将Mac连接到以太网?这里有详细步骤
在Wi-Fi成为最流行、最简单的互联网连接方式之前,每台Mac和电脑都使用以太网电缆连接。这是Mac可用端口的标准功能。如何将Mac连接到以太网如果你的Mac有以太网端口,则需要以...【详细内容】
2024-02-03  驾驭信息纵横科技    Tags:Mac   点击:(67)  评论:(0)  加入收藏
简易百科之什么是端口映射
端口映射,也称为端口转发,是一种网络通信中的技术手段,通过将内网中的一个端口上的数据流量转发到另一个端口,使得外部网络能够访问到内部网络中的特定服务。在实现上,端口映射通...【详细内容】
2024-01-26    简易百科  Tags:端口映射   点击:(163)  评论:(0)  加入收藏
ip因频繁登陆已被禁止访问 无法显示图片 怎么办
首先,我们要明白,部分网站为了有效遏制数据爬取和非法攻击,保证访问速度和普通用户查询,会在系统中增加网络安全设备,加强安全防护机制,并提前设置安全访问规则。因此,一旦用户的行...【详细内容】
2024-01-20  何福意思    Tags:ip   点击:(68)  评论:(0)  加入收藏
电脑连上wifi却上不了网怎么办
当电脑连接上 WiFi 却无法上网时,可能会让人感到困惑和沮丧。这个问题通常会有多种可能的原因,包括网络配置问题、路由器故障、无线适配器问题等。在面对这个问题时,可以尝试以...【详细内容】
2024-01-16  编程资料站    Tags:wifi   点击:(72)  评论:(0)  加入收藏
站内最新
站内热门
站内头条