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.
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.
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.
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.
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.
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
Outputpublic (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.
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 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 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).
Jetzt haben Sie eine solide Grundlage für Ihren Server. Sie können nun jede benötigte Software auf Ihrem Server installieren.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!