Tutorial

Ersteinrichtung des Servers unter CentOS 8

Linux BasicsCentOSGetting StartedInitial Server SetupCentOS 8

Einführung

Bei der Erstellung eines neuen CentOS-8-Servers gibt es einige Konfigurationsschritte, die Sie im Rahmen des grundlegenden Setups frühzeitig durchführen sollten. 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 bei Installation eines SSH-Schlüssels zur Authentifizierung 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 in unserer Dokumentation So verbinden Sie sich mit Ihrem Droplet mittels SSH folgen, die diesen Prozess detailliert 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 daher die Einrichtung eines alternativen Benutzerkontos mit einem reduzierten Einflussbereich für alltägliche Arbeit. Dieses Konto kann bei Bedarf immer noch vermehrte Berechtigungen erhalten.

Schritt 2 – Erstellung eines neuen Benutzers

Sobald Sie als root angemeldet sind, können Sie das neue Benutzerkonto erstellen, das wir ab jetzt zur Anmeldung verwenden werden.

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

  • adduser sammy

Legen Sie als Nächstes ein starkes Passwort für den Benutzer sammy fest:

  • passwd sammy

Sie werden aufgefordert, das Passwort zweimal einzugeben. Danach ist Ihr Benutzer bereit verwendet zu werden, aber zuerst geben wir diesem Benutzer zusätzliche Berechtigungen für die Verwendung des sudo-Befehls. Dadurch können wir Befehle bei Bedarf als root ausführen.

Schritt 3 – Gewähren von Verwaltungsberechtigungen

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 hinzuzufügen, müssen wir den neuen Benutzer der wheel-Gruppe hinzufügen. Standardmäßig dürfen Benutzer, die zur wheel-Gruppe gehören, auf CentOS 8 den sudo-Befehl verwenden.

Führen Sie als root diesen Befehl aus, um Ihren neuen Benutzer der wheel-Gruppe hinzuzufügen (ersetzen Sie das hervorgehobene Wort mit Ihrem neuen Benutzernamen):

  • usermod -aG wheel 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

Firewalls sind die Basis an Sicherheit für Ihren Server. Diese Anwendungen sind verantwortlich dafür, Datenverkehr an jeden Port auf Ihrem Server zu verweigern – außer für die Ports/Dienste, die Sie ausdrücklich genehmigt haben. CentOS verfügt über einen Dienst namens firewalld, um diese Funktion auszuführen. Firewall-Richtlinien von firewalld werden mithilfe eines Tools namens firewall-cmd konfiguriert.

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

Installieren Sie zuerst firewalld:

  • dnf install firewalld -y

Die Standardkonfiguration von firewalld ermöglicht ssh-Verbindungen, sodass wir die Firewall sofort einschalten können:

  • systemctl start firewalld

Überprüfen Sie den Status des Dienstes, um sicherzustellen, dass er gestartet ist:

  • systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Beachten Sie, dass er sowohl active als auch enabled ist. Das bedeutet, dass er standardmäßig startet, wenn der Server neu gestartet wird.

Jetzt wo der Dienst ausgeführt wird, können wir mit dem Dienstprogramm firewall-cmd Richtlinieninformationen abrufen und festlegen.

Listen wir zuerst die Dienste auf, die bereits zugelassen sind:

  • firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Um die zusätzlichen Dienste zu sehen, die Sie anhand des Namens aktivieren können, geben Sie Folgendes ein:

  • firewall-cmd --get-services

Um einen Dienst hinzuzufügen, der zugelassen sein soll, verwenden Sie das Flag --add-service:

  • firewall-cmd --permanent --add-service=http

Dadurch fügen Sie den Dienst http hinzu und lassen eingehenden TCP-Verkehr auf Port 80 zu. Die Konfiguration wird nach dem Neustart der Firewall aktualisiert:

  • firewall-cmd --reload

Denken Sie daran, dass Sie die Firewall (mit Diensten oder Ports) ausdrücklich für alle zusätzlichen Dienste öffnen müssen, die Sie eventuell später konfigurieren.

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

Jetzt wo wir einen regulären non-root user für die tägliche Verwendung haben, müssen wir sicherstellen, dass wir ihn für SSH in unseren Server verwenden 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 mit einem Passwort bei Ihrem Root-Konto 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 unserem Leitfaden zur Einrichtung von SSH-Schlüsseln unter CentOS 8, um mehr über die Konfiguration von schlüsselbasierter Authentifizierung zu erfahren.

Wenn das Root-Konto SSH-Schlüsselauthentifizierung verwendet

Wenn Sie sich mit SSH-Schlüsseln bei Ihrem Root-Konto 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 am Server befindet, können wir die Datei- und Verzeichnisstruktur in unser neues Benutzerkonto kopieren.

Die einfachste Möglichkeit, die Dateien mit richtigem Besitz und Berechtigungen zu kopieren, ist mit dem Befehl rsync. Damit kopieren Sie das Verzeichnis .ssh des root-Benutzers, erhalten die Berechtigungen bei und ändern die Dateibesitzer – 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

Wieder zurück im neuen Terminal auf ihrem lokalen Rechner, öffnen Sie jetzt eine neue SSH-Sitzung mit Ihrem non-root user:

  • 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).

Zusammenfassung

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

Creative Commons License