In diesem Beitrag möchte ich einige Möglichkeiten zeigen um den eigenen Debian Server abzusichern.
Dabei ist es gleich, ob es sich um einen vServer oder einen dedizierter Rootserver handelt.
SSH Login absichern
Es empfiehlt sich bei Servern den Root-Login zu verbieten. Dies hat den einfach Hintergrund, dass die meisten potenziellen Eindringlinge zuerst den Root Benutzer für einen Login versuchen werden.
Außerdem hat der Root Benutzer alle Berechtigungen auf dem Server. D.h. sobald ein Eindringling Zugang zum Root Account hat, hat er die volle Kontrolle über den Server.
Um das zu ändern empfiehlt es sich den Root-Login zu verbieten und sich mit einem anderen Benutzer per SSH einzuloggen.
Dies tut man in folgenden Schritten:
Um den SSH Port zu ändern muss ebenfalls eine Einstellung in der Datei /etc/ssh/sshd_config verändert werden.
Die dafür verantwortliche Zeile lautet:
Dort kann der Port von 22 auf einen beliebigen anderen Port geändert werden. Allerdings sollte darauf geachtet werden, dass der Port nicht von einem anderen Dienst belegt wird.
Um zu prüfen, ob ein Port derzeit benutzt wird kann der folgende Befehl verwendet werden:
Nun wird je nach Angabe von <Port> entweder eine Ausgabe erscheinen, oder es kommt keine Ausgabe.
Wenn keine Ausgabe zurückkommt wird der Port momentan von keinem Prozess genutzt.
Nach dem ändern des Ports in der Datei muss der SSH Dienst natürlich noch neugestartet werden. Dies geht mit
Nun ist der Port geändert.
SSH Bruteforce verhindern (Fail2Ban)
Fail2Ban ist ein Dienst der nach einer definierten Anzahl von fehlgeschlagenen Login Versuchen die IP Adresse des Einloggers für eine bestimmte Zahl blockiert.
Damit können recht einfach sogenannte Bruteforce Attacken verhindert werden.
Was ist eine Bruteforce Attacke?
Spoiler anzeigen
Der Dienst Fail2Ban lässt sich mit folgendem Befehl installieren:
Nun kann man noch einige Einstellungen tätigen.
Die Konfigurationsdateien von Fail2Ban liegen in dem Verzeichnis /etc/fail2ban/
Dort befindet sich eine jail.conf und eine jail.local Datei. Die jail.conf sollte aber nicht bearbeitet werden, da diese bei einem Update überschrieben wird.
Zur Konfigurierung nutzt man die jail.local Datei.
Wenn man mit der Konfiguration fertig ist, lässt sich der Dienst einfach mit
neustarten.
Ein etwas ausführlichere Anleitung dazu kann hier gefunden werden: forum.necror.de/index.php?thre…egen-bruteforce-schützen/
E-Mail bei SSH Login senden
Um immer Bescheid zu wissen, wenn sich ein Benutzer per SSH einloggt, kann recht simpel eine E-Mail Benachrichtigung eingerichtet werden.
Man erstellt dazu ein Skript. Beispielsweise die Datei /opt/ssh-mail-notification.sh
In diese Datei fügt man folgenden Inhalt ein:
Man kann die Nachricht natürlich nach Belieben anpassen.
Nun muss man noch einstellen, dass die Mails auch beim Login automatisch versendet werden.
Dazu trägt man in der Datei /etc/profile folgende Zeile ein:
Abschließend müssen noch die Dateiberechtigungen gesetzt werden:
System auf Rootkits prüfen (rkhunter)
Das Tool rkhunter prüft ein System auf die bekanntesten Rootkits und verdächtige Dateien.
Installieren kann man rkhunter mit:
Nachfolgend kann eine Überprüfung mit folgendem Befehl ausgeführt werden:
In der Konfigurationsdatei /etc/rkhunter.conf kann zudem noch eine E-Mail Adresse angegeben werden, die bei Warnungen benachrichtigt wird.
Nun kann man das Prüfen durch rkhunter auch in einen Cronjob implementieren - bei Warnungen wird die E-Mail automatisch gesendet.
Auf den Cronjob möchte ich an dieser Stelle nicht weiter eingehen, allerdings hier der Befehl um einen Crontab zu öffnen:
Ich hoffe ich konnte mit dieser Anleitung dem Ein oder Anderen weiterhelfen und für ein klein wenig mehr Sicherheit im Netz sorgen.
Dabei ist es gleich, ob es sich um einen vServer oder einen dedizierter Rootserver handelt.
SSH Login absichern
Es empfiehlt sich bei Servern den Root-Login zu verbieten. Dies hat den einfach Hintergrund, dass die meisten potenziellen Eindringlinge zuerst den Root Benutzer für einen Login versuchen werden.
Außerdem hat der Root Benutzer alle Berechtigungen auf dem Server. D.h. sobald ein Eindringling Zugang zum Root Account hat, hat er die volle Kontrolle über den Server.
Um das zu ändern empfiehlt es sich den Root-Login zu verbieten und sich mit einem anderen Benutzer per SSH einzuloggen.
Dies tut man in folgenden Schritten:
- Einen neuen Benutzer anlegen, der sich nachher per SSH einloggen soll:
adduser SSHBenutzer
Anstelle von "SSHBenutzer" kann ein beliebiger Name verwendet werden. Als zusätzliche Sicherheit empfiehlt es sich aber einen Namen zu nutzen, der nicht zu leicht zu erraten ist.
Namen wie "Benutzer", "User" oder der eigene Vorname sind dabei sicherheitstechnische No-Go's - In der Datei /etc/ssh/sshd_config die Zeile
PermitRootLogin yes
auf
PermitRootLogin no
abändern. - Den SSH Dienst neustarten:
service ssh restart
- Nun ist der SSH Login über den Root Benutzer deaktiviert. Du kannst dich aber nun mit dem in Schritt 1 erstellten Benutzer einloggen und anschließend mit dem Befehlt
su root
unter Eingabe des Root-Passworts zum Root Benutzer wechseln.
Um den SSH Port zu ändern muss ebenfalls eine Einstellung in der Datei /etc/ssh/sshd_config verändert werden.
Die dafür verantwortliche Zeile lautet:
Port 22
Dort kann der Port von 22 auf einen beliebigen anderen Port geändert werden. Allerdings sollte darauf geachtet werden, dass der Port nicht von einem anderen Dienst belegt wird.
Um zu prüfen, ob ein Port derzeit benutzt wird kann der folgende Befehl verwendet werden:
netstat -an | grep ":<Port> .* LISTEN"
Nun wird je nach Angabe von <Port> entweder eine Ausgabe erscheinen, oder es kommt keine Ausgabe.
Wenn keine Ausgabe zurückkommt wird der Port momentan von keinem Prozess genutzt.
Nach dem ändern des Ports in der Datei muss der SSH Dienst natürlich noch neugestartet werden. Dies geht mit
service ssh restart
Nun ist der Port geändert.
SSH Bruteforce verhindern (Fail2Ban)
Fail2Ban ist ein Dienst der nach einer definierten Anzahl von fehlgeschlagenen Login Versuchen die IP Adresse des Einloggers für eine bestimmte Zahl blockiert.
Damit können recht einfach sogenannte Bruteforce Attacken verhindert werden.
Was ist eine Bruteforce Attacke?
Eine Bruteforce Attack probiert in einem Schema verschiedenste Passwort Kombinationen aus. Bei einem Angriff wird dies mit Hilfe von Skripts und mehreren Servern/Computern probiert. Dabei können mehrere Kombinationen pro Sekunde ausprobiert werden.
Der Dienst Fail2Ban lässt sich mit folgendem Befehl installieren:
apt-get install fail2ban
Nun kann man noch einige Einstellungen tätigen.
Die Konfigurationsdateien von Fail2Ban liegen in dem Verzeichnis /etc/fail2ban/
Dort befindet sich eine jail.conf und eine jail.local Datei. Die jail.conf sollte aber nicht bearbeitet werden, da diese bei einem Update überschrieben wird.
Zur Konfigurierung nutzt man die jail.local Datei.
Wenn man mit der Konfiguration fertig ist, lässt sich der Dienst einfach mit
service fail2ban restart
neustarten.
Ein etwas ausführlichere Anleitung dazu kann hier gefunden werden: forum.necror.de/index.php?thre…egen-bruteforce-schützen/
E-Mail bei SSH Login senden
Um immer Bescheid zu wissen, wenn sich ein Benutzer per SSH einloggt, kann recht simpel eine E-Mail Benachrichtigung eingerichtet werden.
Man erstellt dazu ein Skript. Beispielsweise die Datei /opt/ssh-mail-notification.sh
In diese Datei fügt man folgenden Inhalt ein:
Nun muss man noch einstellen, dass die Mails auch beim Login automatisch versendet werden.
Dazu trägt man in der Datei /etc/profile folgende Zeile ein:
/opt/ssh-mail-notification.sh | mailx -s "SS- Login auf HOSTNAME" deineEmail@Adresse.de
Abschließend müssen noch die Dateiberechtigungen gesetzt werden:
chmod 755 /opt/ssh-mail-notification.sh
System auf Rootkits prüfen (rkhunter)
Das Tool rkhunter prüft ein System auf die bekanntesten Rootkits und verdächtige Dateien.
Installieren kann man rkhunter mit:
apt-get install rkhunter
Nachfolgend kann eine Überprüfung mit folgendem Befehl ausgeführt werden:
rkhunter -c
In der Konfigurationsdatei /etc/rkhunter.conf kann zudem noch eine E-Mail Adresse angegeben werden, die bei Warnungen benachrichtigt wird.
MAIL-ON-WARNING="deineEmail@Adresse.de"
Nun kann man das Prüfen durch rkhunter auch in einen Cronjob implementieren - bei Warnungen wird die E-Mail automatisch gesendet.
Auf den Cronjob möchte ich an dieser Stelle nicht weiter eingehen, allerdings hier der Befehl um einen Crontab zu öffnen:
crontab -e
Ich hoffe ich konnte mit dieser Anleitung dem Ein oder Anderen weiterhelfen und für ein klein wenig mehr Sicherheit im Netz sorgen.