Linux Server absichern

Sollten andere Maßnahmen fehlgeschlagen sein, so könnte sich ein Unberechtigter Zugang zum Server verschafft haben.

Dies geschieht in der Regel per SSH. Um nun wenigstens eine Benachrichtigung zu erhalten wenn Sich jemand anmeldet, habe ich folgende Lösung genutzt:

wir installieren erst ein paar tools:

apt-get install mailutils dnsutils whois

dann legen wir unter /opt/shell-login.sh folgendes script an(dank an https://marvingaube.de/ssh-security-login-benachrichtigung/):

#!/bin/bash

echo "Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "Benutzer: $USER"
ip=$(echo $SSH_CLIENT | awk '{ print $1}' )
echo "IP: $ip"
echo "Hostname: $(dig +short -x $ip)"
echo "Whois: "
echo "$(whois $ip | grep OrgName) $(whois $ip | grep org-name) $(whois $ip | grep address:) $(whois $ip | grep person)"

Mein Problem ist nun, daß ich auf meinem Server ISPConfig laufen habe, welches alle X Minuten per Cron einen Job ausführt der einen Login triggert.

Um nun zu vermeiden, das solche Cronjobs eine Mail schicken, fürgen wir folgendes in /etc/profile.d/send-info.sh ein:

#!/bin/bash
if [[ -z "$USER" ]]
then
exit 0
fi
/opt/shell-login.sh | mailx -s "SSH Login auf IHR-HOSTNAME" deine-mailadresse@hierher.de

Wir fragen also zuerst ab, ob der User leer ist (bei Cronjobs wäre das so). Falls nicht, dann schicken wir den Inhalt, welchen /opt/shell-login.sh ermittelt hat an die angegebene Mailadresse.

Im Zweifel noch auf die Berechtigungen der .sh Scripte achten (755)