找回密码
 立即注册
查看: 883|回复: 0

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

[复制链接]

66

主题

3

回帖

284

积分

管理员

积分
284
QQ
发表于 2024-5-15 12:49:42 | 显示全部楼层 |阅读模式
在Ubuntu 22.04上配置OpenVPN VPN服务器的详细指南,包括所有步骤和配置代码。以下步骤将涵盖从安装、生成证书到配置和启动VPN服务器。

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

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

  1. sudo apt update
  2. sudo apt upgrade -y
  3. sudo apt install -y openvpn easy-rsa
复制代码


2. 设置Easy-RSA

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

  1. make-cadir ~/openvpn-ca
  2. cd ~/openvpn-ca
复制代码


3. 配置Easy-RSA变量

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

  1. nano ~/openvpn-ca/vars
复制代码


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

  1. set_var EASYRSA_REQ_COUNTRY    "US"
  2. set_var EASYRSA_REQ_PROVINCE   "California"
  3. set_var EASYRSA_REQ_CITY       "San Francisco"
  4. set_var EASYRSA_REQ_ORG        "MyCompany"
  5. set_var EASYRSA_REQ_Email      "[email protected]"
  6. set_var EASYRSA_REQ_OU         "MyOrganizationalUnit"
复制代码


4. 生成证书和密钥

初始化PKI目录:

  1. cd ~/openvpn-ca
  2. source vars
  3. ./clean-all
  4. ./build-ca
复制代码


生成服务器证书和密钥:

  1. ./build-key-server server
复制代码


生成Diffie-Hellman参数:

  1. ./build-dh
复制代码


生成HMAC签名密钥:

  1. openvpn --genkey --secret keys/ta.key
复制代码


生成客户端证书和密钥:

  1. ./build-key client1
复制代码


5. 配置OpenVPN服务器

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

  1. sudo cp ~/openvpn-ca/keys/ca.crt /etc/openvpn/
  2. sudo cp ~/openvpn-ca/keys/server.crt /etc/openvpn/
  3. sudo cp ~/openvpn-ca/keys/server.key /etc/openvpn/
  4. sudo cp ~/openvpn-ca/keys/ta.key /etc/openvpn/
  5. sudo cp ~/openvpn-ca/keys/dh2048.pem /etc/openvpn/
复制代码


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

  1. sudo nano /etc/openvpn/server.conf
复制代码


在文件中添加以下内容:

  1. port 1194
  2. proto udp
  3. dev tun
  4. ca ca.crt
  5. cert server.crt
  6. key server.key
  7. dh dh2048.pem
  8. tls-auth ta.key 0
  9. cipher AES-256-CBC
  10. topology subnet
  11. server 10.8.0.0 255.255.255.0
  12. ifconfig-pool-persist ipp.txt
  13. push "redirect-gateway def1 bypass-dhcp"
  14. push "dhcp-option DNS 8.8.8.8"
  15. push "dhcp-option DNS 8.8.4.4"
  16. keepalive 10 120
  17. comp-lzo
  18. user nobody
  19. group nogroup
  20. persist-key
  21. persist-tun
  22. status openvpn-status.log
  23. log /var/log/openvpn.log
  24. verb 3
复制代码


6. 启动并启用OpenVPN服务

启用并启动OpenVPN服务:

  1. sudo systemctl start openvpn@server
  2. sudo systemctl enable openvpn@server
复制代码


7. 配置防火墙

允许OpenVPN流量通过防火墙:

  1. sudo ufw allow 1194/udp
  2. sudo ufw allow OpenSSH
  3. sudo ufw enable
复制代码


8. 生成客户端配置文件

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

  1. mkdir -p ~/client-configs/keys
  2. cp ~/openvpn-ca/keys/ca.crt ~/client-configs/keys/
  3. cp ~/openvpn-ca/keys/client1.crt ~/client-configs/keys/
  4. cp ~/openvpn-ca/keys/client1.key ~/client-configs/keys/
  5. cp ~/openvpn-ca/keys/ta.key ~/client-configs/keys/
复制代码


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

  1. mkdir -p ~/client-configs/files
  2. nano ~/client-configs/files/base.conf
复制代码


在文件中添加以下内容:

  1. client
  2. dev tun
  3. proto udp
  4. remote YOUR_SERVER_IP 1194
  5. resolv-retry infinite
  6. nobind
  7. user nobody
  8. group nogroup
  9. persist-key
  10. persist-tun
  11. ca ca.crt
  12. cert client1.crt
  13. key client1.key
  14. tls-auth ta.key 1
  15. cipher AES-256-CBC
  16. comp-lzo
  17. verb 3
复制代码


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

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

  1. nano ~/client-configs/make_config.sh
复制代码


在文件中添加以下内容:

  1. #!/bin/bash

  2. # First argument: Client identifier

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

  6. cat ${BASE_CONFIG} \
  7.     <(echo -e '<ca>') \
  8.     ${KEY_DIR}/ca.crt \
  9.     <(echo -e '</ca>\n<cert>') \
  10.     ${KEY_DIR}/${1}.crt \
  11.     <(echo -e '</cert>\n<key>') \
  12.     ${KEY_DIR}/${1}.key \
  13.     <(echo -e '</key>\n<tls-auth>') \
  14.     ${KEY_DIR}/ta.key \
  15.     <(echo -e '</tls-auth>') \
  16.     > ${OUTPUT_DIR}/${1}.ovpn
复制代码


使脚本可执行:

  1. chmod 700 ~/client-configs/make_config.sh
复制代码


生成客户端配置文件:

  1. cd ~/client-configs
  2. ./make_config.sh client1
复制代码


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

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 08:41 , Processed in 0.069976 second(s), 26 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表