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.1
Falls 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.1
Schritt 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 holu
Nun 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 holu
Schritt 4 - Mit dem neuen User anmelden
Führen sie folgenden Befehl aus, um sich vom Server abzumelden:
root@10.0.0.1:~$ exit
Anschließend können wir uns mit unserem neu erstellten User am Server anmelden:
ssh holu@10.0.0.1
Da 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 list
Der Output sollte folgendermaßen aussehen:
Available applications:
OpenSSH
Schritt 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 OpenSSH
Schritt 5.3 - Aktivieren der Firewall
Nachdem wir SSH
zugelassen haben, können wir die Firewall endlich aktivieren:
holu@10.0.0.1:~$ sudo ufw enable
Als Nächstes checken wir den Status der Firewall, um zu überprüfen, ob auch alles korrekt gestartet ist:
holu@10.0.0.1:~$ ufw status
Status: 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.pub
mit dem Dateipfand zu dem öffentlichen Key - Ersetzen Sie
holu
mit dem neu erstellten User - Ersetzen Sie
10.0.0.1
mit 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_config
Schritt 7.1 - Deaktivieren der Passwort-Authentifizierung
Suchen Sie im File folgende Zeile:
PasswordAuthentication yes
Und ändern Sie die Zeile zu:
PasswordAuthentication no
Schritt 7.2 - Deaktivieren des root-Logins
Suchen Sie im File folgende Zeile:
PermitRootLogin yes
Und ändern Sie die Zeile zu:
PermitRootLogin no
Schritt 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 ssh
Schritt 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/config
Fü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-key
Nun 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.