Einen Server unter Ubuntu 18.0 aufsetzen

Wenn man einen Server für seine eigene Website oder eine Datenbank betreiben möchte, hat man mehrere Möglichkeiten:

  • Einen kostenlosen Webspace mieten
  • Einen Affen die Arbeit machen lassen
  • Selber machen

Da die ersten beiden Punkte vermutlich überhaupt nicht die Zielgruppe dieses Artikels sind, machen wir uns keine weiteren Gedanken darüber. Stattdessen stürzen wir uns in die Arbeit!

Warum Ubuntu?

Warum nicht? Es gibt sicherlich viele andere Linux-Derivate da draußen, letztendlich ist es aber (bis auf Ausnahmen) vermutlich ein Glaubenskrieg und Ubuntu reicht für den Anfang perfekt aus.

Los gehts! Zunächst setze ich voraus, dass die Installation über ein Image schon vorhanden ist. Bei AWS ist das mit einem Klick erledigt.

Als allererstes: Über SSH einloggen (wie auch immer der Server beim Start konfiguriert ist) und das Root-Passwort ändern.

sudo passwd

Anschließend das ganze Ding einmal richtig schön updaten und auf den neuesten Stand bringen.

# Software-Releases laden
sudo apt update

# Pakete upgraden
sudo apt upgrade -y

# Etwaige überflüssige Header entfernen
sudo apt autoremove

Anschließend den Editor deiner Wahl installieren. Manche leben gefährlich und nutzen vim, ich mag eher die Luxusvariante:

sudo apt install mc -y

Dann: Hostname anpassen. Wie soll der Server heißen?

sudo mcedit /etc/hostname

Servername eintragen und speichern.

Im folgenden werden wir dem User root den Login-Zugang verweigern. Das hat zwei Gründe:

  1. “root” ist überall bekannt und wird gerne als Angriffsvektor benutzt.
  2. Siehe 1.

Also erstmal einen neuen User anlegen. Du kannst deinen eigenen Namen nehmen und musst nicht meinen benutzen, obwohl er sehr schön ist.

Achtung: Diese Schritte musst du nicht machen, wenn du bereits einen eigenen User bei der Installation von Ubuntu eingerichtet hast!

sudo adduser bjoern

Anschließend wird der User zum Chef befördert. Damit hat er dann die Möglichkeit, den Server komplett zu zerschießen.

sudo adduser bjoern sudo

Jetzt kümmern wir uns um den Login. Der normale Weg über Benutzername und Passwort ist soooooo 90er. Stattdessen nutzen wir die Private/Public-Key Methode.

Wenn du noch kein Keypaar hast, erkläre ich dir das in diesem Artikel.

Im Folgenden werden wir zum User wechseln und die Verzeichnisse erstellen.

su bjoern
cd ~
mkdir .ssh
chmod 700 .ssh
cd .ssh

Jetzt ist der Moment da, auf den alle so lange gewartet haben: Der Public-Key wird auf dem Server gespeichert. Hurra. Ab in die Datei:

mcedit authorized_keys

Und deinen Public-Key eintragen. Der beginnt mit ssh-rsa und sieht ungefähr so aus:

ssh-rsa TOTALVIELEZEICHEN bjoerns-public-key

Speichern und die Datei lesefähig machen:

chmod 644 authorized_keys

Ubuntu ist am Anfang so doof wie der Affe, der eigentlich den Server aufsetzen sollte. Also bearbeiten wir jetzt die Datei /etc/ssh/sshd_config und machen ein paar Anpassungen. Vieles davon ist schon vorhanden und muss einfach nur auskommentiert werden.

# Port ändern, wenn man kein VPN nutzt
Port 8029

# Root-Login verhindern
PermitRootLogin no

# Keyfile zum Einloggen nutzen
AuthorizedKeysFile %h/.ssh/authorized_keys

# Passwort-Login verbieten
PasswordAuthentication no

Anschließend den SSH Daemon neu starten:

sudo systemctl restart ssh

An dieser Stelle bietet es sich an, den Zugang zu testen. Deine aktuelle Session bleibt davon unbetroffen. Achtung: Stelle sicher, dass dein Key z.B. mit Pageant geladen ist!

Fertig. Wie du jetzt weitermachst, ist dir überlassen. Denke daran, den Server am besten über eine Firewall komplett unzugänglich zu machen und nur die Ports freizuschalten, die wirklich notwendig sind. Absolute Überprofis nutzen zusätzlich ein VPN.

Zusätzlicher Profitipp: Achte darauf, dass du selbst noch Zugang zum Server hast. Anders wäre doof.

Viel Spaß!

Björn Falszewski
3. Februar 2020
Disclaimer
Alle meine Artikel entstehen mit bestem Wissen und Gewissen, sind aber nicht perfekt und sollten immer nur als Ausgangspunkt für deine eigenen Recherchen bilden.

Sollte dir etwas Fehlerhaftes auffallen, freue ich mich über deine Nachricht!