适用远程访问家中设备
Linux服务器上安装和配置OpenVPN服务端的详细步骤如下。我们将以 Ubuntu/Debian 系统为例进行说明,其他发行版的步骤类似。
1. 准备工作
- 确保服务器有root权限:你需要使用
sudo
或以root
用户身份执行命令。 - 更新系统:
sudo apt update
sudo apt upgrade -y
- 安装必要的工具:
sudo apt install wget net-tools
2. 安装OpenVPN和Easy-RSA
OpenVPN 是一个开源的VPN解决方案,而 Easy-RSA 用于管理证书和密钥。
- 安装OpenVPN和Easy-RSA:
sudo apt install openvpn easy-rsa
- 验证安装:
openvpn --version
3. 配置Easy-RSA
Easy-RSA 用于生成OpenVPN所需的证书和密钥。
- 创建并进入Easy-RSA目录:
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
cd ~/easy-rsa
- 初始化PKI(公钥基础设施):
./easyrsa init-pki
- 创建CA(证书颁发机构):
./easyrsa build-ca
输入一个密码(用于保护CA私钥),并为CA设置一个名称(如 OpenVPN-CA
)。
- 生成服务器证书和密钥:
./easyrsa gen-req server nopass
./easyrsa sign-req server server
确认请求并输入CA密码。
- 生成Diffie-Hellman参数(用于密钥交换):
./easyrsa gen-dh
- 生成TLS认证密钥(用于增强安全性):
openvpn --genkey --secret ta.key
4. 配置OpenVPN服务端
- 复制示例配置文件:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz
- 编辑配置文件:
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
- 将生成的证书和密钥复制到
/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转发
- 编辑
/etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
取消注释或添加以下行:
net.ipv4.ip_forward=1
- 应用更改:
sudo sysctl -p
6. 配置防火墙
- 允许OpenVPN端口(默认1194):
sudo ufw allow 1194/udp
- 允许流量转发:
sudo nano /etc/default/ufw
修改 DEFAULT_FORWARD_POLICY
:
DEFAULT_FORWARD_POLICY="ACCEPT"
- 添加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
- 重启防火墙:
sudo ufw disable
sudo ufw enable
7. 启动OpenVPN服务
- 启动服务:
sudo systemctl start openvpn@server
- 设置开机自启:
sudo systemctl enable openvpn@server
- 检查状态:
sudo systemctl status openvpn@server
8. 生成客户端配置
- 创建客户端证书和密钥:
cd ~/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
- 创建客户端配置文件:
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
- 将以下文件打包提供给客户端:
client1.ovpn
ca.crt
client1.crt
client1.key
ta.key
9. 测试连接
- 使用OpenVPN客户端(如Windows的OpenVPN GUI或Linux的
openvpn
命令)导入配置文件并连接。 - 检查是否成功分配IP地址(如
10.8.0.x
)。
通过以上步骤,你可以在Linux服务器上成功安装和配置OpenVPN服务端,并为客户端提供安全的VPN连接。