SELinux User: Unterschied zwischen den Versionen
| Zeile 6: | Zeile 6: | ||
<!-----> | <!-----> | ||
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 | unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 | ||
| − | <span id="user-xinux-selinux-user-user_u-zuordnen"></span> | + | <span id="user-xinux-dem-selinux-user-user_u-zuordnen-und-user_ping-ausschalten"></span> |
| − | = User ''xinux'' SELinux User ''user_u'' zuordnen = | + | = User ''xinux'' dem SELinux User ''user_u'' zuordnen und ''user_ping'' ausschalten = |
* semanage login -a -s user_u xinux | * semanage login -a -s user_u xinux | ||
| Zeile 14: | Zeile 14: | ||
<!-----> | <!-----> | ||
user_u:user_r:user_t:s0 | user_u:user_r:user_t:s0 | ||
| + | * setsebool user_ping 0 | ||
| + | |||
| + | <!-----> | ||
| + | <span id="ping-für-selinux-user-user_u-per-eigenes-modul-freischalten"></span> | ||
| + | = Ping für SELinux User ''user_u'' per eigenes Modul freischalten = | ||
| + | |||
| + | <ul> | ||
| + | <li>''xinux'' | ||
| + | <ul> | ||
| + | <li>ping localhost</li></ul> | ||
| + | |||
| + | ping: socket: Keine Berechtingung</li></ul> | ||
| + | |||
| + | <span id="bedeutung-dieser-fehlermeldung"></span> | ||
| + | == Bedeutung dieser Fehlermeldung == | ||
| + | |||
| + | <ul> | ||
| + | <li><p>'''ping''' sagt, dass der Socket keine Berechtigung hat</p></li> | ||
| + | <li><p>Den genauen Verstoß kann man mit '''ausearch''' anzeigen und die Behebung mit '''audit2allow''':</p> | ||
| + | <ul> | ||
| + | <li>ausearch -m AVC -ts recent</li></ul> | ||
| + | {| class="wikitable" | ||
| + | !width="6%"| time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:629): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=icmp_socket permissive=0 | ||
| + | |- | ||
| + | | time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:630): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=rawip_socket permissive=0 | ||
| + | |} | ||
| + | |||
| + | <p>time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:631): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=icmp_socket permissive=0 —- time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:632): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=rawip_socket permissive=0</p> | ||
| + | <ul> | ||
| + | <li>ausearch -m AVC -ts recent | audit2allow -R</li></ul> | ||
| + | |||
| + | <p>require { type user_t; class icmp_socket create; class rawip_socket create; }</p> | ||
| + | <p>#============= user_t ============== allow user_t self:icmp_socket create; allow user_t self:rawip_socket create;</p></li></ul> | ||
| + | |||
| + | <span id="audit2allow-vorschlag-installieren"></span> | ||
| + | == '''audit2allow''' Vorschlag installieren == | ||
| + | |||
| + | * In diesem Fall ist der Vorschlag von '''audit2allow''' relativ sinnvoll, da der ''icmp_socket'' schon vordefiniert ist. | ||
Version vom 29. November 2022, 08:29 Uhr
SELinux-Kontext des jetzigen Benutzers ausgeben
- id -Z (Ausgangseinstellung für jeden Benutzer):
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
User xinux dem SELinux User user_u zuordnen und user_ping ausschalten
- semanage login -a -s user_u xinux
- id -Z (als xinux):
user_u:user_r:user_t:s0
- setsebool user_ping 0
Ping für SELinux User user_u per eigenes Modul freischalten
- xinux
- ping localhost
Bedeutung dieser Fehlermeldung
ping sagt, dass der Socket keine Berechtigung hat
Den genauen Verstoß kann man mit ausearch anzeigen und die Behebung mit audit2allow:
- ausearch -m AVC -ts recent
time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:629): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=icmp_socket permissive=0 time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:630): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=rawip_socket permissive=0 time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:631): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=icmp_socket permissive=0 —- time->Tue Nov 29 09:02:06 2022 type=AVC msg=audit(1669708926.962:632): avc: denied { create } for pid=13973 comm=“ping” scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=rawip_socket permissive=0
- ausearch -m AVC -ts recent | audit2allow -R
require { type user_t; class icmp_socket create; class rawip_socket create; }
#============= user_t ============== allow user_t self:icmp_socket create; allow user_t self:rawip_socket create;
audit2allow Vorschlag installieren
- In diesem Fall ist der Vorschlag von audit2allow relativ sinnvoll, da der icmp_socket schon vordefiniert ist.