AUDIO JADAT Anleitungen Produktionen Noten Impressum
AUDIO JADAT Produktionen Noten Anleitungen Impressum
Header

Server Sicherheit

Motivation

Das im Internet nicht nur ganz normale Benutzer unterwegs sind, sondern auch Hacker die versuchen Sicherheitslücken zu identifizieren und in Systeme einzubrechen ist weitestgehend bekannt. Das aber auch einfache private Server ein Angriffsziel sind, wird in der Öffentlichkeit nicht immer so wahrgenommen. "Bei mir gibt es nichts zu holen", könnte man denken und liegt damit leider sehr falsch. Fakt ist: Ein geknackter Serverzugang ist i.d.R. ein Jackpot für einen Hacker und bei vielen Hackern ist Zerstörung nicht das oberste Ziel.
Der gehackte Server kann z.B. in ein Botnetz eingebunden werden, als Austauschplattform für illegale Inhalte dienen usw., ggf. ohne dass der Besitzer dies bemerkt. Im übelsten Fall erfährt er erst durch den Hoster oder die Strafverfolgung davon.
Anmerkung: Mir ist bewusst, dass es noch mehr und effektivere Methoden zur Absicherung gibt (zB. Public Key Authentifizierung usw.), jedoch soll sich dieser Artikel auf wirkungsvolle Methoden beschränken, die leicht umzusetzen sind und keine zusätzlichen Hürden einbauen.

Folgende Möglichkeiten sind unabhängig voneinander und können beliebig kombiniert werden.

Fehlgeschlagene Loginversuche ansehen

Wer möchte kann gerne in Echtzeit zuschauen wie verschiedene Zugriffsversuche auf den eigenen Server vorgenommen werden. Mit folgendem Befehl werden ssh-Logins live dargestellt:
sudo tail -F /var/log/auth.log

Die fehlgeschlagenen Loginversuche sind hierbei teils darauf zurückzuführen, dass andere sich versehentlich beim falschen Server einloggen wollen, da sie sich in der IP vertan haben. Die meisten dürften jedoch darauf zurückzuführen sein, dass Unbefugte versuchen sich Zugriff zu verschaffen. Teils per Hand, teils per automatisierter Software.
Aus diesem Grund gibt es auch diesen Artikel.

Möglichkeit 1:  Abwehr-Framework installieren: Fail2ban

Bei Beobachtung der fehlgeschlagenen Anmeldeversuche im Logfile fällt oft auf auf das gewisse IP-Adressen es immer wieder probieren. Theoretisch müssen diese Angreifer immer wieder andere Passwörter probieren um schlussendlich zufüllig das richtige zu erraten.
Beispiel: Bei automatisierten Versuchen alle 30Sekunden können pro Monat ca. 87600 Passwörter systematisch ausprobiert werden.
Um dies zu unterbinden gibt es die Software fail2ban, die bei einer vorgegebenen Anzahl fehlgeschlagener Versuche diese IP für eine vorgegebene Zeit grundsätzlich blockiert. Die Werte sind einstellbar, jedoch sind bereits die Standardwerte bereits gut gewählt.

Installation (Ubuntu / Ubuntu Server)

Zuerst wird ein aktualisieren der Paketinformationen mit folgendem Befehl empfohlen:
sudo apt-get update

Anschließend kann das entsprechende Paket in der Regel mit folgendem Befehl installiert werden:
sudo apt install fail2ban

Nach der Installation steht es vorkonfiguiert zur Verfügung. Aktuell wird nach 5 fehlgeschlagenen Logins die dementsprechende IP-Adresse für 10 Minuten blockiert, dies kann sich aber ggf. mit neueren Updates ändern.
Es ist möglich die Anzahl der Versuche, Blockierzeit usw. individuell zu verändern. Jedoch darf man nicht vergessen, dass man sich bei mehreren Fehlversuchen selbst auch aussperren kann.
Wer sich mehr für einstellbare Details interessiert wird unter folgendem Link fündig: wiki.ubuntuusers.de/fail2ban/

Möglichkeit 2:  SSH-Login für den User "root" verbieten

Unter Linux Systemen wie zB. Ubuntu Server ist in der Regel ein User mit dem Namen "root" vorhanden der alle Berechtigungen hat (vergleichbar mit einem Administrator-Konto unter Windows). Da der Benutzername "root" ist, müssen Angreifer in diesem Fall nur das richtige Passwort erraten und haben dann sogar alle(!) Rechte.
Es ist sinnvoll den SSH-Login für diesen Benutzer zu deaktivieren, um das Angriffspotential zu veringern. Der Fernzugriff ist anschließend möglich, indem man sich auf einem anderen Benutzer per SSH anmeldet und mit folgendem Befehl zum User root wechselt:
su root

Bitte unbedingt darauf achten, dass ein weiterer Benutzer vorhanden ist, da man sich ansonsten versehentlich selbst aus dem System aussperrt. In der Regel sollte man auch nie den root Nutzer zum arbeiten nehmen, sondern lieber einen weiteren Benutzer anlegen.

Konfiguration (Ubuntu / Ubuntu Server)

Öffnen Sie auf dem Server folgende Datei: /etc/ssh/sshd_config

Dies kann man zB. mit dem Editor nano oder einem anderen wie folgt tun:
sudo nano /etc/ssh/sshd_config

Sollte dies nicht möglich sein kann nano wie folgt installiert werden: sudo apt-get install nano Anschließend sucht man in der Datei (eher am Ende) nach dem Eintrag "PermitRootLogin" und ändert ein ggf. vorhandenes yes zu no, ggf. mehrfach, damit es wie folgt aussieht:
PermitRootLogin no


Anschließend wird der ssh service neu gestartet und die Einstellung damit aktiv:
sudo service ssh restart