SELinux Policy: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
−
* SELinux Policies werden hauptsächlich in einer ''.te'' Datei definiert
+
<span id="regelstruktur"></span>
−
* Ein Grundgerüst kann mit ''sepolicy generate'' erstellt werden
+
= Regelstruktur =
  
−
<!----->
+
{{#drawio:selinux-regelstruktur-1}}
−
<span id="vorhandene-definitionen-verwenden"></span>
 
−
= Vorhandene Definitionen verwenden =
 
  
−
* Mit '''require''' können bereits bekannte Variablen wie Typen, Attribute, etc. geladen werden
+
<span id="regeln-suchen"></span>
−
* Eine vollständige Liste kann mit ''seinfo'' eingesehen werden
+
= Regeln suchen =
−
* Syntax Beispiel:
 
  
−
<!----->
+
* mit ''sesearch'' können SELinux-Regeln gesucht werden
−
policy_module(custom, 1.0.0)
+
*
−
 
−
require {
 
−
    type mnt_t;
 
−
    class file;
 
−
    attribute port_type;
 
−
}
 
−
<span id="neuen-porttyp-definieren"></span>
 
−
= Neuen Porttyp definieren =
 
−
 
 
−
* Erforderliche Attribute importieren
 
−
* Neuen Porttyp deklarieren
 
−
* Neuen Porttyp mit den Attributen assozieren
 
−
* Syntax Beispiel
 
−
 
 
−
<!----->
 
−
policy_module(custom, 1.0.0)
 
−
 
−
require {
 
−
    attribute port_type;
 
−
    attribute defined_port_type;
 
−
    attribute reserved_port_type;
 
−
}
 
−
 
−
type custom_port_t;
 
−
typeattribute custom_port_t port_type;
 
−
typeattribute custom_port_t defined_port_type;
 
−
typeattribute custom_port_t reserved_port_type;
 
−
<span id="type-transition"></span>
 
−
= Type transition =
 
−
 
 
−
* Damit ein Programm einen [https://xinux.net/index.php/SELinux_Handling#add_port gelabelten Port] benutzen darf, muss es eine Transistion zu den Porttyp machen
 
−
* Das wird mit den '''allow''' Befehlen in den Konfigurationsdatei erreicht
 
−
* Syntax Beispiel:
 
−
 
 
−
<!----->
 
−
policy_module(custom, 1.0.0)
 
−
 
−
require {
 
−
    attribute port_type;
 
−
    attribute defined_port_type;
 
−
    attribute reserved_port_type;
 
−
}
 
−
 
−
type custom_t;
 
−
type custom_port_t;
 
−
typeattribute custom_port_t port_type;
 
−
 
−
# Zwei verschiedene Typentransitionen müssen erfolgen, damit ein Programm auf einen Port lauschen darf.
 
−
allow custom_t custom_port_t:tcp_socket { name_bind };
 
−
allow custom_t node_t:tcp_socket { node_bind };
 
−
allow custom_t self:tcp_socket { listen accept };
 

Version vom 9. Januar 2023, 11:10 Uhr

Regelstruktur

Regeln suchen

  • mit sesearch können SELinux-Regeln gesucht werden