Erstkonfiguration des Servers mit Rocky Linux 8

Einführung

Wenn Sie zum ersten Mal einen neuen Rocky Linux 8 Server erstellen, gibt es einige Konfigurationsschritte, die Sie frühzeitig als Teil des grundlegenden Setups durchführen sollten. Dies erhöht die Sicherheit und Benutzerfreundlichkeit Ihres Servers und bietet Ihnen eine solide Grundlage für nachfolgende Aktionen.

Schritt 1 — Als Root anmelden

Um sich auf Ihrem Server anzumelden, müssen Sie die öffentliche IP-Adresse des 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 Benutzerkonto root. Wenn Sie sich noch nicht auf Ihrem Server angemeldet haben, sollten Sie unserer Dokumentation folgen, wie Sie eine Verbindung zu Ihrem Droplet über SSH herstellen, in der dieser Vorgang im Detail beschrieben wird.

Wenn Sie noch nicht mit Ihrem Server verbunden sind, melden Sie sich jetzt als Benutzer root an, indem Sie den folgenden Befehl verwenden (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 Host-Authentizität, wenn sie erscheint. Wenn Sie die Passwort-Authentifizierung verwenden, geben Sie Ihr Root-Passwort ein, um sich anzumelden. Wenn Sie einen SSH-Schlüssel verwenden, der mit einem Passwort geschützt ist, werden Sie möglicherweise aufgefordert, das Passwort jedes Mal einzugeben, wenn Sie den Schlüssel in jeder Sitzung zum ersten Mal verwenden. Wenn dies das erste Mal ist, dass Sie sich 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 Berechtigungen. Aufgrund der erhöhten Privilegien 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.

Daher ist der nächste Schritt, ein alternatives Benutzerkonto mit einem reduzierten Einflussbereich für die tägliche Arbeit einzurichten. Dieses Konto wird immer noch in der Lage sein, bei Bedarf erhöhte Berechtigungen zu erlangen.

Schritt 2 – Ein neues Benutzerkonto erstellen

Sobald Sie als Root angemeldet sind, können Sie das neue Benutzerkonto erstellen, das wir von nun an verwenden werden, um uns anzumelden.

Dieses Beispiel erstellt einen neuen Benutzer namens sammy, den Sie jedoch durch einen beliebigen Benutzernamen Ihrer Wahl ersetzen sollten:

  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 einsatzbereit. Zunächst geben wir diesem Benutzer jedoch zusätzliche Berechtigungen, um das sudo-Befehl verwenden zu können. Dies ermöglicht es uns, Befehle als root auszuführen, wenn erforderlich.

Schritt 3 – Gewährung von administrativen Berechtigungen

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

Um zu vermeiden, dass wir uns aus unserem regulären Benutzer ausloggen müssen, um uns als Benutzer root anzumelden, können wir das sogenannte „Superuser“- oder root-Berechtigungen für unser reguläres Konto einrichten. Dadurch kann unser regulärer Benutzer Befehle mit administrativen Berechtigungen ausführen, indem er das Wort sudo vor jeden Befehl stellt.

Um diese Berechtigungen für unseren neuen Benutzer hinzuzufügen, müssen wir den neuen Benutzer zur wheel-Gruppe hinzufügen. Standardmäßig dürfen auf Rocky Linux 8 Benutzer, die zur wheel-Gruppe gehören, den sudo-Befehl 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 durchzuführen.

Schritt 4 — Einrichten einer grundlegenden Firewall

Firewalls bieten eine grundlegende Sicherheitsebene 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, der diese Funktion ausführt. Ein Werkzeug namens firewall-cmd wird verwendet, um firewalld-Firewall-Richtlinien zu konfigurieren.

Hinweis: Wenn Ihre Server bei DigitalOcean gehostet werden, können Sie optional DigitalOcean Cloud Firewalls anstelle von firewalld verwenden. Wir empfehlen, immer nur eine Firewall gleichzeitig zu verwenden, um Konflikte bei Regeln zu vermeiden, die schwer zu debuggen sein können.

Installieren Sie zuerst firewalld:

  1. dnf install firewalld -y

Die Standardkonfiguration von firewalld erlaubt ssh-Verbindungen, daher können wir 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 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 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 wir das Dienstprogramm firewall-cmd verwenden, um Richtlinieninformationen für die Firewall abzurufen und festzulegen.

Zunächst listen wir die bereits erlaubten Dienste auf:

  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 zu sehen, welche zusätzlichen Dienste Sie nach Namen aktivieren können, geben Sie ein:

  1. firewall-cmd --get-services

Um einen Dienst hinzuzufügen, der erlaubt sein 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 — Aktivieren des externen Zugriffs für Ihren regulären Benutzer

Jetzt, da wir einen regulären nicht-root-Benutzer für den täglichen Gebrauch haben, müssen wir sicherstellen, dass wir ihn verwenden können, um eine SSH-Verbindung zu unserem Server herzustellen.

Hinweis: Bevor Sie überprüfen, ob Sie sich mit Ihrem neuen Benutzer anmelden und sudo verwenden können, empfehlen wir, als root angemeldet zu bleiben. Auf diese Weise können Sie bei Problemen Fehlerbehebungen durchführen und erforderliche Ä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 in den Droplet einloggen.

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 Authentifizierung per Passwort verwendet

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

Sie werden bei der ersten Verwendung von sudo in jeder Sitzung (und gelegentlich danach) nach Ihrem regulären Benutzerpasswort gefragt.

Um die Sicherheit Ihres Servers zu erhöhen, empfehlen wir dringend, SSH-Schlüssel anstelle der Passwortauthentifizierung einzurichten. Befolgen Sie unsere Anleitung zum Einrichten von SSH-Schlüsseln unter Rocky Linux 8, um zu erfahren, wie Sie die authentifizierungsbasierte Authentifizierung konfigurieren können.

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

Wenn Sie sich in Ihr Root-Konto mit SSH-Schlüsseln eingeloggt 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 wir diese Datei und Verzeichnisstruktur auf unser neues Benutzerkonto kopieren.

Der einfachste Weg, die Dateien mit den richtigen Berechtigungen und Besitzverhältnissen zu kopieren, ist der Befehl rsync. Dieser kopiert das Root-Benutzerverzeichnis .ssh, erhält die Berechtigungen und ändert die Dateibesitzer, alles in einem einzigen Befehl. Stellen Sie sicher, dass Sie die markierten Teile des Befehls unten entsprechend dem Namen Ihres regulären Benutzers ändern:

Hinweis: Der Befehl rsync behandelt Quellen und Ziele, die mit einem Schrägstrich am Ende enden, anders als solche ohne abschließenden Schrägstrich. Beim Verwenden von rsync unten 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 Benutzers sudo, anstatt die gesamte Verzeichnisstruktur von ~/.ssh zu kopieren. Die Dateien befinden sich an der falschen Position 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 in das neue Benutzerkonto eingeloggt sein, ohne ein Passwort verwenden zu müssen. Denken Sie daran, wenn Sie ein Befehl mit administrativen Privilegien ausführen müssen, geben Sie sudo davor ein, wie folgt:

  1. sudo command_to_run

Sie werden bei der Verwendung von sudo beim ersten Mal in jeder Sitzung (und gelegentlich danach) nach Ihrem regulären Benutzerpasswort gefragt.

Zusammenfassung

Zu diesem Zeitpunkt haben Sie eine solide Grundlage für Ihren Server. Sie können jetzt jede benötigte Software auf Ihrem Server installieren.

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