Heiko M. hat geschrieben:Mangels Erfahrung fällt mir spontan nur ein, z.B. mit dem Befehl "diff" die auth.log mit einer Kopie von auth.log vergleichen und bei einer Änderung mittels grep nach den Einträgen suchen die dich interessieren und dann weitrere Aktionen durchführen.
Das kann
logtail. Es legt eine Differenzdatei an und liefert bei jedem Aufruf den neu hinzugekommenen Teil (oder eben gar nix, wenn sich die Datei nicht geaendert hat).
Mein Vorschlag:
Code: Alles auswählen
#!/bin/sh
# EMail verschicken [0/1] (Vorraussetzung: apt-get install sendEmail logtail)
CRASHMAIL="1" #0=Aus, 1=Ein
WHITE=192.1.1.1 # legitimer Client
# Maileinstellungen
SMTPFROM='mir@xxxx.de' #Absender
SMTPTO='mir@xxxx.de' #Empfänger
SMTPSERVER='anbieter.xxxxx.de' #SMTP-Server
SMTPUSER='user' #Benutzer
SMTPPASS='pass' #Passwort
# CONFIG - END
iplist="$(logtail -f/var/log/auth.log \
| awk '/^.*sshd\[[0-9]+\]: Accepted.*for root.*$/ {
if ("'$WHITE'" != $11) print $11;
}' \
| sort \
| uniq -c \
| sort -n)";
if [ -n "$iplist" ]; then
SUBJECT="root login(s) to $(hostname -f)"
MESSAGE="Login(s) for user root from other clients than $WHITE:
$iplist";
sendEmail -f "$SMTPFROM" -t "$SMTPTO" -u "$SUBJECT" -m "$MESSAGE" \
-s "$SMTPSERVER" -xu "$SMTPUSER" -xp "$SMTPPASS"
fi
Was hab' ich gemacht?
logtail eingebaut, die ganze RegEx-Logik direkt in
awk gepackt, mehrere Logins zusammen in dieselbe Mail gepackt. Wohlgemerkt gucke ich nur auf
/var/log/auth.log, zum einen sollte das reichen, zum anderen sind die anderen Dateien hauptsaechlich gzip-komprimiert und somit ohnehin nicht im Klartext.
Uebrigens solltest du unbedingt fuehrende Nullen bei IP-Adressen weglassen, weil das ggf. oktal (Basis 8) interpretiert wird:
Code: Alles auswählen
$ ping -c1 017700000001
PING 017700000001 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.072 ms
--- 017700000001 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.072/0.072/0.072/0.000 ms
Sieht komisch aus, aber so wird das interpretiert.
Gruss Cae