Mail bei SSH Login – Server Sicherheit

Als zusätzlicher Faktor bei der Absicherung meiner Server nutze ich ein kleines Script dass beim Login ausgeführt wird. Sobald jemand eine Verbindung zum Server herstellt, wird automatisch ein Script aufgerufen dass mir eine Mail schickt.

Der Versand der Mail erfolgt über SMPT, also über einen externen Server, in meinem Fall Google. Dafür installiert man ssmtp

apt install ssmtp -y

Danach brauchen wir eine Konfigurationsdatei, die liegt unter /etc/ssmtp/ssmtp.conf mit folgendem Inhalt

#/etc/ssmtp/ssmtp.conf
root=absender@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=XXXXX@gmail.com
AuthPass=XXXXXX
FromLineOverride=YES

Damit die Mail beim Login verschickt wird, editieren wir die Datei: /etc/pam.d/sshd und fügen folgendes ein:
session optional pam_exec.so /srv/mailatlogin.sh

Das Scipt legen wir natürlich noch an:
nano /srv/mailatlogin.sh

#!/bin/sh
date=$(date '+%d.%m.%Y')
host=$(hostname)
ip=$(hostname -I)
{
echo To: Ampränger@gmail.com
echo From: Absender@gmail.com
echo Subject: "SERVER LOGIN! von $PAM_USER auf $host IP: $PAM_RHOST am $date"
echo
echo "Login auf $HOSTNAME
von IP: $ip
User: $PAM_USER
ggf. prüfen!"
} | ssmtp Empfänger@gmail.com

Dabei ist zu beachten dass ihr Empfänger und Absender ändern müsst. Empfänger auch noch einmal in der letzten Zeile.
Es wird dann eine Mail verschickt mit den Infos, welcher User sich auf welchem Rechner, mit der / den IP’s des Servers zu welcher Uhrzeit eingelogt wird.

Für die einfache Installation habe ich das ganze in ein Script gekippt. Einmal anpassen und dann bei neuen Installationen einmalig ausführen.

#!/bin/sh
## Install ssmtp and set config.
## add a line that calls a mailer script in /etc/pam.d/sshd at login
## add a script that send the mail.
## Feel free to edit this

## REMEMBER TO CHANGE Variables!
## PASSWORDS Mailadress and so on! 


apt install ssmtp -y
echo "root=absender@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=XXXXX@gmail.com
AuthPass=XXXXXX
FromLineOverride=YES
UseTLS=YES" > /etc/ssmtp/ssmtp.conf

echo "session optional pam_exec.so /srv/mailatlogin.sh" >> /etc/pam.d/sshd



echo "#!/bin/sh
date=\$(date '+%d.%m.%Y')
host=\$(uname -n)
ip=\$(hostname -I)
{
        echo To: Empfänger@gmail.com
        echo From: Absender@gmail.com
        echo Subject: \"SERVER LOGIN! von \$PAM_USER auf \$host IP: \$PAM_RHOST am \$date\"
        echo
        echo \"Login auf \$host \n von IP: \$ip \n User: \$PAM_USER \n ggf. prüfen!\"
} | ssmtp Empfänger@gmail.com" > /srv/mailatlogin.sh




chmod +x /srv/mailatlogin.sh