per Script e-mail senden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

per Script e-mail senden

Beitrag von rooki » 10.07.2013 07:20:06

Hi,

ich habe ein script das jede Woche automatisch eine Anmeldung bei Dyndns durchführt. Bei erfolgreichem Login wird das in in ein Logfile geschrieben.

Code: Alles auswählen

#! /bin/bash
# dyndnslogin
# DynDNS Settings
USERNAME="user"
PASSWORD="pass"

# Variabeln
PROGNAME=dyndnslogin
COOKIE=/tmp/dyndnslogin_cookie
OUTPUT=/tmp/dyndnslogin_output
USERAGENT="Mozilla/5.0"

# Main
MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
  | awk -F\' '/multiform/{ print $6 }'`
curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
  --data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
  https://account.dyn.com/

if grep -E "Welcome" $OUTPUT > /dev/null 2>&1
then
  echo Login successful
  date >> /var/log/dyndns.log 
else
  echo Login failed
  FAILED="true"
fi

rm $COOKIE
rm $OUTPUT

if [ "$FAILED" = "true" ]
then
  exit 1
fi

# EOF
Ich hätte nun gerne dass bei erfilreichem Login anstatt in das Logfile eine e-mail (Login erfolgreich) an mich geht, ebenso bei Login failed (Login fehlgeschlagen). Wie kann ich das umsetzen.?

Grüße Rooki

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: per Script e-mail senden

Beitrag von Liffi » 10.07.2013 07:51:36

An den beiden entsprechenden Stellen ('Login successful' sowie 'Login failed') eine Email versenden? mail, mailx und mutt werden dir dabei behilflich sein können. Vorausgesetzt Mailing ist auf dem Rechner eingerichtet.

Benutzeravatar
Heiko M.
Beiträge: 216
Registriert: 17.01.2005 12:31:34
Lizenz eigener Beiträge: MIT Lizenz

Re: per Script e-mail senden

Beitrag von Heiko M. » 10.07.2013 07:57:30

Eine Mail kann dein Script mit folgendem Code versenden.

Code: Alles auswählen

...
echo "Nachrichteninhalt" | mail -s "Betreff" benutzer@host
...
Gruß
Heiko
Debian Testing (amd64) + KDE

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 10.07.2013 08:07:57

Hallo Heiko,
danke schonmal dafür..

Wäre es so richtig?

Code: Alles auswählen

#! /bin/bash
# dyndnslogin
# DynDNS Settings
USERNAME="user"
PASSWORD="pass"

# Variabeln
PROGNAME=dyndnslogin
COOKIE=/tmp/dyndnslogin_cookie
OUTPUT=/tmp/dyndnslogin_output
USERAGENT="Mozilla/5.0"

# Main
MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
  | awk -F\' '/multiform/{ print $6 }'`
curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
  --data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
  https://account.dyn.com/

if grep -E "Welcome" $OUTPUT > /dev/null 2>&1
then
  echo "Login bei Dyndns war erfolgreich" | mail -s "Login successful" e-mail@gmx.de
  date >> /var/log/dyndns.log 
else
  echo "Login bei Dyndns ist fehlgeschlagen" | mail -s "Login failed" e-mail@gmx.de
  FAILED="true"
fi

rm $COOKIE
rm $OUTPUT

if [ "$FAILED" = "true" ]
then
  exit 1
fi

# EOF
Gruß
Rooki

Benutzeravatar
Heiko M.
Beiträge: 216
Registriert: 17.01.2005 12:31:34
Lizenz eigener Beiträge: MIT Lizenz

Re: per Script e-mail senden

Beitrag von Heiko M. » 10.07.2013 09:10:56

Hallo rooki,
rooki hat geschrieben:Wäre es so richtig?

Code: Alles auswählen

 ...
      echo "Login bei Dyndns war erfolgreich" | mail -s "Login successful" e-mail@gmx.de
...
hätte vielleicht erwähnen sollen, dass der von mir genannte Code nur für das lokale versenden, z.B. von root@rechnername zu benutzer1@rechnername, funktioniert. Der Code oben wäre richtig, wenn e-mail@gmx.de durch benutzername1@rechnername ersetzt wird. Wenn du die Mail ins Netz (e-mail@gmx.de) senden möchtest, wirds etwas komplizierter, da Mailprovider in der Regel keine Mail von dynamischen IP-Adressen annehmen.

Da ich sowas noch nie umgesetzt habe, kann ich dir leider nur einen Hinweis geben.

Starten würde ich an deiner Stelle mit diesem Debianssmtp Programm und nach dieser Anleitung http://linuxundich.de/de/software/syste ... rschicken/.
Hoffe das bringt dich weiter.

Gruß
Heiko

p.s. Den Tipp mit einer eigens für diesen Zweck eingerichteten E-Mail Adresse würde ich sehr ernst nehmen.
Debian Testing (amd64) + KDE

wanne
Moderator
Beiträge: 7550
Registriert: 24.05.2010 12:39:42

Re: per Script e-mail senden

Beitrag von wanne » 10.07.2013 19:29:12

Heiko M. hat geschrieben:Wenn du die Mail ins Netz (e-mail@gmx.de) senden möchtest, wirds etwas komplizierter, da Mailprovider in der Regel keine Mail von dynamischen IP-Adressen annehmen.
Ach wie gut das niemand weiß, dass ich ne dynamische IP hab.
Also ich kann an google schicken. Bin aber auch nicht bei einem der Standadprovider.
Also erstes würde ich's einfach mal (per Hand) ausprobieren.

Edit: Mir ist gerade aufgefallen meine IP ist nach außen hin staatisch ich leite gezwungenermaßen per iptables über meinen Server um. Vor lauter Firewalltunnelei blickt man doch selbst nicht mehr durch wo man da die Pakete um die Welt schickt :-(
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7550
Registriert: 24.05.2010 12:39:42

Re: per Script e-mail senden

Beitrag von wanne » 10.07.2013 19:41:14

Wenn du miredo über den debianserver laufen lässt nimmt googlemail über IPv6 an. (Hat mich aber als spam eingeordnet. (Was aber auch am belanglosen Inhalt und dem fehlerhaft geschriebenen Datum der Mail liegen kann.))
Damit nehme ich an, dass sie auch über die echte IP annehmen würden. (Google wird intelligent genug sein die echte IP hinter dem Teredo zu erkennen. (Letzten 4 Byte vernichtet))
rot: Moderator wanne spricht, default: User wanne spricht.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 11.07.2013 09:06:53

Hi,

nach ein wenig rumprobieren habe ich es jetzt so am laufen:

Code: Alles auswählen

#! /bin/bash
# dyndnslogin
# DynDNS Settings
USERNAME="user"
PASSWORD="pass"

# Variabeln
PROGNAME=dyndnslogin
COOKIE=/tmp/dyndnslogin_cookie
OUTPUT=/tmp/dyndnslogin_output
USERAGENT="Mozilla/5.0"

# EMail verschicken [0/1] (Vorraussetzung: apt-get install sendEmail)
CRASHMAIL="1" #0=Aus, 1=Ein
# Maileinstellungen
SMTPFROM='von@e-mail.de' #Absender
SMTPTO='an@e-mail.de' #Empfänger
SMTPSERVER='server.anbieter.de' #SMTP-Server
SMTPUSER='user' #Benutzer
SMTPPASS='pass' #Passwort
# CONFIG - END
SUBJECT="Dyndns Login"
MESSAGE="Dyndns Login wurde vom `hostname -f` erfolgreich durchgeführt!"

SUBJECT1="Dyndns failed"
MESSAGE1="ACHTUNG !!!! Dyndns Login wurde vom `hostname -f` nicht durchgeführt!"



# Main
MULTIFORM=`curl -s -A $USERAGENT -c $COOKIE https://account.dyn.com \
  | awk -F\' '/multiform/{ print $6 }'`
curl -s --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
  --data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
  https://account.dyn.com/

if grep -E "Welcome" $OUTPUT > /dev/null 2>&1
then
  echo Login successful
  date >> /var/log/dyndns.log 
   sendEmail -f $SMTPFROM -t $SMTPTO -u $SUBJECT -m $MESSAGE -s $SMTPSERVER -xu "$SMTPUSER" -xp "$SMTPPASS"
  
else
     echo Login failed
    sendEmail -f $SMTPFROM -t $SMTPTO -u $SUBJECT1 -m $MESSAGE1 -s $SMTPSERVER -xu "$SMTPUSER" -xp "$SMTPPASS"
     FAILED="true"
fi

rm $COOKIE
rm $OUTPUT

if [ "$FAILED" = "true" ]
then
  exit 1
fi

# EOF
Das funktioniert einwandfrei. :P

@ Heiko
p.s. Den Tipp mit einer eigens für diesen Zweck eingerichteten E-Mail Adresse würde ich sehr ernst nehmen.
Meinst du wirklich das ist so tragisch ?? Ich habe den Igel hinter meiner Fritzbox als Oscam-Server laufen, evtl. sollte ich noch den Zugriff über "authorized Keys" einrichten. Meinst du nicht das das sicher genug ist??

Gruß
Rooki

Benutzeravatar
Heiko M.
Beiträge: 216
Registriert: 17.01.2005 12:31:34
Lizenz eigener Beiträge: MIT Lizenz

Re: per Script e-mail senden

Beitrag von Heiko M. » 11.07.2013 15:54:42

wanne hat geschrieben:
Heiko M. hat geschrieben:Wenn du die Mail ins Netz (e-mail@gmx.de) senden möchtest, wirds etwas komplizierter, da Mailprovider in der Regel keine Mail von dynamischen IP-Adressen annehmen.
Ach wie gut das niemand weiß, dass ich ne dynamische IP hab.
Also ich kann an google schicken. Bin aber auch nicht bei einem der Standadprovider.
Sorry für die Verwirrung. Bin davon ausgegeangen, dass das System (also z.B. roo@host) eine Nachricht direkt an e-mail@gmx.de senden soll. :oops:
In diesem Fall wäre es so, dass die Mail von gmx nicht angenommen wird, da sie von einer dynamischen IP stammt.
rooki hat geschrieben:Meinst du wirklich das ist so tragisch ?? Ich habe den Igel hinter meiner Fritzbox als Oscam-Server laufen, evtl. sollte ich noch den Zugriff über "authorized Keys" einrichten. Meinst du nicht das das sicher genug ist??
Ich persönlich hätte Bauchschmerzen, wenn mein Passwort zum E-Mail Account auf nem Rechner im Klartext rumliegt. Letzendlich musst du das selbst entscheiden. Würde die Dateirechte auf jeden Fall ordentlich eingeschränken (rwx------).

Gruß
Heiko
Debian Testing (amd64) + KDE

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 12.07.2013 05:59:15

Hi,
also ich hab mir jetzt doch noch einen Account zugelegt. :D Sicher ist sicher. Könnte man hier nicht noch per script eine e-mail benachrichtigung einfügen sobald sich jemand einloggt?

wie würde sowas aussehen ??

Grüße
Rooki

wanne
Moderator
Beiträge: 7550
Registriert: 24.05.2010 12:39:42

Re: per Script e-mail senden

Beitrag von wanne » 12.07.2013 13:38:49

Heiko M. hat geschrieben:Sorry für die Verwirrung. Bin davon ausgegeangen, dass das System (also z.B. roo@host) eine Nachricht direkt an e-mail@gmx.de senden soll. :oops:
In diesem Fall wäre es so, dass die Mail von gmx nicht angenommen wird, da sie von einer dynamischen IP stammt.
Also wie gesagt Google nimmt an. Wie das gmx handhabt weiß ich nicht. Die können ach keine Standardkonformen E-Mails verschicken. Da wundert es eigentlich nicht, wenn sie die auch nicht annehmen können.
rot: Moderator wanne spricht, default: User wanne spricht.

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 12.07.2013 19:24:18

Hi,

ich habe jetzt mal ein script gebastelt. Bei dem jedem Login abweichend meiner IP vom Arbeitsplatzrechner eine e-mail gesendet wird. Besser gesagt es werden dann bis zu 26 mails gesendet. :(

Könnte sich das einer der cracks mal anschauen. Ich hätte wie gesagt gerne eine Mail, diese am besten noch mit IP vom "Versuchenden".

Hat da jemand einen Tip für mich.?

Hier das script wie es momentan aussieht:

Code: Alles auswählen

# EMail verschicken [0/1] (Vorraussetzung: apt-get install sendEmail)
CRASHMAIL="1" #0=Aus, 1=Ein
# 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

SUBJECT="Login am Server"
MESSAGE="Es wurde ein Login getätigt `hostname -f` !"

for ip in $(grep sshd /var/log/auth.log* | grep root | grep -i accepted | awk '{print $11}'); do
   if [ "$ip" != "192.001.001.1" ]; then
      sendEmail -f $SMTPFROM -t $SMTPTO -u $SUBJECT -m $MESSAGE -s $SMTPSERVER -xu "$SMTPUSER" -xp "$SMTPPASS"
   fi
done


Benutzeravatar
Heiko M.
Beiträge: 216
Registriert: 17.01.2005 12:31:34
Lizenz eigener Beiträge: MIT Lizenz

Re: per Script e-mail senden

Beitrag von Heiko M. » 15.07.2013 16:18:09

wanne hat geschrieben:Wie das gmx handhabt weiß ich nicht. Die können ach keine Standardkonformen E-Mails verschicken. Da wundert es eigentlich nicht, wenn sie die auch nicht annehmen können.
Hab es eben mal getestet, gmx.de und web.de nehmen Mails von dynamischen IP´s nicht an.
rooki hat geschrieben:ich habe jetzt mal ein script gebastelt. Bei dem jedem Login abweichend meiner IP vom Arbeitsplatzrechner eine e-mail gesendet wird. Besser gesagt es werden dann bis zu 26 mails gesendet. :(

Code: Alles auswählen

for ip in $(grep sshd /var/log/auth.log* | grep root | grep -i accepted | awk '{print $11}'); do
   if [ "$ip" != "192.001.001.1" ]; then
      sendEmail -f $SMTPFROM -t $SMTPTO -u $SUBJECT -m $MESSAGE -s $SMTPSERVER -xu "$SMTPUSER" -xp "$SMTPPASS"
   fi
done
Dein Script sendet für jeden Eintrag, den es in sämtlichen auth.log* Dateien findet eine Mail. Daraus schließe ich, dass sich jemand (hoffentlich du) 26 mal mit einer von 192.001.001.1 abweichenden IP eingeloggt hat. Du müsstest die Datei auth.log mit deinem Script auf Änderungen überwachen. 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.

Mal ganz generell:
  • Wird der ssh-port (22) durch die Fritzbox an deinen Srever weiter gereicht? Ist dies notwendig?
    Wenn ja, dann öffne auf der Fritzbox einen anderen (hohen ungenutzten) Port oder installier Debianfail2ban.
  • Benutzt du Authentifizierung über Public-Keys?
    Würde ich bei einem von außen erreichbaren Server auf jeden Fall machen.
  • Verbiete root-logins via ssh.

Gruß
Heiko
Debian Testing (amd64) + KDE

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: per Script e-mail senden

Beitrag von Cae » 15.07.2013 17:11:27

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 Debianlogtail. 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
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 17.07.2013 16:59:34

Hi,

@Heiko
Mal ganz generell:

Wird der ssh-port (22) durch die Fritzbox an deinen Srever weiter gereicht? Ist dies notwendig?
Wenn ja, dann öffne auf der Fritzbox einen anderen (hohen ungenutzten) Port oder installier Debianfail2ban.
Benutzt du Authentifizierung über Public-Keys?
Würde ich bei einem von außen erreichbaren Server auf jeden Fall machen.
Verbiete root-logins via ssh.
Also ich habe jetzt Authentifizierung über Public-Keys installiert. der Port 22 ist nicht offen. Wie funktioniert das mit dem Verbot der root-logins ? bzw. wäre das noch nötig.?

Grüße Rooki

Benutzeravatar
Heiko M.
Beiträge: 216
Registriert: 17.01.2005 12:31:34
Lizenz eigener Beiträge: MIT Lizenz

Re: per Script e-mail senden

Beitrag von Heiko M. » 17.07.2013 18:15:35

rooki hat geschrieben:Wie funktioniert das mit dem Verbot der root-logins ? bzw. wäre das noch nötig.?
Wenn der ssh-Server von außen nicht erreichbar ist und du den Personen in deinem lokalen Netzwerk vertraust, dann ist es nicht notwendig.

Der Vollständigkeit halber: Root-Logins kannst du in der Konfigurationsdatei /et/ssh/sshd_config verbieten. Suche dazu den Abschnitt Authentication: und setzte den Wert von PermitRootLogin auf no.

Code: Alles auswählen

# Authentication:
...
PermitRootLogin no
...
Gruß
Heiko
Debian Testing (amd64) + KDE

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: per Script e-mail senden

Beitrag von Cae » 19.07.2013 22:46:46

In dem (off-topic-)Zusammenhang empfehle ich

Code: Alles auswählen

PermitRootLogin forced-commands-only
-- dann kann man naemlich in der ~/.ssh/authorized_keys Keys mit command="rsync..." hinterlegen, was fuer Backups ziemlich praktisch ist. Steht auch in der Doku:
sshd_config(5) hat geschrieben:

Code: Alles auswählen

             If this option is set to “forced-commands-only”, root login with
             public key authentication will be allowed, but only if the
             command option has been specified (which may be useful for taking
             remote backups even if root login is normally not allowed).  All
             other authentication methods are disabled for root.
Trotzdem kann ein kompromittierter Key "nur" backuppen und sonst nichts auf der Maschine aendern [1].

Gruss Cae

[1] wobei ein ssh_host_*_key oder eine /etc/shadow in Angreiferhand nicht unbedingt toll ist
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 29.09.2013 09:01:05

Hi,
habe das folgende script für die automatische email-Benachrichtigung im Einsatz.

Das problem: Ich bekomme hier Angezeigt, das mein "Homeserver" sich eingeloggt hat. (hostname -f)

Ich möcht e aber natürlich sehen wer sich eingeloggt hat (Benutzername) z.B.root oder andere. Wie muss man das umschreiben??

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
Gruß Rooki

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: per Script e-mail senden

Beitrag von Cae » 29.09.2013 20:47:08

Code: Alles auswählen

-| awk '/^.*sshd\[[0-9]+\]: Accepted.*for root.*$/ {
-   if ("'$WHITE'" != $11) print $11;
+| awk '/sshd\[[0-9]+\]: Accepted.*for/ {
+   if ("'$WHITE'" != $11) print $11" "$9;
Damit waere es auf alle Benutzer erweitert, und nicht auf nur-root-Logins begrenzt.

Aber ich sehe gerade beim Schreiben, dass deine Fragestellung sich auch anders interpretieren laesst: "Welcher User vom Quellsystem hat sich eingeloggt?". Das laesst sich wiederum nicht ohne Aufwand feststellen. Der SSHd sieht nur "da kommt 'ne Verbindung von Host foo Port bar"; man muesste per iptables -m owner auf dem Quellsystem feststellen, wer diesen Port verwendet hat. Rein Server-seitig kann man das aber nicht erkennen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rooki
Beiträge: 76
Registriert: 10.07.2013 07:13:19

Re: per Script e-mail senden

Beitrag von rooki » 30.09.2013 12:05:38

Hi Cae,

habe das gefunden: "Eintrag in .bashrc" des jeweiligen users

Code: Alles auswählen

echo -e "USER: $USER\nSSH_CONNECTION: $SSH_CONNECTION" | mail ziel@domain.text -s "SSH Login" -a "From: Absender <absender@domain.text>"
allerdings bekomme ich mit "mail" keine email, müsste man das anpassen auf sendemail oder warum ist das so? Irgendwo müssen ja auch die parameter hin:

Code: Alles auswählen

SMTPFROM='von@e-mail.de' #Absender
SMTPTO='an@e-mail.de' #Empfänger
SMTPSERVER='server.anbieter.de' #SMTP-Server
SMTPUSER='user' #Benutzer
SMTPPASS='pass' #Passwort
Gruß Rooki

Antworten