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(/.*)?"

About admin

Comments

One Response to “SELinux Tips”
  1. Mike sagt:

    Herzlichen Dank für die SELinux Tips!

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

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!