Tutorial

Ersteinrichtung des Servers mit Ubuntu 20.04

UbuntuGetting StartedSecurityInitial Server SetupUbuntu 20.04

Einführung

Wenn Sie erstmals einen neuen Ubuntu 20.04 Server einrichten, sollten Sie im Rahmen der grundlegenden Einrichtung einige wichtige Konfigurationsschritte ausführen. Dadurch erhöhen Sie die Sicherheit und Benutzerfreundlichkeit Ihres Servers und haben eine solide Grundlage für spätere Aktionen.

Schritt 1 – Anmeldung als root

Für die Anmeldung bei Ihrem Server müssen Sie die öffentliche IP-Adresse Ihres Servers kennen. Außerdem benötigen Sie das Passwort oder – wenn Sie einen SSH-Schlüssel zur Authentifizierung installiert haben – den privaten Schlüssel für das Konto des root user. Wenn Sie sich nicht bereits bei Ihrem Server angemeldet haben, können Sie der Anleitung Verbinden mit Droplets über SSH folgen, die diesen Vorgang ausführlich behandelt.

Wenn Sie nicht bereits mit Ihrem Server verbunden sind, melden Sie sich jetzt als root user mit dem folgenden Befehl an (ersetzen Sie den hervorgehobenen Teil des Befehls mit der öffentlichen IP-Adresse Ihres Servers):

  • ssh root@your_server_ip

Akzeptieren Sie die Warnung über die Authentizität des Hosts, falls diese angezeigt wird. Wenn Sie die Passwortauthentifizierung verwenden, geben Sie Ihr root-Passwort an, um sich anzumelden. Wenn Sie einen SSH-Schlüssel verwenden, der passphrase-geschützt ist, werden Sie möglicherweise bei jeder Sitzung beim ersten Mal, wenn Sie den Schlüssel verwenden, zur Eingabe der Passphrase aufgefordert. Wenn Sie sich das erste Mal mit einem Passwort beim Server anmelden, könnten Sie zur Änderung des root-Passworts aufgefordert werden.

Über root

Der root user ist der administrative Benutzer in einer Linux-Umgebung und verfügt über umfassende Berechtigungen. Aufgrund der erweiterten Berechtigungen des root-Kontos wird von einer regelmäßigen Verwendung abgeraten. Das liegt daran, dass ein Teil der Leistung, die dem root-Konto inhärent ist, die Fähigkeit ist, sehr destruktive Änderungen – selbst durch Zufall – zu verursachen.

Der nächste Schritt ist die Einrichtung eines neuen Benutzerkontos mit reduzierten Berechtigungen für die alltägliche Verwendung. Später erfahren Sie, wie Sie weitere Berechtigungen erhalten, wenn Sie diese vorübergehend benötigen.

Schritt 2 – Erstellung eines neuen Benutzers

Sobald Sie als root angemeldet sind, können wir das neue Benutzerkonto hinzufügen. In Zukunft melden wir uns bei diesem neuen Konto anstelle von root an.

Dieses Beispiel erstellt einen neuen Benutzer namens sammy, aber Sie können ihn durch einen beliebigen Benutzernamen ersetzen:

  • adduser sammy

Ihnen werden einige Fragen gestellt. Zunächst nach dem Kontopasswort.

Geben Sie ein starkes Passwort ein und füllen Sie die zusätzlichen Informationen aus, wenn Sie möchten. Das ist jedoch nicht unbedingt erforderlich und Sie können einfach in jedem Feld, das Sie überspringen möchten, ENTER drücken.

Schritt 3 – Gewähren von administrativen Berechtigungen

Jetzt haben wir ein neues Benutzerkonto mit regulären Kontoberechtigungen. Manchmal müssen wir jedoch administrative Aufgaben tätigen.

Damit wir uns nicht von unserem normalen Benutzer abmelden und beim root-Konto wieder anmelden müssen, können wir einen sogenannten superuser oder root-Berechtigungen für unser normales Konto einrichten. Dadurch kann unser normaler Benutzer Befehle mit administrativen Berechtigungen ausführen, indem das Wort sudo vor jeden Befehl gesetzt wird.

Um unserem neuen Benutzer diese Berechtigungen zu geben, müssen wir ihn der sudo-Gruppe hinzufügen. Standardmäßig dürfen unter Ubuntu 20.04 Benutzer, die Mitglieder der sudo-Gruppe sind, den Befehl sudo verwenden.

Führen Sie als root diesen Befehl aus, um Ihren neuen Benutzer der sudo-Gruppe hinzuzufügen (ersetzen Sie den hervorgehobenen Benutzernamen durch den neuen Benutzer):

  • usermod -aG sudo sammy

Wenn Sie als regulärer Benutzer angemeldet sind, können Sie jetzt sudo vor Befehlen eingeben, um Aktionen mit Superuser-Berechtigungen durchzuführen.

Schritt 4 – Einrichten einer grundlegenden Firewall

Ubuntu 20.04-Server können anhand der UFW-Firewall sicherstellen, dass nur Verbindungen zu bestimmten Diensten zugelassen werden. Mit dieser Anwendung können wir eine einfache Firewall sehr leicht einrichten.

Anmerkung: Wenn Ihre Server auf DigitalOcean ausgeführt werden, können Sie optional DigitalOcean Cloud Firewalls anstelle der UFW-Firewall verwenden. Wir empfehlen, nicht mehr als eine Firewall zu verwenden, um widersprüchliche Regeln zu vermeiden, die schwierig zu debuggen sein könnten.

Anwendungen können bei der Installation ihre Profile mit UFW registrieren. Diese Profile ermöglichen, dass UFW diese Anwendungen nach dem Namen verwalten kann. OpenSSH, der Dienst, der es ermöglicht, sich mit unserem Server zu verbinden, hat jetzt ein mit UFW registriertes Profil.

Sie sehen das, wenn Sie Folgendes eingeben:

  • ufw app list
Output
Available applications: OpenSSH

Wir müssen sicherstellen, dass die Firewall SSH-Verbindungen ermöglicht, sodass wir uns beim nächsten Mal wieder anmelden können. Wir können diese Verbindungen zulassen, indem wir Folgendes eingeben:

  • ufw allow OpenSSH

Danach können wir die Firewall aktivieren, indem wir Folgendes eingeben:

  • ufw enable

Geben Sie y ein und drücken Sie ENTER, um fortzufahren. Wenn Sie Folgendes eingeben, können Sie sehen, dass SSH-Verbindungen weiterhin erlaubt sind:

  • ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Da die Firewall derzeit alle Verbindungen blockiert, ausgenommen für SSH, müssen Sie, um zusätzliche Dienste zu installieren und zu konfigurieren, die Firewall-Einstellungen so anpassen, dass eingehender Datenverkehr erlaubt ist. In dem Leitfaden UFW-Grundlagen lernen Sie einige der gängigsten UFW-Operationen.

Schritt 5 – Aktivieren des externen Zugangs für Ihren regulären Benutzer

Da es für die tägliche Verwendung jetzt einen regulären Benutzer gibt, müssen wir sicherstellen, dass wir SSH direkt in das Konto einfügen können.

Anmerkung: Bis Sie verifiziert haben, dass Sie sich anmelden und sudo mit Ihrem neuen Benutzer verwenden können, empfehlen wir, als root angemeldet zu bleiben. So können Sie als root eventuell auftretende Probleme beheben und alle erforderlichen Änderungen vornehmen. Wenn Sie ein DigitalOcean Droplet verwenden und Probleme mit Ihrer root-SSH-Verbindung auftreten, können Sie sich mit der DigitalOcean Console beim Droplet anmelden.

Der Prozess der Konfiguration des SSH-Zugangs für Ihren neuen Benutzer hängt davon ab, ob das root-Konto Ihres Servers ein Passwort oder einen SSH-Schlüssel zur Authentifizierung verwendet.

Wenn das root-Konto Passwortauthentifizierung verwendet

Wenn Sie sich an Ihrem root-Konto mit einem Passwort angemeldet haben, ist die Passwortauthentifizierung für SSH aktiviert. Sie können über SSH auf Ihr neues Konto zugreifen, indem Sie eine neue Terminal-Sitzung öffnen und SSH mit Ihrem neuen Benutzernamen verwenden.

  • ssh sammy@your_server_ip

Nach der Eingabe des Passworts Ihres regulären Benutzers werden Sie angemeldet. Wenn Sie einen Befehl mit administrativen Berechtigungen ausführen müssen, denken Sie daran, davor sudo wie folgt einzugeben:

  • sudo command_to_run

Sie werden bei jeder Sitzung zur Eingabe Ihres regulären Benutzerpassworts aufgefordert, wenn Sie sudo zum ersten Mal verwenden (und danach in regelmäßigen Abständen).

Um die Sicherheit Ihres Servers zu verbessern, empfehlen wir dringend die Einrichtung von SSH-Schlüsseln, anstatt die Passwortauthentifizierung zu verwenden. Folgen Sie unserer Anleitung zur Einrichtung von SSH-Schlüsseln unter Ubuntu 20.04, um mehr über die Konfiguration von schlüsselbasierter Authentifizierung zu erfahren.

Wenn das root-Konto SSH-Schlüsselauthentifizierung verwendet

Wenn Sie sich an Ihrem root-Konto mit SSH-Schlüsseln angemeldet haben, ist die Passwortauthentifizierung für SSH deaktiviert. Sie müssen eine Kopie Ihres öffentlichen Schlüssels in die Datei ~/.ssh/authorized_keys des neuen Benutzers aufnehmen, um sich erfolgreich anzumelden.

Da sich Ihr öffentlicher Schlüssel bereits in der Datei ~/.ssh/authorized_keys des root-Kontos auf dem Server befindet, können wir die Datei- und Verzeichnisstruktur in der laufenden Sitzung in unser neues Benutzerkonto kopieren.

Die einfachste Möglichkeit, die Dateien mit richtiger Eigentümerschaft und Berechtigungen zu kopieren, ist mit dem Befehl rsync. Damit kopieren Sie das Verzeichnis .ssh des root user, behalten die Berechtigungen bei und ändern die Dateieigentümer – und das alles mit einem einzigen Befehl. Stellen Sie sicher, dass Sie die hervorgehobenen Teile des folgenden Befehls ändern, um dem Namen Ihres regulären Benutzers zu entsprechen:

Anmerkung: Der Befehl rsync behandelt Quellen und Ziele, die mit einem nachstehenden Schrägstrich enden, anders als jene ohne nachstehenden Schrägstrich. Stellen Sie sicher, dass das Quellverzeichnis (~/.ssh) keinen nachstehenden Schrägstrich enthält, wenn Sie nachfolgend rsync verwenden (vergewissern Sie sich, dass Sie nicht ~/.ssh/ verwenden).

Wenn Sie dem Befehl aus Versehen einen nachstehenden Schrägstrich hinzufügen, kopiert rsync den Inhalt des Verzeichnisses ~/.ssh des root-Kontos in das Stammverzeichnis des sudo-Benutzers, anstatt die gesamte Verzeichnisstruktur ~/.ssh zu kopieren. Die Dateien befinden sich dann am falschen Ort und SSH wird sie nicht finden und verwenden können.

  • rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Öffnen Sie jetzt eine neue Terminalsitzung auf dem lokalen Computer und nutzen Sie SSH mit einem neuen Benutzernamen:

  • ssh sammy@your_server_ip

Sie sollten beim neuen Benutzerkonto angemeldet werden, ohne ein Passwort zu verwenden. Wenn Sie einen Befehl mit administrativen Berechtigungen ausführen müssen, denken Sie daran, davor sudo wie folgt einzugeben:

  • sudo command_to_run

Sie werden bei jeder Sitzung zur Eingabe Ihres regulären Benutzerpassworts aufgefordert, wenn Sie sudo zum ersten Mal verwenden (und danach in regelmäßigen Abständen).

Wie geht es jetzt weiter?

Jetzt haben Sie eine solide Grundlage für Ihren Server. Sie können nun jede benötigte Software auf Ihrem Server installieren.

0 Comments

Creative Commons License