SELinux 正在阻止非 root 用户的 VPN 连接

SELinux 正在阻止非 root 用户的 VPN 连接

我希望所有用户都可以使用(开放)VPN 连接,但如果我不是 root,则会被 SELinux 阻止。

var/log/audit/audit.log我首先以非宽松模式查看:

type=AVC msg=audit(1659770552.275:309): avc:  denied  { getattr } for  pid=1923 comm="openvpn" path="/root/.cert/nm-openvpn/ie-dub.prod.blk.com_udp-tls-auth.pem" dev="nvme0n1p3" ino=802406 scontext=system_u:system_r:openvpn_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0

之后我设置允许查看被阻止的内容:

type=AVC msg=audit(1659770802.776:318): avc:  denied  { getattr } for  pid=2124 comm="openvpn" path="/root/.cert/nm-openvpn/hu-bud.prod.blk.com_udp-tls-auth.pem" dev="nvme0n1p3" ino=802398 scontext=system_u:system_r:openvpn_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=1
type=AVC msg=audit(1659770802.777:319): avc:  denied  { read } for  pid=2124 comm="openvpn" name="hu-bud.prod.blk.com_udp-tls-auth.pem" dev="nvme0n1p3" ino=802398 scontext=system_u:system_r:openvpn_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=1
type=AVC msg=audit(1659770802.777:320): avc:  denied  { open } for  pid=2124 comm="openvpn" path="/root/.cert/nm-openvpn/hu-bud.prod.blk.com_udp-tls-auth.pem" dev="nvme0n1p3" ino=802398 scontext=system_u:system_r:openvpn_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=1
type=NETFILTER_CFG msg=audit(1659770805.461:321): table=firewalld:6 family=1 entries=5 op=nft_register_rule pid=916 subj=system_u:system_r:firewalld_t:s0 comm="firewalld"
type=SERVICE_START msg=audit(1659770805.528:322): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"

看来我需要更改 *.pem 文件的上下文标签,但不清楚要使用什么上下文。

答案1

如果您查看 中的文件/etc/openvpn,您会看到它们具有标签openvpn_etc_t

# cd /etc/openvpn
# ls -lZ
total 0
drwxr-x---. 1 root openvpn system_u:object_r:openvpn_etc_t:s0 0 Jun 10 13:36 client
drwxr-x---. 1 root openvpn system_u:object_r:openvpn_etc_t:s0 0 Jun 10 13:36 server

如果您最初在此目录中创建了配置文件,那么它们已经具有正确的标签。但是,从错误来看,openvpn 正在尝试从/root;读取文件。这通常不是一个好主意,因为它要求服务具有更高的权限。

最简单的解决方案可能是将文件重新定位到/etc/openvpn.不要使用mv,因为这将保留现有的(不正确的)标签。像这样的事情会很好地工作:

tar -C /root/.cert -cf- . | tar -C /etc/openvpn -xf-

这会将nm-openvpn目录放入/etc/openvpn正确的标签中。

您将需要更新您的连接配置文件才能使用新位置中的证书。

相关内容