Nachdem ich gestern über meine Systemcheck Cronjobs geschrieben hab, war ich heute doch noch nicht so ganz glücklich mit der Lösung. Da gab’s noch Optimierungsbedarf.
Einerseits wollte ich schon gefühlte Ewigkeiten wieder mit automatisierten Jabbermessages spielen, anderseits fehlte mir lynsis als rkhunter Nachfolger im Setting. Zudem nervt mich die Mailerei von eigentlich sauberen Settings.
Nachdem ich heute noch weiter rumgespielt habe, fand ich ein nettes Rubyscript, welches Shellausgaben in ne Jabbermessage piped. Allerdings nur im lokalen Netz ;). Fallback ist einfach immer gut. Vor allem bei kritischer Infrastruktur.
Beim surfen durch’s Netz fand ich zudem ein anderes Script welches mich inspiriert hat.
Raus gekommen ist folgendes – nicht ganz perfektes – Shellscript. Es gewinnt keinen Preis in Ästhetik, dafür progge ich Shell zu selten, aber es tut exakt das, was es soll.
– es führt Scans durch und lässt sie eine Logdatei schreiben
– es durchläuft die Logdatei und schaut nach, ob Warnings oder Infected Meldungen da sind
– es schreibt die Anzahl der Meldungen in eine Auswertungsdatei
– es schickt mir den Inhalt der Auswertungsdatei per XMPP Message, wenn Meldungen existieren
– die Logdatei wird per Email los geschickt, wenn Meldungen existieren
– es schickt mir ne kurze Email, wenn alles ok ist //das aber nur für ne Übergangszeit.
#!/bin/sh
log="/home/xxxx/chkrootkit.log"
auswertung="/home/xxxx/rkhunter.log"
warning=0;
infected=0;
# scan & log
echo "\n chrootkit \n" > $log
chkrootkit -q >> $log
echo "\n rkrootkit \n" >> $log
rkhunter -c --report-warnings-only >> $log
echo "\n lynis \n" >> $log
lynis --quiet --quick >> $log
# nach Meldungen durchsuchen
infected=`grep "INFECTED" < $log`
warning=`grep "Warning" < $log`
# Auswertungsdatei schreiben
echo "\n\nScan vom `date`" > $auswertung
# Anzahl der Warnungen zählen
cat $log | egrep WARNING | wc -l >> $auswertung
# Warnungen in die Datei schreiben
echo " warnings\n" >> $auswertung
# Anzahl der Infektionen zählen
cat $log | egrep ÌNFECTED | wc -l >> $auswertung
# Infektionen in die Datei schreiben
echo " infected\n" >> $auswertung
# Anzahl der Meldungen prüfen, wenn welche da sind
if [ "$INFECTED" != 0 -o "$WARNING" != 0 ]; then
# Jabbermessage triggern und mail mit Log los schicken
cat $auswertung | /home/xxxx/jabbersend.rb -t konto@internerjabberserver
mail -s "`hostname` Scan Probleme" empfaenger@emailserver.tld < $log
else
# alternativ nur die Auswertung mailen
mail -s "`hostname` Scan alles Super" empfaenger@emailserver.tld < $auswertung
fi
Das Ganze noch als Cronjob ein gehängt und ich bin happy, zumindest erstmal ♥
__________________________________
gpg –detach-sign -a ischtar