Einen VPS zu besitzen ist toll, aber auch ein großes Risiko. Hier ein paar Tipps zur initialen Einrichtung eines neu erworbenen VPS. Und während ich natürlich keinerlei Garantie dafür übernehme dass der eingerichtete Server sicher ist, halte ich die Einstellungen zumindest für “reasonably secure”.

Folgende Dinge sollten vorbereitet werden:

Durchführung

Erster Schritt: Login als root und Systemaktualisierung ausführen.

ssh root@<server-ip> # Initiale Verbindung zum Server
apt update && apt upgrade -y # Paketquellen aktualisieren und alle Aktualisierungen einspielen.

Zweiter Schritt: Neuen Non-Root User anlegen

adduser username # Neuen User hinzufügen
usermod -aG sudo username # Neuem User sudo Rechte geben

Dritter Schritt: Basis-Konfiguration Firewall

ufw app list # Ist OpenSSH vorhanden?
ufw allow OpenSSH # Port 22 IPv4 und IPv6 automatisch freigeben
ufw enable # UFW aktivieren

Vierter Schritt SSH Konfiguration

ssh-copy-id -i ~/.ssh/<key> <user>@<host> # Kopieren eines oder mehrere PublicKeys auf den Server
# Für jeden Key wiederholen
# ----- Änderung der Config
sudo vim /etc/ssh/sshd_config # Änderung der Config
Port <port> # Port weg vom Standard ändern
PasswordAuthentication no # PasswortLogin deaktivieren
PubkeyAuthentication yes # Public Key Authentication explizit aktivieren
PermitRootLogin no # Login als Root generell nicht erlauben
AllowUsers <user> # Erlaubt explizit nur dem erstellen User den Zugriff auf den Server via SSH
# ---- SSH Service neu starten
sudo systemctl restart ssh
sudo ufw allow <port> # WICHTIG, der geänderte Port muss der Firewall hinzugefügt werden!!
sudo ufw limit <port>/tcp comment 'SSH port rate limit' # Rate Limit, um Missbrauch etwas vorzubeugen.

Optional: Name der Maschine ändern

sudo vim /etc/hostname # Hostnamen in neuen Namen ändern
sudo vim /etc/hosts # Alle Erwähnungen des alten Hostnamen durch den Neuen ersetzen.

Optional, aber cool: motd - Message of the Day ändern

sudo vim /etc/motd # Inhalt ändern

Befehl, um sich mit der auf diese Weise eingerichteten Maschine zu verbinden:

ssh <user>@<host> -p <post> -i ~/.ssh/<key>