Arch 上与 openvpn 和 systemd 的权限冲突

Arch 上与 openvpn 和 systemd 的权限冲突

刚刚在我的 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/*

相关内容