SELinux Policy op Fedora 25

Bij het gebruik van SELinux is het al eens nodig om een bepaalde aanpassing te doen omdat iets niet werkt. Je kan SELinux simpelweg afleggen natuurlijk, maar dat is niet zo verstandig.

Beter is het om een policy te maken voor de applicatie. Stel dat Samba bijvoorbeeld toegang moet hebben tot een bestandssysteem dat via FUSE gemount wordt. Normaal heeft smbd_t geen toegang tot fusefs_t, maar dat kan met een module snel verholpen worden. Het bestand moet dezelfde naam hebben als de parameter van policy_module (i.e. samba_fuse_access.te in dit geval). Op de Gentoo Wiki staat meer uitleg over de syntax.

policy_module(samba_fuse_access, 1.0)

gen_require(`
        type smbd_t;
        type fusefs_t;
')

allow smbd_t fusefs_t:file { getattr read write unlink open lock };

(Ik geef hier smbd_t het recht om de attr van bestanden met als type fusefs_t te bekijken, om ze te openen, te locken, te verwijderen en ze te lezen en te schrijven. Welke rechten het proces nodig heeft hangt van de applicatie af. Kijk in /var/audit/audit.log om te weten welke nodig zijn en voor welke types. Zoek naar avc: denied { write } of soortgelijk.)

Compileer (met make) de module tot een .pp-bestand (het is dat bestand dat je zal inladen met SELinux).

make -f /usr/share/selinux/devel/Makefile samba_fuse_access.pp

Inladen van de module doe je met semodule.

semodule -i samba_fuse_access.pp

Het is misschien een beetje moeilijker dan gewoon SELinux afleggen, maar het is wel een stuk veiliger.