SELinux Policy: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 22: Zeile 22:
  
 
<!----->
 
<!----->
<span id="berechtigungsstruktur-anhand-von-user_t-und-dem-ping-programm"></span>
+
<span id="allow-regeln-und-domänentranstion-anhand-von-user_t-und-dem-ping-programm"></span>
= Berechtigungsstruktur anhand von ''user_t'' und dem ping-Programm =
+
= allow-Regeln und Domänentranstion anhand von ''user_t'' und dem ping-Programm =
  
 
<span id="welche-programme-darf-user_t-ausführen"></span>
 
<span id="welche-programme-darf-user_t-ausführen"></span>
Zeile 45: Zeile 45:
 
<!----->
 
<!----->
 
  allow user_t ping_exec_t:file { execute getattr ioctl map open read }; [ user_ping ]:True
 
  allow user_t ping_exec_t:file { execute getattr ioctl map open read }; [ user_ping ]:True
 +
<span id="domänentransition"></span>
 +
== Domänentransition ==
 +
 +
* Für eine Domänentransition muss der Übergang definiert und explicit erlaubt werden
 +
* sesearch -s user_t -t ping_exec_t -T
 +
 +
<!----->
 +
type_transition user_t ping_exec_t:process ping_t; [ user_ping ]:True
 +
* sesearch -s user_t -t ping_t -p transition --allow
 +
 +
<!----->
 +
allow user_t ping_t:process transition; [ user_ping ]:True

Version vom 9. Januar 2023, 13:54 Uhr

Regelstruktur

  • sesearch -t ping_t -c tcp_socket --allow -dt
  • Attribute werden benutzt, um Typen zu gruppieren.
  • Attribute wirken sich nicht direkt auf Berechtigungen aus, sondern entscheiden über Dinge wie File- und Portlabeling
  • Klassen werden in allow/disallow Regeln bestimmten Typen zugeordnet
  • Klassen fassen Berechtigungen zusammen

Regeln suchen

  • mit sesearch können SELinux-Regeln gesucht werden
  • suchbare Felder sind Quell (-s)-/Zieltypen (-t), Objektklasse (-c), Berechtigungen (-p) und mit der Regel assoziierte Booleans (-b)
  • mit -ds und -dt wird explizit nach dem Namen des jeweiligen Quell- und Zieltyp gesucht, statt nur nach passenden Attributen zu matchen
  • Man muss angeben, ob man nach allow-Regeln (--allow) oder nach Typentransitionsregeln (-T) sucht

allow-Regeln und Domänentranstion anhand von user_t und dem ping-Programm

Welche Programme darf user_t ausführen?

  • sesearch -s user_t -p execute --allow -ds | head
allow user_t application_exec_type:file { execute execute_no_trans getattr ioctl lock map open read };
allow user_t bin_t:file { entrypoint execute execute_no_trans getattr ioctl lock map open read };
allow user_t bluetooth_helper_exec_t:file { execute getattr ioctl map open read };
allow user_t cdrecord_exec_t:file { execute getattr ioctl map open read };
allow user_t checkpolicy_exec_t:file { execute execute_no_trans getattr ioctl lock map open read };
allow user_t chfn_exec_t:file { execute getattr ioctl map open read };
allow user_t chkpwd_exec_t:file { execute getattr ioctl map open read };
allow user_t chromium_exec_t:file { execute getattr ioctl map open read };
allow user_t chroot_exec_t:file { execute execute_no_trans getattr ioctl lock map open read };
allow user_t cifs_t:file { execute execute_no_trans getattr ioctl map open read }; [ use_samba_home_dirs ]:True
  • sesearch -s user_t -p execute --allow -ds | grep ping_
allow user_t ping_exec_t:file { execute getattr ioctl map open read }; [ user_ping ]:True

Domänentransition

  • Für eine Domänentransition muss der Übergang definiert und explicit erlaubt werden
  • sesearch -s user_t -t ping_exec_t -T
type_transition user_t ping_exec_t:process ping_t; [ user_ping ]:True
  • sesearch -s user_t -t ping_t -p transition --allow
allow user_t ping_t:process transition; [ user_ping ]:True