Erstkonfiguration des Servers mit Rocky Linux 9

Einführung

Wenn Sie zum ersten Mal einen neuen Rocky Linux 9 Server erstellen, gibt es einige Konfigurationsschritte, die Sie frühzeitig als Teil der ersten Einrichtung durchführen sollten. Dies erhöht die Sicherheit und Benutzerfreundlichkeit Ihres Servers und bietet Ihnen eine solide Grundlage zum Aufbau.

Schritt 1 — Als Root einloggen

Um sich auf Ihrem Server anzumelden, müssen Sie die öffentliche IP-Adresse Ihres Servers kennen. Sie benötigen auch das Passwort oder, wenn Sie einen SSH-Schlüssel zur Authentifizierung installiert haben, den privaten Schlüssel für das Root-Benutzerkonto. Wenn Sie sich noch nicht auf Ihrem Server angemeldet haben, sollten Sie unserer Dokumentation folgen, wie Sie sich mit SSH mit Ihrem Droplet verbinden können, was diesen Prozess im Detail behandelt.

Wenn Sie noch nicht mit Ihrem Server verbunden sind, melden Sie sich jetzt als Root-Benutzer mit dem folgenden Befehl an (ersetzen Sie den markierten Teil des Befehls durch die öffentliche IP-Adresse Ihres Servers):

  1. ssh root@your_server_ip

Akzeptieren Sie die Warnung zur Hostauthentizität, wenn sie angezeigt wird. Wenn Sie die Authentifizierung über ein Passwort verwenden, geben Sie Ihr root-Passwort ein, um sich anzumelden. Wenn Sie einen SSH-Schlüssel verwenden, der durch ein Passwort geschützt ist, werden Sie möglicherweise aufgefordert, das Passwort beim ersten Mal, wenn Sie den Schlüssel in jeder Sitzung verwenden, einzugeben. Wenn Sie sich zum ersten Mal mit einem Passwort auf dem Server anmelden, werden Sie möglicherweise auch aufgefordert, das root-Passwort zu ändern.

Über Root

Der root-Benutzer ist der administrative Benutzer in einer Linux-Umgebung und verfügt über sehr weitreichende Rechte. Aufgrund der erhöhten Rechte des root-Kontos wird davon abgeraten, es regelmäßig zu verwenden. Dies liegt daran, dass ein Teil der mit dem root-Konto verbundenen Macht die Fähigkeit ist, sehr zerstörerische Änderungen auch versehentlich vorzunehmen.

Als nächstes sollten Sie ein alternatives Benutzerkonto mit einem reduzierten Einflussbereich für die tägliche Arbeit einrichten. Dieses Konto wird weiterhin erhöhte Rechte erlangen können, wenn dies erforderlich ist.

Schritt 2 — Erstellen eines neuen Benutzers

Wenn Sie als root angemeldet sind, können Sie ein neues Benutzerkonto erstellen, das Sie von nun an verwenden werden.

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

  1. adduser sammy

Als nächstes legen Sie ein starkes Passwort für den Benutzer sammy fest:

  1. passwd sammy

Sie werden aufgefordert, das Passwort zweimal einzugeben. Nachdem Sie dies getan haben, ist Ihr Benutzer bereit zur Verwendung, aber zuerst werden Sie diesem Benutzer zusätzliche Privilegien geben, um das sudo-Kommando zu verwenden. Dies ermöglicht es Ihnen, Befehle als root auszuführen, wenn nötig.

Schritt 3 — Gewährung administrativer Privilegien

Jetzt haben Sie ein neues Benutzerkonto mit regulären Kontoberechtigungen. Sie müssen jedoch manchmal administrative Aufgaben ausführen.

Um zu vermeiden, dass Sie sich von Ihrem regulären Benutzer abmelden und als Benutzer root wieder anmelden müssen, können Sie einrichten, was als „Superuser“ oder root -Berechtigungen für Ihr reguläres Konto bekannt ist. Dies ermöglicht es Ihrem regulären Benutzer, Befehle mit administrativen Berechtigungen auszuführen, indem Sie das Wort sudo vor jedem Befehl setzen.

Um diese Berechtigungen Ihrem neuen Benutzer hinzuzufügen, müssen Sie den neuen Benutzer zur wheel-Gruppe hinzufügen. Standardmäßig dürfen auf Rocky Linux 9 Benutzer, die zur wheel-Gruppe gehören, das sudo-Kommando verwenden.

Als root, führen Sie diesen Befehl aus, um Ihren neuen Benutzer zur Gruppe wheel hinzuzufügen (ersetzen Sie das markierte Wort durch Ihren neuen Benutzernamen):

  1. usermod -aG wheel sammy

Jetzt können Sie, wenn Sie als Ihr regulärer Benutzer angemeldet sind, sudo vor Befehle eingeben, um Aktionen mit Superuser-Berechtigungen auszuführen.

Schritt 4 — Einrichten einer Firewall

Firewalls bieten ein grundlegendes Sicherheitsniveau für Ihren Server. Diese Anwendungen sind dafür verantwortlich, den Datenverkehr zu jedem Port auf Ihrem Server zu verweigern, außer zu den Ports/Diensten, die Sie ausdrücklich genehmigt haben. Rocky Linux hat einen Dienst namens firewalld, um diese Funktion auszuführen. Ein Tool namens firewall-cmd wird verwendet, um Firewall-Richtlinien von firewalld zu konfigurieren.

Hinweis: Wenn Ihre Server bei DigitalOcean laufen, können Sie optional DigitalOcean Cloud Firewalls anstelle von firewalld verwenden. Sie sollten immer nur eine Firewall gleichzeitig verwenden, um Konflikte zwischen Regeln zu vermeiden, die möglicherweise schwer zu debuggen sind.

Installieren Sie zunächst firewalld:

  1. dnf install firewalld -y

Die Standardkonfiguration von firewalld erlaubt ssh-Verbindungen, daher können Sie die Firewall sofort einschalten:

  1. systemctl start firewalld

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

  1. 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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago Docs: man:firewalld(1) Main PID: 15060 (firewalld) Tasks: 4 (limit: 10938) Memory: 28.1M CPU: 6.127s CGroup: /system.slice/firewalld.service └─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

Beachten Sie, dass es sowohl aktiv als auch aktiviert ist, was bedeutet, dass es standardmäßig startet, wenn der Server neu gestartet wird.

Jetzt, da der Dienst läuft, können Sie das Dienstprogramm firewall-cmd verwenden, um Richtlinieninformationen für die Firewall abzurufen und festzulegen.

Zunächst listen wir auf, welche Dienste bereits zugelassen sind:

  1. 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 nach Namen aktivieren können, geben Sie ein:

  1. firewall-cmd --get-services

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

  1. firewall-cmd --permanent --add-service=http

Dies würde den Dienst http hinzufügen und eingehenden TCP-Verkehr zum Port 80 zulassen. Die Konfiguration wird aktualisiert, nachdem Sie die Firewall neu geladen haben:

  1. firewall-cmd --reload

Vergessen Sie nicht, dass Sie die Firewall (mit Diensten oder Ports) explizit für alle zusätzlichen Dienste öffnen müssen, die Sie später konfigurieren möchten.

Schritt 5 — Externen Zugriff für Ihren regulären Benutzer aktivieren

Jetzt, da Sie einen regulären, nicht-root-Benutzer für den täglichen Gebrauch haben, müssen Sie sicherstellen, dass Sie ihn zum SSH-Zugriff auf Ihren Server verwenden können.

Hinweis: Bis Sie überprüft haben, dass Sie sich als neuer Benutzer anmelden und sudo verwenden können, sollten Sie als root angemeldet bleiben. Auf diese Weise können Sie bei Problemen Fehler beheben und alle erforderlichen Änderungen als root vornehmen. Wenn Sie einen DigitalOcean-Droplet verwenden und Probleme mit Ihrer root-SSH-Verbindung haben, können Sie sich über die DigitalOcean-Konsole am Droplet anmelden.

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

Wenn das Root-Konto die Passwortauthentifizierung verwendet

Wenn Sie sich in Ihr root-Konto mit einem Passwort eingeloggt haben, ist die Passwortauthentifizierung für SSH aktiviert. Sie können sich mit Ihrem neuen Benutzerkonto per SSH anmelden, indem Sie eine neue Terminalsession öffnen und SSH mit Ihrem neuen Benutzernamen verwenden:

  1. ssh sammy@your_server_ip

Nach Eingabe des Passworts Ihres regulären Benutzers werden Sie angemeldet. Denken Sie daran, wenn Sie ein Befehl mit administrativen Rechten ausführen müssen, geben Sie vorher sudo ein, wie folgt:

  1. sudo command_to_run

Sie werden beim ersten Mal pro Sitzung (und gelegentlich danach) nach dem Passwort Ihres regulären Benutzers gefragt, wenn Sie sudo verwenden.

Um die Sicherheit Ihres Servers zu verbessern, sollten Sie SSH-Schlüssel einrichten, anstatt die Passwortauthentifizierung zu verwenden. Befolgen Sie diese Anleitung zum Einrichten von SSH-Schlüsseln unter Rocky Linux 9, um zu erfahren, wie Sie die authentifizierungsbasierte Schlüsselkonfiguration durchführen können.

Wenn das Root-Konto die SSH-Schlüsselauthentifizierung verwendet

Wenn Sie sich in 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 zur Datei ~/.ssh/authorized_keys des neuen Benutzers hinzufügen, 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 Sie diese Datei und Verzeichnisstruktur in Ihr neues Benutzerkonto kopieren.

Der einfachste Weg, die Dateien mit den richtigen Besitz- und Berechtigungseinstellungen zu kopieren, ist die Verwendung des rsync-Befehls. Dies kopiert das Root-Benutzer-Verzeichnis .ssh, bewahrt die Berechtigungen und ändert die Dateibesitzer in einem einzigen Befehl. Stellen Sie sicher, dass Sie die markierten Teile des unten stehenden Befehls ändern, um den Namen Ihres regulären Benutzers anzupassen:

Hinweis: Der Befehl rsync behandelt Quellen und Ziele, die mit einem abschließenden Schrägstrich enden, anders als solche ohne abschließenden Schrägstrich. Wenn Sie rsync verwenden, stellen Sie sicher, dass das Quellverzeichnis (~/.ssh) keinen abschließenden Schrägstrich enthält (überprüfen Sie, ob Sie ~/.ssh/ verwenden).

Wenn Sie versehentlich einen abschließenden Schrägstrich zum Befehl hinzufügen, kopiert rsync den Inhalt des Root-Benutzer-Verzeichnisses ~/.ssh in das Home-Verzeichnis des sudo-Benutzers anstelle des gesamten Verzeichnisstrukturs von ~/.ssh. Die Dateien befinden sich an der falschen Stelle, und SSH kann sie nicht finden und verwenden.

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

Öffnen Sie nun in einem neuen Terminal auf Ihrem lokalen Rechner eine neue SSH-Sitzung mit Ihrem nicht Root-Benutzer:

  1. ssh sammy@your_server_ip

Sie sollten sich im neuen Benutzerkonto angemeldet haben, ohne ein Passwort verwenden zu müssen. Denken Sie daran, wenn Sie einen Befehl mit administrativen Rechten ausführen müssen, geben Sie sudo davor ein, wie folgt:

  1. sudo command_to_run

Sie werden beim ersten Mal pro Sitzung (und gelegentlich danach) nach Ihrem regulären Benutzerpasswort gefragt, wenn Sie sudo verwenden.

Zusammenfassung

An diesem Punkt haben Sie eine solide Grundlage für Ihren Server. Sie können jetzt jede Software installieren, die Sie auf Ihrem Server benötigen. Sie können beispielsweise damit beginnen, den Nginx-Webserver zu installieren.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-9