Einführung
In diesem Tutorial erfahren Sie, wie man einen Ubuntu Server aufsetzt. Das beinhaltet das Erstellen eines "non-root"-Users (User ohne Admin-Berechtigungen), das Aktivieren von SSH, Deaktivieren des root-Users, und das Erstellen einer einfachen Firewall.
Schritt 1 - Einloggen am Server
Melden Sie sich als root-User über SSH an ihrem neu erstellten Ubuntu 20.04 Server an:
ssh root@10.0.0.1Falls Sie für die Anmeldung einen SSH-Key verwenden, welcher nicht ihr Standard-Key ist, müssen sie zusätzlich den Speicherort des Private Keys angeben.
ssh -i /path/to/ssh/key root@10.0.0.1Schritt 2 - Erstellen eines "non-root"-Users
Es wird empfohlen, für das Ausführen von alltäglichen Tasks keinen root-User zu benutzen. Darum erstellen wir jetzt einen "non-root"-User. In Zukunft werden wir uns nur noch mit diesem User am Server anmelden.
Geben Sie diesen Befehl ein, um einen neuen User hinzuzufügen:
root@10.0.0.1:~$ adduser holuNun werden Sie aufgefordert, verschiedene Informationen anzugeben.
Als Erstes müssen Sie ein starkes Passwort festlegen. Alle anderen Informationen können Sie entweder angeben oder durch das Drücken von ENTER überspringen.
Schritt 3 - Hinzufügen des neu erstellten Users in die sudo Gruppe
Unser neu erstellter User hat zum aktuellen Zeitpunkt nur normale Berechtigungen. Da wir allerdings beabsichtigen ihn als unseren Hauptuser zu verwenden, werden wir auch Admin-Privilegien benötigen. Damit wir in der Lage sind als "nicht-root"-User Befehle auszuführen, welche Admin-Privilegien benötigen, müssen wir den User der sudo-Gruppe hinzufügen.
Führen Sie dazu als root-User folgenden Befehl aus:
root@10.0.0.1:~$ usermod -aG sudo holuSchritt 4 - Mit dem neuen User anmelden
Führen sie folgenden Befehl aus, um sich vom Server abzumelden:
root@10.0.0.1:~$ exitAnschließend können wir uns mit unserem neu erstellten User am Server anmelden:
ssh holu@10.0.0.1Da wir nun nicht mehr als root-User am Server angemeldet sind, müssen wir sudo vor Befehle schreiben, wenn diese mit Admin-Privilegien ausgeführt werden sollen.
Schritt 5 - Aktivieren einer einfachen Firewall
Nachdem wir einen normalen Benutzer erstellt haben, möchten wir nun in einem nächsten Schritt die Firewall aktivieren. Dafür werden wir ufw verwenden.
Schritt 5.1 - Auflisten aller verfügbaren Applikationen
Als Erstes werden wir alle verfügbaren Applikationen auflisten, welche wir mit der Firewall registrieren können.
Sie können die verfügbaren Applikationen mit folgendem Befehl auflisten:
holu@10.0.0.1:~$ sudo ufw app listDer Output sollte folgendermaßen aussehen:
Available applications:
OpenSSHSchritt 5.2 - Zulassen von OpenSSH
Da wir beabsichtigen, auch zukünftig SSH zu verwenden, um uns an unserem Server anzumelden, müssen wir das ganze zuerst zulassen, bevor wir die Firewall aktivieren:
holu@10.0.0.1:~$ sudo ufw allow OpenSSHSchritt 5.3 - Aktivieren der Firewall
Nachdem wir SSH zugelassen haben, können wir die Firewall endlich aktivieren:
holu@10.0.0.1:~$ sudo ufw enableAls Nächstes checken wir den Status der Firewall, um zu überprüfen, ob auch alles korrekt gestartet ist:
holu@10.0.0.1:~$ ufw statusStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Die Firewall blockiert nun alle einkommenden Verbindungen, mit Ausnahme von SSH.
Falls wir eine neue Applikation auf dem Server installieren, müssen wir sie in der Firewall aktivieren. Ansonsten würden ihre Verbindungen automatisch von der Firewall blockiert werden.
Schritt 6 - Hinzufügen der SSH-Keys
Erstellen Sie auf Ihrem lokalen Computer ein SSH-Key-Paar (falls sie das nicht schon getan haben).
Kopieren Sie nun den SSH-Key von ihrem lokalen PC auf den Server mit der Hilfe von folgendem Befehl:
cat ~/.ssh/ssh_key.pub | ssh holu@10.0.0.1 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"- Ersetzen Sie
~/.ssh/ssh_key.pubmit dem Dateipfand zu dem öffentlichen Key - Ersetzen Sie
holumit dem neu erstellten User - Ersetzen Sie
10.0.0.1mit der IP-Adresse vom Server
Schritt 7 - Editieren der SSH-Konfiguration
Da wir nun SSH zum Einloggen verwenden, müssen wir nun noch die Anmeldung per Passwort und die Anmeldung mit dem root-User deaktivieren.
Dafür müssen wir das File /etc/ssh/sshd_config editieren:
holu@10.0.0.1:~$ sudo nano /etc/ssh/sshd_configSchritt 7.1 - Deaktivieren der Passwort-Authentifizierung
Suchen Sie im File folgende Zeile:
PasswordAuthentication yesUnd ändern Sie die Zeile zu:
PasswordAuthentication noSchritt 7.2 - Deaktivieren des root-Logins
Suchen Sie im File folgende Zeile:
PermitRootLogin yesUnd ändern Sie die Zeile zu:
PermitRootLogin noSchritt 7.3 - Neustart des sshd-Services
Speichern Sie das File und schließen sie anschließend den Editor.
Starten Sie den sshd-Service mit folgendem Befehl neu:
holu@10.0.0.1:~$ sudo systemctl restart sshSchritt 8 - Erstellen einer SSH-Konfigurationsdatei (optional)
Für Mac/Linux:
Erstellen Sie eine SSH-Konfigurationsdatei auf ihrem lokalen Computer. Dabei geben wir dem Computer an, auf dem es die SSH-Keys finden kann. Dadurch brauchen wir diese nicht jedes Mal mitgeben, wenn wir uns mit dem Server verbinden.
Führen Sie folgenden Befehl auf ihrem lokalen PC aus:
sudo nano ~/.ssh/configFügen Sie folgende Zeilen hinzu. Wobei Sie das Ganze an die IP-Adresse von ihrem Server und den Speicherort ihres SSH-Keys anpassen müssen.
HOST 10.0.0.1
IdentityFile ~/.ssh/SSH-keyNun wird es automatisch den richtigen SSH-Key finden, wenn Sie sich das nächste Mal an ihrem Server anmelden
Ergebnis
Wir haben nun einen simplen Ubuntu 20.04 Server aufgesetzt. Dafür haben wir einen "non-root"-User erstellt und die ufw Firewall aktiviert.