すべてのユーザーが(オープン)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
正しいタグに配置されます。
新しい場所で証明書を使用するには、接続プロファイルを更新する必要があります。