Website-Icon .: blog cscholz.io :.

Wheezy SELinux: Module bauen

Sobald SELinux läuft, werden Verstöße gegen die Regeln in der Log-Datei /var/log/syslog protokolliert.

Aug 20 12:39:22 selinux-client kernel: [13.249632] type=1400 audit(1345459162.854:8): avc:
 denied  { search } for  pid=1777 comm="getty" name="/" dev=sda2 ino=2 scontext=system_u:system_r:getty_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir

Hierbei kann es jedoch auch sein, dass Verstöße erkannt werden, die eigentlich keine sind, sondern nur als Verstoß erkannt wurde, weil es keine Regeln für diese Aktion gab.

Als Beispiel die oben genannte Meldung. Diese soll nun erlaubt werden. Dafür gibt es ein Tool Namens audit2allow, welches aus der Meldung ein entsprechendes Modul erstellt, dass anschließend geladen werden kann.

grep getty /var/log/syslog |audit2allow -m getty
 module getty 1.0;
 require {
 type file_t;
 type getty_t;
 class dir search;
 }
 #============= getty_t ==============
 allow getty_t file_t:dir search;

Dies war erstmal nur die Anzeige des Moduls, das Modul selbst kann dann wie folgt erstellt werden:

grep getty /var/log/syslog |audit2allow -M getty

Nun existiert in dem aktuellen Ordner eine Datei Namens getty.pp die installiert werden kann

Modul persistent installieren

semodule -i getty.pp

Modul wieder entfernen

semodule -r getty

Installierte Module auflisten

semodule -l
Die mobile Version verlassen