Will man Erfahrung mit Selinux sammeln und soll doch der Betrieb auf einem Server ungestört weiterlaufen, dann ist es empfehlenswert Selinux für einen gewissen Zeitraum im "permissive Mode" laufen zu lassen.
Im permissive Mode ist Selinux aktiv, verhindert jedoch bei einer Regelverletzung nichts sondern protokolliert diese Regelverletzung nur.
Nun kann man regelmäßig die Datei /var/log/messages nach Selinux-Logeinträgen scannen und anhand dieser Logeinträge das Selinuxsystem korrigieren.
So liefert ein grep auf die Datei messages beispielsweise folgende Logeinträge:
# grep avc /var/log/messages
Aug 17 05:31:30 moodle kernel: audit(1218943890.300:162): avc: denied { read write } for pid=17245 comm="pickup" name="[eventpoll]" dev=anon_inodefs ino=165 scontext=system_u:system_r:postfix_pickup_t:s0 tcontext=system_u:object_r:anon_inodefs_t:s0 tclass=file Aug 18 05:04:58 moodle kernel: audit(1219028698.987:163): avc: denied { read write } for pid=19709 comm="cleanup" name="[eventpoll]" dev=anon_inodefs ino=165 scontext=system_u:system_r:postfix_cleanup_t:s0 tcontext=system_u:object_r:anon_inodefs_t:s0 tclass=file Aug 18 05:04:59 moodle kernel: audit(1219028699.465:164): avc: denied { read write } for pid=19716 comm="local" name="[eventpoll]" dev=anon_inodefs ino=165 scontext=system_u:system_r:postfix_local_t:s0 tcontext=system_u:object_r:anon_inodefs_t:s0 tclass=file Aug 18 06:30:30 moodle kernel: audit(1219033830.616:165): avc: denied { read write } for pid=19965 comm="pickup" name="[eventpoll]" dev=anon_inodefs ino=165 scontext=system_u:system_r:postfix_pickup_t:s0 tcontext=system_u:object_r:anon_inodefs_t:s0 tclass=file Aug 18 09:50:32 moodle kernel: audit(1219045832.070:166): avc: denied { read write } for pid=21206 comm="pickup" name="[eventpoll]" dev=anon_inodefs ino=165 scontext=system_u:system_r:postfix_pickup_t:s0 tcontext=system_u:object_r:anon_inodefs_t:s0 tclass=file
Diese Logeinträge können nun mit dem Kommando audit2allow in Selinuxregeln übersetzt werden:
# grep avc /var/log/messages | audit2allow
#============= postfix_cleanup_t ==============
allow postfix_cleanup_t anon_inodefs_t:file { read write };
#============= postfix_local_t ==============
allow postfix_local_t anon_inodefs_t:file { read write };
#============= postfix_pickup_t ==============
allow postfix_pickup_t anon_inodefs_t:file { read write };
Damit jedoch audit2allow gleich eine Policydatei erstellt wird das Kommando erweitert:
# grep avc /var/log/messages | audit2allow -M postfix2
Nach diese Aktion liegt im Workingdirectory die Datei postfix2.pp und die Datei postfix2.te
Die Datei postfix2.pp enthält die durchkompilierten Regeln, die sogleich mit dem Kommando
# semodule -i postfix2.pp
geladen und aktiviert werden können.
Will man alle geladenen Module am Bildschirm ausgeben, erreicht man diese durch Eingabe von:
# semodule -l
Mit
# semodule -r MODULNAME
kann ein Modul wieder aus dem Speicher entfernt werden.
Montag, 18. August 2008
Abonnieren
Kommentare zum Post (Atom)
0 Kommentare:
Kommentar veröffentlichen