Die allermeisten unserer Linux-Server (VPS oder Dedizierte Server) werden "nackt" ausgeliefert, das heißt mit einer Konfiguration, die der einer manuellen Betriebssystem-Installation sehr ähnlich ist.

Standardmäßig enthält diese Konfiguration keine Elemente zur Sicherung des Servers. Es wird daher dringend empfohlen, diese wenigen Regeln zu befolgen, um die Sicherheit Ihres VPS zu erhöhen.

Dieser Artikel konzentriert sich bewusst auf den Schutz des Root-Zugangs Ihres VPS (dieser ist bei Auslieferung am verwundbarsten und wird am häufigsten angegriffen). Weitere Aspekte der Sicherheit Ihres VPS können ebenfalls untersucht werden (Einrichtung einer Firewall, regelmäßige Betriebssystem-Updates, regelmäßige Log-Analyse, Backups usw.).

1/ Root-Passwort verstärken#

Bei der Auslieferung wird Ihr VPS, falls Sie es nicht selbst festgelegt haben, mit einem zufälligen Root-Passwort von 6 Zeichen erstellt, um Ihnen den ersten Zugriff auf Ihren VPS zu erleichtern. Dieses Passwort ist trotz seiner Zufälligkeit sehr schwach (weniger als eine Stunde Brute Force nötig, um auf Ihren VPS zuzugreifen). Es ist daher zwingend erforderlich, es durch ein deutlich längeres Passwort zu ersetzen.

Unter den meisten Linux-Betriebssystemen genügt ein einziger Befehl (als Root): "passwd root"

Enter new UNIX password:
Retype new UNIX password:```

Das Tool fordert Sie auf, das neue Root-Passwort, das Sie einrichten möchten, zweimal einzugeben. Beim Eingeben der Passwörter wird nichts auf dem Bildschirm angezeigt: Das ist normal. Linux zeigt, anders als Windows, keine Sterne oder Zeichen an, wenn ein Passwort im Terminal eingegeben wird.

#### 2/ Brute-Force-Angriffe verhindern

Die IP-Adressen von Servern sind sehr häufig das Ziel von Brute-Force-Angriffen. Auch wenn ein gut gewähltes Passwort in der Regel unknackbar ist (das würde Jahrhunderte dauern), ist die Einrichtung eines Schutzes gegen Brute Force sehr einfach, dauert nur wenige Minuten und schützt Ihren VPS zusätzlich.

Der grundlegende Schutz gegen diese Angriffe wird über das Paket "fail2ban" bereitgestellt, das die Logs zahlreicher Dienste Ihres VPS überwachen und IP-Adressen, die häufig in diesen Logs auftauchen, temporär sperren kann.

Dieses Paket wird einfach mit dem Befehl "apt install fail2ban" installiert.

``` root@HelpDesk:~# apt install fail2ban
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
fail2ban python3-pyinotify python3-systemd whois
0 upgraded, 4 newly installed, 0 to remove and 64 not upgraded.
Need to get 424 kB of archives.
After this operation, 1967 kB of additional disk space will be used.
Do you want to continue? [Y/n]```

Nach der Installation von fail2ban müssen Sie es nur noch mit dem folgenden Befehl konfigurieren:

root@HelpDesk:~# printf "[ssh] \nenabled = true \nport = ssh \nfilter = sshd \naction = iptables[name=SSH, port=ssh, protocol=tcp] \nlogpath = /var/log/auth.log \nmaxretry = 3 \nbantime = 900\n" > /etc/fail2ban/jail.d/ssh.conf


Dadurch wird automatisch die Datei "/etc/fail2ban/jail.d/ssh.conf" mit folgendem Inhalt erstellt:

``` [ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 900```

Diese Datei legt fest, wo sich die Logs des SSH-Dienstes befinden (/var/log/auth.log) als Standard, die Anzahl der Versuche (maxretry=3), die eine IP im Erkennungszeitraum (standardmäßig 10 Minuten) durchführen darf, sowie die Dauer der Sperrung dieser IP vom Server (bantime = 900 → 15 Minuten).

Sie müssen nur noch den fail2ban-Dienst mit dem folgenden Befehl neu starten, und Ihr Brute-Force-Schutz ist aktiv.

``` root@HelpDesk:~# service fail2ban restart```

|| Sollten Sie versehentlich von Ihrem Server ausgesperrt werden und nicht die 15 Minuten warten wollen, können Sie die Liste der gesperrten IPs mit dem Befehl "iptables -F" leeren. Dafür müssen Sie über die in Ihrem Control Panel verfügbare Konsole auf die Shell Ihres VPS zugreifen und anschließend das Root-Passwort Ihres VPS eingeben.

### 3/ Standard-SSH-Port ändern

Das Ändern des Listening-Ports Ihres SSH-Servers schützt Sie nicht vor gezielten Angriffsversuchen (es ist sehr einfach herauszufinden, auf welchem Port Ihr SSH-Server tatsächlich lauscht), aber es hilft Ihnen, Bot-/Roboter-Angriffe zu vermeiden, die Server-IP-Adressen auf der Suche nach leicht zu hackenden Servern durchsuchen.

Für diese Änderung müssen Sie nur die Datei /etc/ssh/sshd_config bearbeiten und die Zeile **Port 22** durch **Port 8822** ersetzen. Sie können 8822 natürlich durch eine beliebige andere Portnummer ersetzen, die auf Ihrem Server nicht verwendet wird. Prüfen Sie außerdem, dass kein "#" vor dieser Zeile steht. Ist ein # vorhanden, entfernen Sie es, da die Zeile sonst nicht berücksichtigt wird.

Anschließend müssen Sie nur noch Ihren SSH-Dienst mit dem Befehl

root@HelpDesk:~# service ssh restart

neu starten.

||| Testen Sie nach jeder SSH-Änderung Ihre neue Konfiguration in einer neuen Konsole (lassen Sie die alte Konsole unbedingt geöffnet). Sollte Ihre Konfiguration aus irgendeinem Grund fehlerhaft sein und Sie sich nicht mehr verbinden können, ermöglicht Ihnen die noch geöffnete Sitzung in der ersten Konsole, Ihren Fehler zu beheben. Die Änderung der SSH-Konfiguration berührt keine bereits geöffneten Sitzungen. Selbst wenn Sie den SSH-Dienst stoppen, bleiben laufende Sitzungen geöffnet.