[Gelöst] email notification bei shell login (fb7390 dropbear multi ssh)

meisterlei

Neuer User
Mitglied seit
8 Jun 2014
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Hat jemand eine Idee wie ich eine Email Notification implementieren kann wenn jemand versucht (erfolgreich/los) sich mit ssh in die fritzbox einzuloggen?
 
Zuletzt bearbeitet:
Starte (wenn nicht sowieso schon aktiv) syslogd.
Alle Entsprechenden Dinge findest du dann im Sys-Log.
Hier mal als Beispiel erfolgreicher Login, unbekannter User, flasches PW:

Code:
root@fritz:/var/mod/root# cat /var/log/messages | grep drop
Jun  8 19:34:34 fritz authpriv.warn dropbear[31147]: Failed loading /mod/etc/dropbear/dropbear_ecdsa_host_key
Jun  8 19:34:34 fritz authpriv.info dropbear[31147]: Child connection from A.B.C.D:51241
Jun  8 19:34:37 fritz authpriv.notice dropbear[31147]: Password auth succeeded for 'root' from A.B.C.D:51241
Jun  8 19:35:40 fritz authpriv.info dropbear[31147]: Exit (root): Disconnect received
Jun  8 19:35:47 fritz authpriv.warn dropbear[31188]: Failed loading /mod/etc/dropbear/dropbear_ecdsa_host_key
Jun  8 19:35:47 fritz authpriv.info dropbear[31188]: Child connection from A.B.C.D:51244
Jun  8 19:35:47 fritz authpriv.warn dropbear[31188]: Login attempt for nonexistent user from A.B.C.D:51244
Jun  8 19:35:49 fritz authpriv.warn dropbear[31188]: Login attempt for nonexistent user from A.B.C.D:51244
Jun  8 19:35:52 fritz authpriv.warn dropbear[31188]: Login attempt for nonexistent user from A.B.C.D:51244
Jun  8 19:35:52 fritz authpriv.info dropbear[31188]: Exit before auth: Max auth tries reached - user 'is invalid' from A.B.C.D:51244
Jun  8 19:36:05 fritz authpriv.warn dropbear[31191]: Failed loading /mod/etc/dropbear/dropbear_ecdsa_host_key
Jun  8 19:36:05 fritz authpriv.info dropbear[31191]: Child connection from A.B.C.D:51246
Jun  8 19:36:08 fritz authpriv.warn dropbear[31191]: Bad password attempt for 'root' from A.B.C.D:51246
Jun  8 19:36:10 fritz authpriv.warn dropbear[31191]: Bad password attempt for 'root' from A.B.C.D:51246
Jun  8 19:36:10 fritz authpriv.info dropbear[31191]: Exit before auth (user 'root', 2 fails): Max auth tries reached - user 'root' from A.B.C.D:51246
root@fritz:/var/mod/root#

Das kannst du natürlich periodisch machen/prüfen und bei Bedarf per Mail verschicken:

Code:
cat /var/log/messages | grep drop > /var/tmp/dropbearlog.txt
(while true; do \
mv /var/tmp/dropbearlog.txt /var/tmp/dropbearlog.bak ; \
cat /var/log/messages | grep drop > /var/tmp/dropbearlog.txt; \
[  "$(tail -n 1 /tmp/dropbearlog.bak)" = "$(tail -n 1  /tmp/dropbearlog.txt)" ] || \
 mailer send -i "/var/tmp/dropbearlog.txt" -s "Freetz-Dropbear Mailer" -t "[email protected]" ; \
sleep 60 ; \
done ) &
 
Abend

Bei einen erfolgreichen Login:
Erstelle im Homeverzeichnis von root eine Datei Namens: .profile
Die wird ausgeführt nach dem erfolgreichen Login.
Dort könntest du den mailer benutzen.
Code:
mailer -?
usage: mailer mailer [-s subject] -f from -t to -m mailserver [-a authname [-w passwd]] -i file(s) [-r] [-d attachfile(s)] [-l] [-c charset]
options:
  -?                 - print this help
  -p STRING          - pidfile. ("/var/run/mmailer.pid")
  -s STRING          - subject. ("FRITZ!Box")
  -f STRING          - from. (NULL)
  -t STRING          - to. (NULL)
  -m STRING          - mailserver. (NULL)
  -a STRING          - authname. (NULL)
  -w STRING          - passwd. (NULL)
  -n                 - no SMTP-Auth. (NOTSET)
  -d STRING          - attachment(s). (NULL)
  -i STRING          - inline part(s) - add text file(s) here. (NULL)
  -r                 - use "multipart/related" if possible. (NOTSET)
  -l                 - SMTP with SSL or TLS. (NOTSET)
  -c STRING          - charset (default: iso-8859-1, no charset conversion!). (NULL)
  -D STRING          - switch debug logs on. (NULL)
note: please use filename extensions if possible

Hilfreiche Umgebungsvariable:
SSH_CONNECTION
Code:
echo $SSH_CONNECTION
 
Zuletzt bearbeitet:
ah super .. danke

(wobei bei mir leicht anders da kein freetz sondern nur mods von fritzmod.net aufgespielt sind)

bei mir also die mit eingespielte debian/lenny version
Code:
busybox chroot /var/media/ftp/FRITZ/internal/fritzDebianLenny_mips /usr/sbin/rsyslogd
um rsyslogd auch auf der normalen FritzBox Firmware laufen zu lassen (dies ggf. auch in die debug.cfg eintragen)

dann kann ich auf logs zugreifen (da zuvor entsprechende verzeichnes gemountet wurden)
Code:
mount -o bind /proc/ /var/media/ftp/FRITZ/internal/fritzDebianLenny_mips/proc/                           
mount -o bind /dev/ /var/media/ftp/FRITZ/internal/fritzDebianLenny_mips/dev/

die logs sind dann für mich in
/var/media/ftp/FRITZ/internal/fritzDebianLenny_mips/var/log

das mit dem mailer muss ich noch hinbekommen, den hats in meiner busybox nämlich nicht
ber soweit hats schonmal sehr weitergeholfen
 
@koyaanisqatsi : bei erfolgreichen Login ..
du meinst damit die Methode nach @MaxMuster
Code:
cat /var/log/messages | grep drop > /var/tmp/dropbearlog.txt
(while true; do \
mv /var/tmp/dropbearlog.txt /var/tmp/dropbearlog.bak ; \
cat /var/log/messages | grep drop > /var/tmp/dropbearlog.txt; \
[  "$(tail -n 1 /tmp/dropbearlog.bak)" = "$(tail -n 1  /tmp/dropbearlog.txt)" ] || \
 mailer send -i "/var/tmp/dropbearlog.txt" -s "Freetz-Dropbear Mailer" -t "[email protected]" ; \
sleep 60 ; \
done ) &

das ist doch meine Frage, wie komme ich dahin .. was wird bei einem login über die dropbear ssh "automatisch" ausgeführt udn wo finde ich das, der vorschlag zuvor basiert ja auf einem regelmässig ausgeführten job/check
 
Der mailer ist von AVM.
Versuch mal: which mailer

Bei einen erfogreichen Login wird ~/.profile automatisch ausgeführt.
Mach mal...
Code:
echo 'echo \$SSH_CONNECTION' > ~/.profile
...dann log aus und wieder ein.

Dort könnte auch MaxMusters Methode/Skript gestartet werden.
 
Zuletzt bearbeitet:
Jo,
das ist richtig so, nur die /etc/profile ist RO und man muss die zuerst kopieren dann ergänzen und auf das original mounten.


hier der code der einfach in die debug.cfg kommt, wenn du die noch hast ;-)

Code:
cp /etc/profile /var/tmp/profile
echo "mailerscript" >> /var/tmp/profile
mount -o bind /var/tmp/profile /etc/profile

klappt bestimmt habe vorhin etwas ähnliches gemacht.
funktioniert auch mit telnet!!

LG
Georg
 
Zuletzt bearbeitet:
koyaanisqatsi meint aber die "~/.profile".
Die legt man einfach neu an und dann wird die auch ausgeführt.
(nach der /etc/profile)
 
koyaanisqatsi meint aber die "~/.profile".
Die legt man einfach neu an und dann wird die auch ausgeführt.
(nach der /etc/profile)

Ja
Das ist wohl richtig so, aber dann gilt das auch nur für den einen User. Meine Variante sollte für alle User gelten.
Georg
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.