Skip to main content

Absicherung eines neuen Servers

Updaten und Upgraden des Systems

Aktualisieren der Paketquellen mit dem Befehl:

sudo apt update

Ausführen von Upgrades der installierten Pakete mit dem Befehl:

sudo apt upgrade

Beide Befehle lassen sich auch mit folgendem Befehl kombinieren:

sudo apt update && sudo apt upgrade -y

Optional - Durchführen eines Distribution-Upgrades: Falls verfügbar, kann auch ein Upgrade der kompletten Ubuntu-Installation auf eine neuere Version durchgeführt werden:

sudo apt dist-upgrade

Installation von automatischen Sicherheitsupdates

Mit dem Tool unattended-upgrades können automatisch Sicherheits- sowie andere essenzielle Updates vom System installiert werden. In der Regel ist dies automatisch installiert, wenn nicht, kann es mit folgendem Befehl installiert werden:

sudo apt update
sudo apt install unattended-upgrades

In der Grundkonfiguration werden Bugfixes und Sicherheitsupdates automatisch installiert, allerdings das System nicht neu gestartet, wenn dies notwendig ist. Für eine ausführlichere Konfiguration empfehle ich den Artikel von DigitalOcean zum Thema.

Hinzufügen eines neuen Benutzers

Standardmäßig kommt ein Cloud-Server mit einem Root-Login. Dieser wurde je nach Auswahl bei der Einrichtung mit einem Passwort versehen oder bereits mit einem SSH-Key für den Login ausgestattet. Egal was hier zutrifft, es empfiehlt sich den Root-User nicht zu benutzen. Dafür muss mit folgendem Befehl erst mal ein neuer User erstellt werden:

useradd <username>

Dabei werden nach grundlegenden Informationen wie Passwort, voller Name und anderen Informationen gefragt. Um am Ende auch sudo-Befehle ausführen zu können, muss dieser Benutzer noch der sudo-Gruppe hinzugefügt werden. Das kann mit folgendem Befehl erreicht werden:

usermod -aG sudo <username>

Dieser Benutzer hat allerdings noch keinen SSH-Key für den Login hinterlegt. Um diesen hinzuzufügen, gibt es mehrere Optionen. Wenn der Root-Benutzer bereits einen hat und dieser auch für den neuen Benutzer genutzt werden soll, kann das Key mit folgenden Befehlen kopiert und mit den richtigen Berechtigungen versehen werden. Das muss mit dem neuen Benutzer ausgeführt werden.

Erstellen des .ssh-Ordners für den Key

mkdir /home/$USER/.ssh

Das Verzeichnis nur für den Benutzer ausführbar machen

chmod 700 /home/$USER/.ssh

Kopieren der authorized_keys-Datei welche den öffentlichen Schlüssel enthält

sudo cp /root/.ssh/authorized_keys /home/$USER/.ssh/authorized_keys

Alles im .ssh-Verzeichnis zum Eigentum des Benutzers machen

sudo chown -R $USER:$USER /home/$USER/.ssh

Die Datei nur für den Benutzer lesbar machen

sudo chmod 600 /home/$USER/.ssh/authorized_keys

Eine andere Möglichkeit für das Übertragen des SSH-Keys ist das Kopieren dieses von einem System, welches bereits einen generiert hat. Das kann mit folgendem Befehl erreicht werden. Voraussetzung ist allerdings, dass der SSH-Login mit dem Passwort für den neuen Benutzer noch nicht deaktiviert wurde:

ssh-copy-id <username>@<hostname.example.com>

Abhärten vom SSH-Server

fail2ban für SSH einrichten