SELinux Tips
März 27th, 2009 | Red Hat | Beitrag drucken
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(/.*)?"
