SELinux User: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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-&gt;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-&gt;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-&gt;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-&gt;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
    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.