在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]