Erhöhen Sie direkt nach der Installation der Server-Version von Ubuntu 16.04 LTS die Sicherheit. Erstellen Sie einen alternativen Superuser mit eingeschränkten Rechten, machen Sie die Anmeldung durch eine öffentliche Schlüsselauthentifizierung sicherer und richten Sie eine Basis-Firewall ein. Mit der folgenden Schritt-für-Schritt-Anleitung schaffen Sie eine solide Basis für alle folgenden Aktionen.

Schritt 1: Root Login

Für den Server-Login müssen Sie die öffentliche IP-Adresse kennen. Zudem ist ein Passwort notwendig. Wenn Sie einen SSH-Schlüssel zur Identifizierung installiert haben, brauchen Sie den privaten Schlüssel für den Benutzer root. Loggen Sie sich per ssh als root ein:

ssh root@SERVER_IP_ADRESS

(Ersetzen Sie das großgeschriebene Wort durch die IP-Adresse Ihres Ubuntu-Servers.)

Akzeptieren Sie eine eventuelle Warnung über die Host-Authentizität und schließen Sie die Anmeldung unter Angabe des Passworts oder des privaten Schlüssels ab. Wenn es die erste Anmeldung am Server mit Passwort ist, fordert Ubuntu Sie zum Ändern des Passworts auf.

Über Root

Unter Linux ist der Root-Anwender der Betriebssystemadministrator mit maximalen Rechten. Eine regelmäßige Verwendung dieses Accounts wird nicht empfohlen. Zu schnell kann es zu ungewollten Systemänderungen kommen. Daher geht es im zweiten Schritt um die Einrichtung eines rechtlich eingeschränkten Benutzers – ideal für die alltägliche Arbeit.

Schritt 2: Einen neuen Benutzer einrichten

Sie sind als root angemeldet? Gut, dann ist es an der Zeit für einen weiteren Benutzer. Das folgende Beispiel erzeugt einen neuen Benutzer z.B. mit dem Namen peter. Wählen Sie Ihren gewünschten Benutzernamen:

adduser peter

Es folgen ein paar Fragen, beginnend mit dem gewünschten Passwort. Geben Sie ein starkes Passwort ein. Die zusätzlichen Informationen können Sie bei Bedarf überspringen. Drücken Sie die Enter-Taste.

Schritt 3: Root-Rechte

Jetzt gibt es einen neuen Benutzer mit regulären Rechten. Nichtsdestotrotz müssen Sie gelegentlich administrative Aufgaben mit den erforderlichen Rechten ausführen.

Selbstverständlich können Sie sich als normaler Benutzer anmelden und als Administrator wieder anmelden. Aber das ist umständlich und vermeidbar. Besser: Sie richten einen Superuser ein und statten einen normalen Account mit Root-Rechten aus. Auf diese Weise kann der jeweilige Anwender Kommandos ausführen, die administrative Rechte erfordern. Die Kommandozeilenbefehle beginnen dafür mit dem Wort sudo.

Fügen Sie den neu erstellten Benutzer der Gruppe sudo hinzu, dann ist dieser mit den zusätzlichen Rechten ausgestattet. In Ubuntu 16.04 LTS können Mitglieder der Gruppe sudo automatisch das Kommando sudo verwenden.

Sie sind bisher weiterhin als root angemeldet, für die Einteilung in die Sudo-Gruppe tippen Sie:

usermod -ag sudo peter

Der neue Benutzer, in unserem Beispiel peter, kann jetzt Kommandos mit Rechten für Superuser ausführen.

Hinweis:
Es empfiehlt sich, nun den Root-Login zu deaktivieren. Eine Anleitung dazu finden Sie im folgenden Artikel.

Schritt 4: Öffentliche Schlüsselauthentifizierung hinzufügen (empfohlen)

Erhöhen Sie die Sicherheit Ihres Servers, indem Sie die öffentliche Schlüsselauthentifizierung für weitere Anwender einrichten.

Schlüsselpaar generieren

Sie haben noch kein SSH-Schlüsselpaar, bestehend aus einem öffentlichen und privaten Schlüssel? Dann müssen Sie zunächst ein SSH-Schlüsselpaar generieren.

Sollten Sie bereits einen SSH-Schlüssel besitzen, dann können Sie diesen Step überspringen und direkt zum Schritt Den öffentlichen Schlüssel kopieren übergehen.

Mit diesem Kommando generieren Sie ein neues Schlüsselpaar, geben Sie das neue Schlüsselpaar nun ins Terminal Ihres lokalen Computers ein:

ssh-keygen

Folgendes wird angezeigt:

ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa).

Drücken Sie die Enter-Taste und akzeptieren Sie Dateinamen und Pfad. Als Nächstes folgt die Aufforderung zur Eingabe einer Passwortphrase. Diese sichert den Schlüssel ab, das Feld kann auch leer bleiben.

Hinweis: Bleibt das Passwortfeld leer, können Sie den privaten Schlüssel zur Authentifizierung verwenden, ohne eine Passwortphrase anzugeben. Wenn Sie eine Passwortphrase eintragen, sind für die Anmeldung der private Schlüssel und die Passwortphrase notwendig. Selbstverständlich ist empfiehlt es es, den Schlüssel mit einem Passwort zu schützen. Das ist die sicherste Methode. Aber auch eine Schlüssel ohne zusätzlichen Passwortschutz ist sicherer als eine Standard-Passwortauthentifizierung.

Bei der Generierung wird im Home-Verzeichnis des localusers (im .ssh-Verzeichnis) ein privater Schlüssel id_rsa und ein öffentlicher Schlüssel id_rsa.pub erzeugt.
Sicherheitshinweis: Teilen Sie den privaten Schlüssel nur mit Personen, die Zugriff auf Ihren Server haben sollen.

Den öffentlichen Schlüssel kopieren

Wenn das SSH-ist erfolgreich generiert ist, können Sie den öffentlichen Schlüssel auf den neuen Server kopieren. Verwenden Sie dafür das Script ssh-copy-id, das auf der lokalen Maschine installiert sein muss. Der öffentliche Schlüssel lässt sich jetzt für Benutzer mit bekannten Anmeldedaten einrichten. Führen Sie den Befehl unter Angabe des Users und der Server-IP-Adresse aus:

ssh-copy-id peter@SERVER_IP_ADDRESS

Nach Eingabe des Passworts wird der öffentliche Schlüssel beim Remote-User der Datei .ssh/authorized_keys hinzugefügt. Anschließend können Sie den privaten Schlüssel verwenden.

Schritt 5: Die Passwortauthentifizierung deaktivieren

Der neue Benutzer kann nun SSH-Schlüssel für die Anmeldung nutzen. Sie können jetzt die Authentifizierung nur mit Passwort deaktivieren und die Sicherheit des Servers auf diese Weise erhöhen. Der SSH-Zugriff auf den Server ist in diesem Fall nur noch mit öffentlicher Schlüsselauthentifizierung möglich. Neben der Konsole ist der Zugriff ausschließlich mit Besitz desjenigen privaten Schlüssels möglich, der zum installierten öffentlichen Schlüssel passt.

Wichtiger Hinweis: Deaktivieren Sie die Passwortauthentifizierung nur, wenn Sie Schritt 4 erfolgreich durchgeführt haben. Andernfalls sperren Sie sich selbst aus und können nicht mehr auf den Server zugreifen.

Mit den folgenden Schritten deaktivieren Sie die Passwortauthentifizierung.

  • Öffnen Sie die SSH-Daemon-Konfiguration:
    sudo nano /etc/ssh/sshd_config
    
  • Suchen Sie die Zeile mit „PasswordAuthentication“, löschen Sie das vorstehende „#“ und ändern Sie den Wert zu „no“:
    PasswordAuthentication no
    
  • Per Default korrekt und nötig sind zudem:
    PubkeyAuthentication yes
    ChallengeResponseAuthentication no
    

Speichern Sie die Änderungen in der Datei sshd_config durch die Tastenkombination „CTRL-X“, dann „Y“ und drücken Sie die Enter-Taste.

Zum Neuladen des SSH-Daemon geben Sie ein:

sudo systemctl reload sshd

Die Passwortauthentifizierung ist jetzt deaktiviert und der Zugriff auf den Ubuntu-Server nur noch per SSH-Schlüsselauthentifizierung möglich.

Schritt 6: Die Anmeldung testen

Testen Sie die neue Konfiguration, bevor Sie sich auf dem Server anmelden. Trennen Sie die vorhandene Verbindung nicht, bis die Anmeldung via SSH erfolgreich war.

Loggen Sie sich mit dem neuen Account beim Server ein und verwenden Sie dafür ein neues Terminal auf dem lokalen Rechner:

ssh peter@SERVER_IP_ADDRESS

Für die Anmeldung wird der private Schlüssel aus den Schritten 4 und 5 verwendet.

Schritt 7: Eine Firewall einrichten

Mit der UFW-Firewall gestatten Sie Verbindungen nur zu bestimmten Diensten. Mit der Anwendung lässt sich eine Basis-Firewall sehr einfach einrichten.

Verschiedene Anwendungen können Profile bei UFW registrieren, UFW übernimmt das Management. Die Verbindung zum Server erfolgt über den Dienst OpenSSH, dieser hat ein registriertes Profil. Sie können dies prüfen durch die Eingabe von:

sudo ufw app list

Das Ergebnis sollte sein:

Output
Available applications:
OpenSSH

Damit die nächste Anmeldung klappt, müssen Sie SSH-Verbindungen durch Eingabe des folgenden Kommandos erlauben:

sudo ufw allow OpenSSH

Anschließend wird die Firewall aktiviert:

sudo ufw enable

Zum Fortsetzen tippen Sie y und drücken Sie die Enter-Taste.

Mit dieser Grundeinstellung ist die Server-Version von Ubuntu 16.04 LTS sicherer und einsatzbereit. Sie können jetzt sämtliche benötigte Software installieren.

Weitere Informationen zum Schutz Ihres Virtual Servers finden Sie in unserem Artikel: 4 Tipps, wie Sie Ihren Virtual Server gegen Hacking-Attacken schützen können.

Sie haben weitere Sicherheitstipps für Ubuntu 16.04? Schicken Sie uns einen Kommentar. Wir freuen uns auf Ihr Feedback.

Benjamin Schmitz

Benjamin Schmitz

Benjamin Schmitz ist selbstständiger Systemadministrator und passionierter Webdesigner. Im Host Europe Blog schreibt er über Webanwendungen und gibt Tipps für Einsteiger und Fortgeschrittene.
Benjamin Schmitz

5 thoughts on “Mehr Sicherheit für Ubuntu 16.04 Server

  1. Nachdem die Firewall eingerichtet ist, installiere ich IMMER Fail2Ban. Auch wenn eine SSH-Anmeldung in diesem Beispiel nur mit Schlüssel möglich ist, es gibt ja noch weitere Logins via FTP, SMTP, IMAP. Und die werden regelmäßig angegriffen, durch Fail2Ban und Firewall aber schnell unterbunden. So wird dann die Bruteforce-Attacke deutlich verlangsamt.

    Die Hacker suchen sich dann im Allgemeinen ein potenziell einfacheres Opfer.

    • Hallo,
      sehr guter Hinweis. Ich hatte in einem früheren Tutorial mit Sicherheitsstipps für Virtual Server schon auf Fail2Ban hingewiesen und diesen Artikel jetzt direkt querverlinkt. Vielen Dank.
      Mit besten Grüßen
      Wolf-Dieter Fiege

    • Hallo,

      das ist natürlich richtig. Hatte in einem früheren Artikel schon mal darauf hingewiesen, wie man Root Login deaktiviert. Es macht natürlich Sinn, an dieser Stelle noch einmal darauf hinzuweisen. Hole ich gleich nach.

      Vielen Dank und beste Grüße

      Wolf-Dieter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.