SELinux Tips

Um z.B. für amavis eine SELinux Policy zu erstellen kannst Du dir zunächst mit audit2allow den Inhalt des .te file ausgeben lassen:

grep amavis /var/log/audit/audit.log | audit2allow -m local

Mit Hilfe von

grep amavis /var/log/audit/audit.log | audit2allow -m local > local.te

erzeugst Du eine Datei namens local.te mit selbigen Inahlt.

Der Befehl:

checkmodule -M -m -o local.mod local.te

erstellt daraufhin aus dem .te file ein Modul mit dem Namen local.mod


Da ein Modul jedoch noch nicht installierbar ist, musst Du mit:

semodule_package -o local.pp -m local.mod

erst noch das installierbare Modulpaket daraus erstellen.

Schlussendlich lädt:

semodule -i local.pp

das Modul persistent in den Kernel.

Falls du das Modul später wieder entfernen möchtest, kannst Du dies mit

semodule -r local

tun. Das ganze geht sogar in einem einzigen Schritt:

setenforce 1; rcamavis restart; grep amavis /var/log/audit/audit.log | audit2allow -M local; semodule -i local

Es kann auch sinnvoll sein den Kontext einer Datei zu ändern:

chcon -v --type=samba_share_t /srv/samba/myfile
semanage fcontext -a -t samba_share_t /srv/samba/myfile

Hierbei ist zu beachten das ein mit chcon gelabeltes File auch noch nach einem Neustart des Systems gelabelt bleit, nicht jedoch nach einem kompletten Dateisystem re-label. Das erreichst Du erst mit semanage.

Um rekursiv den Kontext eines Verzeichnisses zu ändern, gehe bitte wie folgt vor:

chcon -Rv --type=samba_share_t /srv/samba
semanage fcontext -a -t samba_share_t "/srv/samba(/.*)?"

27. März 2009 von admin
Kategorien: Tutorials | Schlagwörter: , , , , | 1 Kommentar

1 Kommentar

  1. Herzlichen Dank für die SELinux Tips!

    Lange gegoogled, das hier war das einzig Brauchbare für mein Problem
    und wirklich fachlich fundiert.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert




*