Logwatch to kolejna aplikacja zwiększająca naszą świadomość nie tylko w kwestii bezpieczeństwa systemu, ale również dająca szczegółowy raport w temacie wykorzystanie usług. Instalacja i konfiguracja są bardzo proste, ale mimo to standardowo przy włączonym SELinux-e zamiast codziennego raportu otrzymujemy wiadomość:
/etc/cron.daily/0logwatch: You have old files in your logwatch tmpdir (/var/cache/logwatch): logwatch.ARqbbW2Q The directories listed above were most likely created by a logwatch run that failed to complete successfully. If so, you may delete these directories. setuid: Operation not permitted sendmail: ERR: submitclient: EOF from submit. 432 Service temporarily unavailable.
Rozwiązanie problemu polega na wykonaniu:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch2 > logwatch2.te
z czystej ciekawości możemy zajrzeć do efektów powyższego rozkazu komendą:
cat logwatch2.te
oraz zobaczywszy:
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch2.pp
logwatch_t self:capability setuid;
możemy z czystym sumieniem:
semodule -i logwatch2.pp
Zamykając temat należy jeszcze usunąć podkatalogi tymczasowe z katalogu /var/cache/logwatch. Opracowane na podstawie blogu Dan Walsh (https://danwalsh.livejournal.com/24750.html) oraz dokumentacji RedHat (https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-fixing_problems-allowing_access_audit2allow) i opisu w Wiki Centosa (rozdz. 7 - https://wiki.centos.org/HowTos/SELinux) .
P.S.
Jedno naprawiając okazuje się, że drugie pospuliśmy.;P
/etc/cron.daily/0logwatch:
sendmail: Unable to submit message.
rozwiązanie leży w konfiguracji logwatch-a, gdzie w pliku /etc/logwatch/conf/logwatch.conf modyfikujemy stałą mailer do następującej wartości:
mailer = /usr/sbin/sendmail
oraz po raz koleiny wracamy do SELinuxa:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch4 > logwatch4.te
cat ./logwatch4.te
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch4.pp
=======
allow logwatch_t courier_etc_t:file open;
semodule -i logwatch4.pp
i jeszcze raz po kolejnym wywołaniu logwatch-a przez cron-a po błędzie:
/etc/cron.hourly/0logwatch: sendmail: ERR: submitclient: EOF from submit. 432 Service temporarily unavailable. sendmail: Unable to submit message.
wykonujemy:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch5 > logwatch5.te
cat logwatch5.te
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch5.pp
}
#============= logwatch_t ==============
allow logwatch_t courier_spool_t:dir remove_name;
allow logwatch_t courier_spool_t:file { append open };
semodule -i logwatch5.pp
i jeszcze raz po kolejnym uruchomieniu tym razem w odpowiedzi na komunikat błędu:
/etc/cron.hourly/0logwatch: sendmail: Unable to submit message.
wykonujemy analogiczne komendy:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch6 > logwatch6.te
cat logwatch6.te
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch6.pp
logwatch_t ==============
allow logwatch_t courier_spool_t:file { read unlink write };
semodule -i logwatch6.pp
Nie poddajemy się i jeszcze po kolejnym uruchomieniu logwatch-a przez cron-a tym razem w odpowiedzi na komunikat błędu:
/etc/cron.hourly/0logwatch: ERR: authdaemon: s_connect() failed: Permission denied 450-Service temporarily unavailable. 450 Headers specify no receipients. sendmail: Unable to submit message.
wykonujemy analogiczne komendy:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch7 > logwatch7.te
cat logwatch7.te
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch7.pp
ite };
}
#============= logwatch_t ==============
#!!!! This avc is allowed in the current policy allow logwatch_t courier_spool_t:file { read unlink write };
allow logwatch_t courier_spool_t:sock_file write;
semodule -i logwatch7.pp
Nie przejmujemy się otrzymaniem ponownie tego samego błędu po kolejnym uruchomieniu logwatch-a przez cron-a:
/etc/cron.hourly/0logwatch: sendmail: ERR: submitclient: EOF from submit. 432 Service temporarily unavailable. sendmail: Unable to submit message.
i wykonujemy analogiczne komendy do powniższych:
grep logwatch /var/log/audit/audit.log | audit2allow -M logwatch8 > logwatch8.te
cat logwatch8.te
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i logwatch8.pp
===========
allow logwatch_t courier_spool_t:file rename;
semodule -i logwatch8.pp
By w końcu nasz upór został nagrodzony długo oczekiwanym raportem w postaci:
################### Logwatch 7.4.0 (03/01/11) #################### Processing Initiated: Sat Jul 28 15:01:04 2018 Date Range Processed: yesterday ( 2018-Jul-27 ) Period is day. Detail Level of Output: 0 Type of Output/Format: mail / text Logfiles for Host: bit.sos.pl ################################################################## --------------------- courier mail services Begin ------------------------ Unexpected SSL connection shutdowns: 5 Times Errors in remote to local connections: 646 Times because "502 ESMTP command error",cmd: DATA - 12 Times
...