Portál AbcLinuxu, 8. května 2025 00:39
avc: denied { getattr } for pid=1761 comm="sh" path="/sys/module" dev=sysfs ino=581 scontext=system_u:system_r:shorewall_t:s0 tcontext=system_u:object_r:sysfs_t:s0 tclass=dir ...A to po nahrání vlastního semodulu, předtím si to stěžovalo na search oprávnění. Na obou serverech jsou stejné verze shorewall a ostatních balíků, kontext na souborech sedí, "semanage fcontext -l | grep shorewa" vrací stejný výstup na obou serverech. I přesto se zdá, že shorewall inicializuje firewall normálně - evidentně má ale s něčím problém.
allow shorewall_t sysfs_t:dir getattr
?
Ten denial by celkem odpovídal tomu, co dělá funkce loadmodule()
v Shorewall-core/lib.common
.
Shorewall v CentOS 6 není. Máš ho asi z EPEL nebo odjinud. Takže mě ani nepřekvapuje, že distribuční selinux-policy s ním nepočítá.
jak je možné, že na jednom stroji to funguje dobře a na druhém ne?A to máš na obou strojích úplně stejnou konfiguraci shorewallu? Pokud ne, tak je možné, že na jednom z nich se shorewall pokouší načíst nějaký conntrack helper modul a na druhém ne.
Jakým způsobem se aktualizují selinux pravidla? Koukal jsem se do rpm selinux-policy-targeted vč. jeho skriptů, ale nějak mi to není jasné? To se nějak dynamicky dokompiluje k již nasazeným pravidlům?V %post to volá
semodule -B
, což slinkuje *.pp moduly (včetně tvého) do výsledné policy.
module mujmodul_shorewall 1.0; require { type shorewall_t; type prelink_mask_t; class process sigchld; class fd use; class fifo_file { ioctl read write getattr lock append }; } #============= shorewall_t ============== allow prelink_mask_t shorewall_t : process sigchld ; allow prelink_mask_t shorewall_t : fd use ; allow prelink_mask_t shorewall_t : fifo_file { ioctl read write getattr lock append } ; ... ale ... semodule -i mujmodul_shorewall.pp libsepol.print_missing_requirements: mujmodul_shorewall's global requirements were not met: type/attribute prelink_mask_t (No such file or directory). libsemanage.semanage_link_sandbox: Link packages failed (No such file or directory). semodule: Failed!Na tom "nefunkčním" systému neexistuje vůbec prelink_mask_t - "sesearch --allow -t prelink_mask_t" nevrátí nic, na tom druhém vrátí spoustu pravidel. Podle "grep prelink_mask_t /usr/share/selinux/* -R" jsou nějaké pravidla v "/usr/share/selinux/devel/include/admin/prelink.if".
etckeeper: pre transaction commit Instaluje se : selinux-policy-3.7.19-260.el6.noarch 1/2 Instaluje se : selinux-policy-targeted-3.7.19-260.el6.noarch 2/2 semodule: link.c:840: alias_copy_callback: Assertion `base_type->primary == target_type->s.value' failed. etckeeper: post transaction commit Verifying : selinux-policy-targeted-3.7.19-260.el6.noarch 1/2 Verifying : selinux-policy-3.7.19-260.el6.noarchNa tom druhém dobrém serveru ta Assertion hláška není.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.