仮想マシンとして実行されるFedora Server v39(最小インストール)があります(ホストもFedora Server v39です)。
VMを使用してホストディレクトリをVMと共有し、virtiofs
それを/etc/wireguard
VMにマップしました。
drwx------. 4 root root system_u:object_r:virtiofs_t:s0 109 Dec 13 22:03 wireguard
SELINUXがブロックされていることを除いて、設定をwireguard
読み取ってインストールしました。/etc/wireguard
# ausearch -m AVC -i
----
type=AVC msg=audit(13/12/23 21:19:26.166:194) : avc: denied { search } for pid=1151 comm=wg-quick name=/ dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=0
----
type=AVC msg=audit(13/12/23 22:00:40.880:204) : avc: denied { search } for pid=1250 comm=wg-quick name=/ dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=0
----
type=AVC msg=audit(13/12/23 22:01:47.028:208) : avc: denied { search } for pid=1265 comm=wg-quick name=/ dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=1
----
type=AVC msg=audit(13/12/23 22:01:47.028:209) : avc: denied { getattr } for pid=1265 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:01:47.033:210) : avc: denied { getattr } for pid=1269 comm=stat path=/etc/wireguard dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=1
----
type=AVC msg=audit(13/12/23 22:01:47.034:211) : avc: denied { read } for pid=1265 comm=wg-quick name=wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:01:47.034:212) : avc: denied { open } for pid=1265 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:01:47.035:213) : avc: denied { ioctl } for pid=1265 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 ioctlcmd=TCGETS scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.574:372) : avc: denied { search } for pid=1692 comm=wg-quick name=/ dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.574:373) : avc: denied { getattr } for pid=1692 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.584:376) : avc: denied { search } for pid=1702 comm=stat name=/ dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.588:377) : avc: denied { getattr } for pid=1704 comm=stat path=/etc/wireguard dev="virtiofs" ino=981467275 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=dir permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.588:378) : avc: denied { read } for pid=1692 comm=wg-quick name=wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.589:379) : avc: denied { open } for pid=1692 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
----
type=AVC msg=audit(13/12/23 22:30:26.593:380) : avc: denied { ioctl } for pid=1692 comm=wg-quick path=/etc/wireguard/wg0.conf dev="virtiofs" ino=981467299 ioctlcmd=TCGETS scontext=system_u:system_r:wireguard_t:s0 tcontext=system_u:object_r:virtiofs_t:s0 tclass=file permissive=1
policycoreutils-python-utils
そのため、SELINUXツールをインストールして実行して、grep AVC /var/log/audit/audit.log | audit2allow -M wireguard
次のポリシーを取得しました。
# cat wireguard.te
module wireguard 1.0;
require {
type wireguard_t;
type virtiofs_t;
class dir { getattr search };
class file { getattr ioctl open read };
}
#============= wireguard_t ==============
allow wireguard_t virtiofs_t:dir { getattr search };
allow wireguard_t virtiofs_t:file { getattr ioctl open read };
しかし、インストールしようとするとエラーが発生します。
# semodule -i wireguard.pp
libsemanage.semanage_direct_install_info: Overriding wireguard module at lower priority 100 with module at priority 400.
Failed to resolve typepermissive statement at /var/lib/selinux/targeted/tmp/modules/400/permissive_wireguard_t/cil:1
Failed to resolve AST
semodule: Failed!
私が見つけたすべてのヘルプページにこれを行うように言われているので、今は迷っています。助けてくれてありがとう。
答え1
良いです..非常に簡単な解決策です。タイプと同じポリシー名を指定することはできません。
したがって、上記のプロセスで変更する行は簡単です。
grep AVC /var/log/audit/audit.log | audit2allow -M wireguard-policy
それでは適用してください
semodule -i wireguard-policy.pp