刚刚在我的 VPS 上安装了 openvpn。
完美地开始于
sudo openvpn /etc/openvpn/server/server.conf
但
sudo systemctl start openvpn-server@server
不会运行。与systemd有冲突。
日志:
Options error: --ca fails with '/etc/openvpn/server/ca.crt': Permission denied (errno=13)
Options error: --cert fails with '/etc/openvpn/server/server.crt': Permission denied (errno=13)
Options error: --key fails with '/etc/openvpn/server/server.key': Permission denied (errno=13)
Options error: Please correct these errors.
系统配置:
[Unit]
Description=OpenVPN service for %I
After=syslog.target network-online.target
Wants=network-online.target
Documentation=man:openvpn(8)
Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO
[Service]
Type=notify
PrivateTmp=true
WorkingDirectory=/etc/openvpn/server
ExecStart=/usr/bin/openvpn --status %t/openvpn-server/status-%i.log --status-version 2 --suppress-timestamps --config %i.conf
User=openvpn
Group=network
AmbientCapabilities=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE CAP_AUDIT_WRITE
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw
ProtectSystem=true
ProtectHome=true
KillMode=process
RestartSec=5s
Restart=on-failure
[Install]
WantedBy=multi-user.target
我的服务器文件夹包含密钥和证书:
ls -la
total 36
drwxr-x--- 2 openvpn network 4096 Jan 11 00:24 .
drwxr-xr-x 5 root root 4096 Jan 11 00:02 ..
-rw------- 1 root root 1184 Jan 10 23:26 ca.crt
-rw-r--r-- 1 root root 424 Jan 10 23:29 dh2048.pem
-rw-r--r-- 1 root root 618 Jan 11 16:07 server.conf
-rw------- 1 root root 4586 Jan 10 23:28 server.crt
-rw------- 1 root root 1704 Jan 10 23:27 server.key
-rw------- 1 root root 636 Jan 10 23:43 ta.key
是不是权限有问题?
答案1
配置文件需要属于openvpn
.
您的 systemd 服务定义表示openvpn
需要以 user openvpn
, group身份运行network
。但是,当您使用 运行它时sudo
,您将以用户身份运行它root
。
所有文件均归 root 所有,其中大部分模式为 0600,因此其他任何人都无法读取。这需要修复以便openvpn
用户可以阅读它们。
赶紧跑chown openvpn:network /etc/openvpn/server/*
。