Post 172
Unix

Root-Login per E-Mail überwachen unter Linux

Wer einen Linux-Server betreibt, sollte jeden Root-Login mitbekommen – ob er selbst dahintersteckt oder ein unerwünschter Gast. Eine einfache Konfiguration in der .bashrc sorgt dafür, dass bei jedem Root-Login automatisch eine E-Mail-Benachrichtigung verschickt wird.

Warum Root-Login-Alerts?

Der Root-Account ist das mächtigste Konto auf einem Linux-System. Jede unautorisierte Root-Anmeldung ist ein potenzieller Sicherheitsvorfall. Mit E-Mail-Alerts bekommt man sofort Bescheid, wenn jemand – oder etwas – Root-Zugriff erlangt. Das gilt besonders für Server, die via SSH erreichbar sind.

Schritt 1: Postfix installieren

Zum Versenden von E-Mails auf der Kommandozeile braucht man einen MTA (Mail Transfer Agent). Postfix ist die empfohlene Wahl – zuverlässig, weit verbreitet und gut konfigurierbar.

apt-get update
apt-get install postfix mailutils -y

Während der Installation erscheint ein Konfigurationsdialog. Für die meisten Anwendungsfälle ist „Internet Site“ die richtige Wahl. Als Systemmail-Name gibt man den Hostnamen des Servers ein, z. B. server.domain.de. Postfix konfiguriert sich dann als lokaler MTA, der E-Mails direkt zustellt.

Schritt 2: Alert in /root/.bashrc eintragen

Die .bashrc wird bei jedem interaktiven Bash-Login ausgeführt. Wenn man sich als Root einloggt und eine Bash-Session startet, wird die /root/.bashrc gelesen. Dort trägt man den Alert-Befehl ein:

echo 'echo "ALERT: Root Login from $(who) on $(date)" | mail -s "Root Login Alert: $(hostname)" [email protected]' >> /root/.bashrc

Oder man öffnet die Datei direkt mit einem Editor und fügt am Ende ein:

# Root Login Alert
echo "ALERT: Root Login from $(who) on $(date)" | mail -s "Root Login Alert: $(hostname)" [email protected]

Schritt 3: Konfiguration testen

Nach dem Speichern der .bashrc entweder neu einloggen oder die Datei manuell laden:

source /root/.bashrc

Wenn alles korrekt eingerichtet ist, sollte kurz darauf eine E-Mail im Postfach von [email protected] ankommen. Der Mail-Log zeigt, ob der Versand erfolgreich war:

tail -f /var/log/mail.log

Erweiterte Variante mit mehr Details

Eine ausführlichere Version des Alerts mit IP-Adresse und letzten Login-Versuchen:

# Erweiterter Root Login Alert
ALERT_EMAIL="[email protected]"
HOSTNAME=$(hostname -f)
IP=$(who am i | awk '{print $5}' | tr -d '()')
DATE=$(date)

mail -s "Root Login auf $HOSTNAME" $ALERT_EMAIL << EOF
SICHERHEITSWARNUNG: Root-Login erkannt

Zeitpunkt: $DATE
Server: $HOSTNAME
Verbindung von: $IP

Aktive Sessions:
$(who)

Letzte Logins:
$(last | head -10)
EOF

Alternativen und Ergänzungen

PAM-basierte Alerts: Für eine noch zuverlässigere Lösung kann man PAM (Pluggable Authentication Modules) nutzen. PAM-Alerts funktionieren auch dann, wenn der User eine andere Shell als Bash verwendet oder die .bashrc nicht geladen wird.

fail2ban: Ergänzend zu E-Mail-Alerts sollte man fail2ban installieren, das wiederholte fehlgeschlagene SSH-Logins automatisch blockiert.

SSH-Key only: Die sicherste Maßnahme bleibt, Passwort-Logins via SSH komplett zu deaktivieren und nur SSH-Keys zu erlauben. In /etc/ssh/sshd_config setzt man PasswordAuthentication no.

Fazit

Der Root-Login-Alert ist eine einfache, aber wirkungsvolle Sicherheitsmaßnahme. Der Aufwand für die Einrichtung beträgt wenige Minuten – der Nutzen bei einem tatsächlichen Sicherheitsvorfall ist immens. In Kombination mit SSH-Key-only-Authentifizierung und fail2ban entsteht eine solide erste Verteidigungslinie für jeden Linux-Server.