SELinux User: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 30: Zeile 30:
 
== Bedeutung dieser Fehlermeldung ==
 
== Bedeutung dieser Fehlermeldung ==
  
* '''ping''' sagt, dass der Socket keine Berechtigung hat
+
'''ping''' sagt, dass der Socket keine Berechtigung hat:
* Den genauen Verstoß kann man mit '''ausearch''' anzeigen und die Behebung mit '''audit2allow''':
+
 
 +
Den genauen Verstoß kann man mit '''ausearch''' anzeigen und die Behebung mit '''audit2allow''':
 +
 
 
* ausearch -m AVC -ts recent
 
* ausearch -m AVC -ts recent
  
Zeile 63: Zeile 65:
  
 
* In diesem Fall ist der Vorschlag von '''audit2allow''' relativ sinnvoll, da der ''icmp_socket'' schon vordefiniert ist.
 
* In diesem Fall ist der Vorschlag von '''audit2allow''' relativ sinnvoll, da der ''icmp_socket'' schon vordefiniert ist.
 +
* ausearch -m AVC -ts recent | audit2allow -M my_user_ping
 +
* semodule -i my_user_ping.pp
 +
 +
<!----->
 +
<span id="weitere-rechte-freigeben"></span>
 +
== Weitere Rechte freigeben ==
 +
 +
Wenn ''xinux'' jetzt versucht '''ping''' zu benutzen, dann kommt folgende Meldung: + ping localhost
 +
 +
<!----->
 +
ping: socket: Die Operation ist nicht erlaubt
 +
Diagnose

Version vom 29. November 2022, 08:45 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
    ping: socket: Keine Berechtingung

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.
  • ausearch -m AVC -ts recent | audit2allow -M my_user_ping
  • semodule -i my_user_ping.pp

Weitere Rechte freigeben

Wenn xinux jetzt versucht ping zu benutzen, dann kommt folgende Meldung: + ping localhost

ping: socket: Die Operation ist nicht erlaubt

Diagnose