openvpn
openvpn

openvpn

适用远程访问家中设备

Linux服务器上安装和配置OpenVPN服务端的详细步骤如下。我们将以 Ubuntu/Debian 系统为例进行说明,其他发行版的步骤类似。


1. 准备工作

  1. 确保服务器有root权限:你需要使用 sudo 或以 root 用户身份执行命令。
  2. 更新系统
   sudo apt update
   sudo apt upgrade -y
  1. 安装必要的工具
   sudo apt install wget net-tools

2. 安装OpenVPN和Easy-RSA

OpenVPN 是一个开源的VPN解决方案,而 Easy-RSA 用于管理证书和密钥。

  1. 安装OpenVPN和Easy-RSA:
   sudo apt install openvpn easy-rsa
  1. 验证安装:
   openvpn --version

3. 配置Easy-RSA

Easy-RSA 用于生成OpenVPN所需的证书和密钥。

  1. 创建并进入Easy-RSA目录:
   mkdir ~/easy-rsa
   ln -s /usr/share/easy-rsa/* ~/easy-rsa/
   cd ~/easy-rsa
  1. 初始化PKI(公钥基础设施):
   ./easyrsa init-pki
  1. 创建CA(证书颁发机构):
   ./easyrsa build-ca

输入一个密码(用于保护CA私钥),并为CA设置一个名称(如 OpenVPN-CA)。

  1. 生成服务器证书和密钥:
   ./easyrsa gen-req server nopass
   ./easyrsa sign-req server server

确认请求并输入CA密码。

  1. 生成Diffie-Hellman参数(用于密钥交换):
   ./easyrsa gen-dh
  1. 生成TLS认证密钥(用于增强安全性):
   openvpn --genkey --secret ta.key

4. 配置OpenVPN服务端

  1. 复制示例配置文件:
   cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
   gzip -d /etc/openvpn/server.conf.gz
  1. 编辑配置文件:
   sudo nano /etc/openvpn/server.conf

修改以下内容:

   port 1194
   proto udp
   dev tun
   ca /root/easy-rsa/pki/ca.crt
   cert /root/easy-rsa/pki/issued/server.crt
   key /root/easy-rsa/pki/private/server.key
   dh /root/easy-rsa/pki/dh.pem
   server 10.8.0.0 255.255.255.0
   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
   tls-auth /root/easy-rsa/ta.key 0
   cipher AES-256-CBC
   auth SHA256
   user nobody
   group nogroup
   persist-key
   persist-tun
   status /var/log/openvpn-status.log
   log /var/log/openvpn.log
   verb 3
  1. 将生成的证书和密钥复制到 /etc/openvpn
   cp ~/easy-rsa/ta.key /etc/openvpn/
   cp ~/easy-rsa/pki/ca.crt /etc/openvpn/
   cp ~/easy-rsa/pki/issued/server.crt /etc/openvpn/
   cp ~/easy-rsa/pki/private/server.key /etc/openvpn/
   cp ~/easy-rsa/pki/dh.pem /etc/openvpn/

5. 启用IP转发

  1. 编辑 /etc/sysctl.conf
   sudo nano /etc/sysctl.conf

取消注释或添加以下行:

   net.ipv4.ip_forward=1
  1. 应用更改:
   sudo sysctl -p

6. 配置防火墙

  1. 允许OpenVPN端口(默认1194):
   sudo ufw allow 1194/udp
  1. 允许流量转发:
   sudo nano /etc/default/ufw

修改 DEFAULT_FORWARD_POLICY

   DEFAULT_FORWARD_POLICY="ACCEPT"
  1. 添加NAT规则:
   sudo nano /etc/ufw/before.rules

在文件顶部添加:

   # NAT table rules
   *nat
   :POSTROUTING ACCEPT [0:0]
   -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
   COMMIT
  1. 重启防火墙:
   sudo ufw disable
   sudo ufw enable

7. 启动OpenVPN服务

  1. 启动服务:
   sudo systemctl start openvpn@server
  1. 设置开机自启:
   sudo systemctl enable openvpn@server
  1. 检查状态:
   sudo systemctl status openvpn@server

8. 生成客户端配置

  1. 创建客户端证书和密钥:
   cd ~/easy-rsa
   ./easyrsa gen-req client1 nopass
   ./easyrsa sign-req client client1
  1. 创建客户端配置文件:
   nano client1.ovpn

内容如下:

   client
   dev tun
   proto udp
   remote 你的服务器IP 1194
   resolv-retry infinite
   nobind
   persist-key
   persist-tun
   ca ca.crt
   cert client1.crt
   key client1.key
   remote-cert-tls server
   tls-auth ta.key 1
   cipher AES-256-CBC
   auth SHA256
   verb 3
  1. 将以下文件打包提供给客户端:
  • client1.ovpn
  • ca.crt
  • client1.crt
  • client1.key
  • ta.key

9. 测试连接

  1. 使用OpenVPN客户端(如Windows的OpenVPN GUI或Linux的 openvpn 命令)导入配置文件并连接。
  2. 检查是否成功分配IP地址(如 10.8.0.x)。

通过以上步骤,你可以在Linux服务器上成功安装和配置OpenVPN服务端,并为客户端提供安全的VPN连接。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注