VPN搭建秘籍:Ubuntu 22.04系统下OpenVPN服务器的完整配置流程

Ubuntu 22.04系统下OpenVPN服务器的完整配置流程

虚拟专用网络(VPN)提供了一种安全的方式来穿越不受信任的网络,如同在专用网络上操作一样。OpenVPN是一个功能齐全的开源传输层安全(TLS)VPN解决方案,适用于多种配置。本文将详细指导您在Ubuntu 22.04服务器上设置OpenVPN,并配置它以便客户端计算机可以连接。

先决条件

在开始之前,请确保您具备以下条件:

  • 一台Ubuntu 22.04服务器,具有sudo权限的非root用户,并启用了防火墙。
  • 一个单独的Ubuntu 22.04服务器作为私有证书颁发机构(CA)。
  • 一台客户端计算机,用于连接到OpenVPN服务器。

第1步:安装OpenVPN和Easy-RSA

首先,更新您的包索引并安装OpenVPN和Easy-RSA:

bash 复制代码
sudo apt update
sudo apt install openvpn easy-rsa

创建一个名为~/easy-rsa的新目录,并创建一个符号链接到easy-rsa脚本:

bash 复制代码
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/

确保目录的所有者是您的非root sudo用户,并限制访问:

bash 复制代码
sudo chown sammy ~/easy-rsa
chmod 700 ~/easy-rsa

第2步:为OpenVPN创建PKI

在OpenVPN服务器上创建一个本地公钥基础结构目录:

bash 复制代码
cd ~/easy-rsa
nano vars

vars文件中添加以下两行:

bash 复制代码
set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"

这将配置您的私钥和证书请求使用现代椭圆曲线密码术(ECC)。

接下来,创建PKI目录:

bash 复制代码
./easyrsa init-pki

第3步:创建OpenVPN服务器证书请求和私钥

生成私钥和证书签名请求(CSR):

bash 复制代码
./easyrsa gen-req server nopass

将生成的私钥复制到/etc/openvpn/server目录:

bash 复制代码
sudo cp /home/sammy/easy-rsa/pki/private/server.key /etc/openvpn/server/

第4步:签署OpenVPN服务器的证书请求

server.req证书请求复制到CA服务器进行签名:

bash 复制代码
scp /home/sammy/easy-rsa/pki/reqs/server.req sammy@your_ca_server_ip:/tmp

在CA服务器上,导入证书请求并签署它:

bash 复制代码
cd ~/easy-rsa
./easyrsa import-req /tmp/server.req server
./easyrsa sign-req server server

将签署的证书和CA证书复制回OpenVPN服务器:

bash 复制代码
scp pki/issued/server.crt sammy@your_vpn_server_ip:/tmp
scp pki/ca.crt sammy@your_vpn_server_ip:/tmp

在OpenVPN服务器上,将文件复制到/etc/openvpn/server

bash 复制代码
sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/server

第5步:配置OpenVPN加密材料

生成tls-crypt预共享密钥:

bash 复制代码
openvpn --genkey secret ta.key

ta.key复制到/etc/openvpn/server

bash 复制代码
sudo cp ta.key /etc/openvpn/server

第6步:生成客户端证书和密钥对

在OpenVPN服务器上为客户端生成密钥和证书请求:

bash 复制代码
cd ~/easy-rsa
./easyrsa gen-req client1 nopass

client1.key复制到~/client-configs/keys/目录:

bash 复制代码
cp pki/private/client1.key ~/client-configs/keys/

client1.req传输到CA服务器:

bash 复制代码
scp pki/reqs/client1.req sammy@your_ca_server_ip:/tmp

在CA服务器上,导入请求并签署它:

bash 复制代码
cd ~/easy-rsa
./easyrsa import-req /tmp/client1.req client1
./easyrsa sign-req client client1

将客户端证书复制回OpenVPN服务器:

bash 复制代码
scp pki/issued/client1.crt sammy@your_server_ip:/tmp

在OpenVPN服务器上,将客户端证书复制到~/client-configs/keys/

bash 复制代码
cp /tmp/client1.crt ~/client-configs/keys/

第7步:配置OpenVPN

复制示例server.conf文件:

bash 复制代码
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/

编辑/etc/openvpn/server/server.conf文件,更新加密设置和其他配置。

第8步:调整OpenVPN服务器网络配置

编辑/etc/sysctl.conf文件以启用IP转发:

bash 复制代码
sudo nano /etc/sysctl.conf

添加以下行:

bash 复制代码
net.ipv4.ip_forward = 1

加载新值:

bash 复制代码
sudo sysctl -p

第9步:防火墙配置

配置防火墙规则以允许OpenVPN流量。编辑/etc/ufw/before.rules文件:

bash 复制代码
sudo nano /etc/ufw/before.rules

添加伪装规则:

bash 复制代码
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT

调整/etc/default/ufw文件以允许数据包转发:

bash 复制代码
sudo nano /etc/default/ufw

DEFAULT_FORWARD_POLICY设置为ACCEPT

bash 复制代码
DEFAULT_FORWARD_POLICY="ACCEPT"

允许OpenVPN端口和SSH:

bash 复制代码
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH

重新启动UFW:

bash 复制代码
sudo ufw disable
sudo ufw enable

第10步:启动OpenVPN

启用并启动OpenVPN服务:

bash 复制代码
sudo systemctl -f enable openvpn-server@server.service
sudo systemctl start openvpn-server@server.service

检查状态:

bash 复制代码
sudo systemctl status openvpn-server@server.service

第11步:安装客户端配置

从 OpenVPN 的下载页面 下载适用于 Windows 的 OpenVPN 客户端应用程序。 为您的 Windows 版本选择适当的安装程序版本。

注意:OpenVPN需要管理员权限才能安装。

通过本篇文章您能学到的知识点

通过阅读本篇文章,您将能够获得以下知识和技能:

  1. 理解VPN的基本概念:了解虚拟专用网络(VPN)的基本原理和它如何帮助您在不安全的网络上安全地访问互联网。

  2. 安装OpenVPN:学习如何在Ubuntu 22.04服务器上安装OpenVPN软件,这是设置VPN服务器的第一步。

  3. 配置Easy-RSA:掌握如何安装和配置Easy-RSA,这是一个用于管理公钥基础设施(PKI)的工具,对于生成和管理OpenVPN所需的证书至关重要。

  4. 创建和管理PKI:了解如何在OpenVPN服务器上创建本地公钥基础结构目录,并生成服务器和客户端的密钥和证书请求。

  5. 签署证书请求:学习如何将证书请求从OpenVPN服务器传输到CA服务器,并在那里签署它们,这是确保通信安全的关键步骤。

  6. 配置OpenVPN服务器:掌握如何编辑OpenVPN的配置文件,包括加密设置和其他重要参数,以确保VPN服务器的正确运行。

  7. 网络配置:了解如何调整网络设置,包括启用IP转发,这对于VPN流量的正确路由至关重要。

  8. 防火墙规则设置:学习如何配置防火墙规则,以允许OpenVPN流量通过,同时保持服务器的安全。

  9. 启动和管理OpenVPN服务:了解如何启动OpenVPN服务,并将其设置为在系统启动时自动运行。

  10. 创建客户端配置文件:掌握如何为客户端设备创建配置文件,这是连接到VPN服务器所必需的。

  11. 在不同操作系统上安装客户端配置:学习如何在Windows、macOS、Linux、iOS和Android等不同操作系统上安装和使用OpenVPN客户端配置。

  12. 测试VPN连接:了解如何测试VPN连接的有效性,确保您的VPN配置正确无误。

  13. 撤销客户端证书:掌握如何在需要时撤销客户端证书,以防止未经授权的访问。

通过本篇文章,您不仅能够学会如何在Ubuntu 22.04上从零开始设置一个功能齐全的OpenVPN服务器,还能够掌握日常维护和故障排除的基本技能,确保您的VPN服务安全、稳定地运行。如果您需要帮助或有其他问题,请查阅官方OpenVPN文档

相关推荐
Johny_Zhao15 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
用户9623779544820 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954481 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star1 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端