admin 发表于 2024-5-15 12:49:42

在Ubuntu 22.04上配置OpenVPN VPN服务器的详细指南

在Ubuntu 22.04上配置OpenVPN VPN服务器的详细指南,包括所有步骤和配置代码。以下步骤将涵盖从安装、生成证书到配置和启动VPN服务器。

1. 更新系统并安装必要的软件包

首先,确保系统是最新的并安装OpenVPN和Easy-RSA。

sudo apt update
sudo apt upgrade -y
sudo apt install -y openvpn easy-rsa


2. 设置Easy-RSA

创建一个目录来存储Easy-RSA配置,并复制Easy-RSA样本文件。

make-cadir ~/openvpn-ca
cd ~/openvpn-ca


3. 配置Easy-RSA变量

编辑`vars`文件,设置证书生成所需的默认值。

nano ~/openvpn-ca/vars


在文件中添加或修改以下行:

set_var EASYRSA_REQ_COUNTRY    "US"
set_var EASYRSA_REQ_PROVINCE   "California"
set_var EASYRSA_REQ_CITY       "San Francisco"
set_var EASYRSA_REQ_ORG      "MyCompany"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "MyOrganizationalUnit"


4. 生成证书和密钥

初始化PKI目录:

cd ~/openvpn-ca
source vars
./clean-all
./build-ca


生成服务器证书和密钥:

./build-key-server server


生成Diffie-Hellman参数:

./build-dh


生成HMAC签名密钥:

openvpn --genkey --secret keys/ta.key


生成客户端证书和密钥:

./build-key client1


5. 配置OpenVPN服务器

将生成的证书和密钥复制到OpenVPN目录:

sudo cp ~/openvpn-ca/keys/ca.crt /etc/openvpn/
sudo cp ~/openvpn-ca/keys/server.crt /etc/openvpn/
sudo cp ~/openvpn-ca/keys/server.key /etc/openvpn/
sudo cp ~/openvpn-ca/keys/ta.key /etc/openvpn/
sudo cp ~/openvpn-ca/keys/dh2048.pem /etc/openvpn/


创建并编辑OpenVPN服务器配置文件:

sudo nano /etc/openvpn/server.conf


在文件中添加以下内容:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3


6. 启动并启用OpenVPN服务

启用并启动OpenVPN服务:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server


7. 配置防火墙

允许OpenVPN流量通过防火墙:

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable


8. 生成客户端配置文件

创建客户端配置文件目录并复制相关的证书和密钥:

mkdir -p ~/client-configs/keys
cp ~/openvpn-ca/keys/ca.crt ~/client-configs/keys/
cp ~/openvpn-ca/keys/client1.crt ~/client-configs/keys/
cp ~/openvpn-ca/keys/client1.key ~/client-configs/keys/
cp ~/openvpn-ca/keys/ta.key ~/client-configs/keys/


创建客户端配置文件模板:

mkdir -p ~/client-configs/files
nano ~/client-configs/files/base.conf


在文件中添加以下内容:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3


确保替换`YOUR_SERVER_IP`为你的服务器IP地址。

创建生成客户端配置文件的脚本:

nano ~/client-configs/make_config.sh


在文件中添加以下内容:

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/client-configs/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/files/base.conf

cat ${BASE_CONFIG} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-auth>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-auth>') \
    > ${OUTPUT_DIR}/${1}.ovpn


使脚本可执行:

chmod 700 ~/client-configs/make_config.sh


生成客户端配置文件:

cd ~/client-configs
./make_config.sh client1


结论:通过以上详细步骤,你可以在Ubuntu 22.04上成功搭建并配置OpenVPN服务器。这些步骤涵盖了从安装、配置、生成证书和密钥到生成客户端配置文件的全过程。确保每一步都正确执行,以确保VPN服务器的正常运行和客户端的成功连接。如果在过程中遇到问题,可以查看OpenVPN的日志文件(如`/var/log/openvpn.log`)获取更多调试信息,并确保防火墙和网络配置正确。
页: [1]
查看完整版本: 在Ubuntu 22.04上配置OpenVPN VPN服务器的详细指南