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