Unter Linux lassen sich viele Sachen automatisieren um Zeit zu sparen und nicht jeden Schritt etliche Male manuell durchführen zu müssen. Bei gewissen Themen ist es jedoch hilfreich eine Information zu erhalten. Dies kann z.B. sein, wenn eine Anmeldung auf einem „sensiblen“ System stattfindet oder sich Fehler auf einer überwachten Festplatte abzeichnen. Eine gute Möglichkeit ist hier der automatisierte Versand von Emails. Dazu wird ein MTA (Mail Transfer Agent) benötigt, welcher die Aufgabe im Hintergrund erledigt. MTAs gibt es unter Linux relativ viele, die alle Ihre Aufgabe erfüllen. Ich habe mich für den Einsatz von „ssmtp“ entschieden, da es ein sehr leichtgewichtiger MTA ist, der nicht viel Konfiguration benötigt um zu funktionieren. Für den Einsatz eines MTAs empfiehlt sich im Optimalfall ein dediziertes Postfach, welches nur hierfür verwendet wird. Sollte das System einmal kompromittiert werden und die Postfachinformationen gehen verloren, dürfte der Schaden geringer sein, als wenn es das private Postfach gewesen wäre.
Installation unter Debian:
sudo apt-get install ssmtp
Installation unter Arch:
sudo pacman -S ssmtp
Die Konfiguration wird in der Datei „/etc/ssmtp/ssmtp.conf“ vorgenommen.
sudo nano /etc/ssmtp/ssmtp.conf
Im Folgenden werden die benötigten Beispielkonfigurationen gezeigt. Die Parameter „root, mailhub, hostname, AuthUser und AuthPass“ müssen natürlich an die eigenen Gegebenheiten angepasst werden.
# # /etc/ssmtp.conf -- a config file for sSMTP sendmail. # root=alerts@yourdomain.com mailhub=smtp.yourdomain.com:587 hostname=localhost UseTLS=Yes UseSTARTTLS=Yes AuthUser=mailuser AuthPass=password FromLineOverride=yes
Optional lassen sich noch Alias Konfigurationen für Benutzeraccounts festlegen.
sudo nano /etc/ssmtp/revaliases
root:alerts@yourdomain.com:smtp.yourdomain.com:587 username:alerts@yourdomain.com:smtp.yourdomain.com:587
Die Konfiguration ist hiermit auch schon abgeschlossen. Der Erfolg der Einstellungen lässt sich direkt über ein Terminal testen.
echo Nur ein Test | mail -s "ssmtp Test Email" yourname@yourdomain.com
Um die MTA Konfiguration abzusichern, lässt sich eine eigene Applikationsgruppe anlegen. Danach haben ausschließlich Gruppenmitglieder Zugriff auf die Konfigurationsdateien.
sudo groupadd ssmtp
sudo chown :ssmtp /etc/ssmtp/ssmtp.conf
sudo chown :ssmtp /usr/bin/ssmtp
sudo chmod 640 /etc/ssmtp/ssmtp.conf
sudo chmod g+s /usr/bin/ssmtp
Nach der Konfiguration und Absicherung von ssmtp wird anhand eines Beispiels der Praxiseinsatz demonstriert. Für das Beispiel wird eine Email verschickt, sobald eine erfolgreiche Anmeldung über ssh stattfindet. Dazu muss ein kleines Shell Skript erzeugt werden, welches bei einer SSH Anmeldung ausgeführt wird.
sudo nano /usr/local/bin/ssh_sendmail.sh
Das Skript prüft, ob es sich um eine öffnende SSH Sitzung handelt und fügt noch Informationen wie Benutzernamen, IP und Datum in die Email ein.
#!/bin/sh mail="alerts@yourdomain.com" if [ "$PAM_TYPE" != "open_session" ] then exit 0 else echo "User $PAM_USER logged in on $HOSTNAME from $PAM_RHOST on `date`" | mail -s "$HOSTNAME ssh login" $mail fi exit 0
Für die Ausführung des Skripts wird PAM (Pluggable Authentication Modules) verwendet.
sudo nano /etc/pam.d/sshd
Hier wird die folgende Zeile eingefügt.
session optional pam_exec.so /usr/local/bin/ssh_sendmail.sh
Wird jetzt eine neue SSH Session auf dem Zielsystem ausgeführt wird automatisch eine Email mit den wichtigsten Informationen versendet. Weitere Beispiele wird es in zukünftigen Blogeinträgen geben. Für welche Einsatzfälle nutzt Ihr MTAs?