Einführung
Wenn Sie zum ersten Mal einen neuen Server erstellen, gibt es einige Konfigurationsschritte, die Sie frühzeitig als Teil der Grundeinrichtung durchführen sollten. Dies erhöht die Sicherheit und Benutzerfreundlichkeit Ihres Servers und gibt Ihnen eine solide Grundlage für nachfolgende Aktionen.
Erster Schritt — Root-Login
Um sich bei Ihrem Server anzumelden, müssen Sie die öffentliche IP-Adresse Ihres Servers und das Kennwort für das Benutzerkonto „root“ kennen. Wenn Sie sich noch nicht bei Ihrem Server angemeldet haben, können Sie dem ersten Tutorial dieser Serie folgen, Wie Sie sich mit SSH mit Ihrem Droplet verbinden, das diesen Prozess im Detail behandelt.
Wenn Sie noch nicht mit Ihrem Server verbunden sind, melden Sie sich als root
Benutzer mit dem folgenden Befehl an (ersetzen Sie das markierte Wort durch die öffentliche IP-Adresse Ihres Servers):
- ssh [email protected]_IP_ADDRESS
Schließen Sie den Anmeldevorgang ab, indem Sie die Warnung zur Hostauthentizität akzeptieren, falls diese angezeigt wird, und dann Ihre Root-Authentifizierung (Kennwort oder privater Schlüssel) angeben. Wenn Sie sich zum ersten Mal mit einem Kennwort am Server anmelden, werden Sie auch aufgefordert, das Root-Kennwort zu ändern.
Über Root
Der Root-Benutzer ist der administrative Benutzer in einer Linux-Umgebung, der über sehr breite Berechtigungen verfügt. Aufgrund der erhöhten Berechtigungen des Root-Kontos wird davon abgeraten, es regelmäßig zu verwenden. Dies liegt daran, dass ein Teil der Macht, die dem Root-Konto innewohnt, die Fähigkeit ist, selbst durch Zufall sehr destruktive Änderungen vorzunehmen.
Der nächste Schritt ist die Einrichtung eines alternativen Benutzerkontos mit reduziertem Einflussbereich für die tägliche Arbeit. Wir zeigen Ihnen, wie Sie in den Zeiten, in denen Sie sie benötigen, mehr Privilegien erhalten.
Schritt zwei – Erstellen Sie einen neuen Benutzer
Sobald Sie als root
angemeldet sind, sind wir bereit, das neue Benutzerkonto hinzuzufügen, mit dem wir uns von nun an anmelden werden.
Dieses Beispiel erstellt einen neuen Benutzer namens „demo“, aber Sie sollten ihn durch einen Benutzernamen ersetzen, den Sie mögen:
- adduser demo
Weisen Sie als Nächstes dem neuen Benutzer ein Passwort zu (ersetzen Sie „demo“ erneut durch den Benutzer, den Sie gerade erstellt haben):
- passwd demo
Geben Sie ein sicheres Passwort ein und wiederholen Sie es erneut, um es zu überprüfen.
Schritt drei – Root-Rechte
Jetzt haben wir ein neues Benutzerkonto mit regulären Kontoberechtigungen. Manchmal müssen wir jedoch administrative Aufgaben erledigen.
Um zu vermeiden, dass wir uns von unserem normalen Benutzer abmelden und uns wieder als Root-Konto anmelden müssen, können wir für unser normales Konto sogenannte „Super User“ – oder Root-Rechte einrichten. Auf diese Weise kann unser normaler Benutzer Befehle mit Administratorrechten ausführen, indem er vor jedem Befehl das Wort sudo
.
Um diese Berechtigungen unserem neuen Benutzer hinzuzufügen, müssen wir den neuen Benutzer zur Gruppe „wheel“ hinzufügen. Standardmäßig dürfen Benutzer, die zur Gruppe „wheel“ gehören, unter CentOS 7 den Befehl sudo
.
Führen Sie als root
diesen Befehl aus, um Ihren neuen Benutzer zur Radgruppe hinzuzufügen (ersetzen Sie das hervorgehobene Wort durch Ihren neuen Benutzer):
- gpasswd -a demo wheel
Jetzt kann Ihr Benutzer Befehle mit Superuser-Rechten ausführen! Weitere Informationen darüber, wie das funktioniert, finden Sie in unserem sudoers Tutorial.
Vierter Schritt — Authentifizierung mit öffentlichem Schlüssel hinzufügen (empfohlen)
Der nächste Schritt zur Sicherung Ihres Servers besteht darin, die Authentifizierung mit öffentlichem Schlüssel für Ihren neuen Benutzer einzurichten. Wenn Sie dies einrichten, wird die Sicherheit Ihres Servers erhöht, da für die Anmeldung ein privater SSH-Schlüssel erforderlich ist.
Schlüsselpaar generieren
Wenn Sie noch kein SSH-Schlüsselpaar haben, das aus einem öffentlichen und einem privaten Schlüssel besteht, müssen Sie eines generieren. Wenn Sie bereits über einen Schlüssel verfügen, den Sie verwenden möchten, fahren Sie mit dem Schritt Öffentlichen Schlüssel kopieren fort.
Um ein neues Schlüsselpaar zu generieren, geben Sie den folgenden Befehl am Terminal Ihres lokalen Computers ein:
- ssh-keygen
Angenommen, Ihr lokaler Benutzer heißt „localuser“, sehen Sie eine Ausgabe, die wie folgt aussieht:
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Drücken Sie return, um diesen Dateinamen und Pfad zu akzeptieren (oder geben Sie einen neuen Namen ein).
Als nächstes werden Sie aufgefordert, eine Passphrase einzugeben, mit der Sie den Schlüssel sichern können. Sie können entweder eine Passphrase eingeben oder die Passphrase leer lassen.
Hinweis: Wenn Sie die Passphrase leer lassen, können Sie den privaten Schlüssel für die Authentifizierung verwenden, ohne eine Passphrase einzugeben. Wenn Sie eine Passphrase eingeben, benötigen Sie sowohl den privaten Schlüssel als auch die Passphrase, um sich anzumelden. Das Sichern Ihrer Schlüssel mit Passphrasen ist sicherer, aber beide Methoden haben ihre Verwendung und sind sicherer als die grundlegende Passwortauthentifizierung.
Dies erzeugt einen privaten Schlüssel, id_rsa
, und einen öffentlichen Schlüssel, id_rsa.pub
, im .ssh
Verzeichnis des Heimatverzeichnisses des lokalen Benutzers. Denken Sie daran, dass der private Schlüssel nicht an Personen weitergegeben werden sollte, die keinen Zugriff auf Ihre Server haben sollten!
Öffentlichen Schlüssel kopieren
Nachdem Sie ein SSH-Schlüsselpaar generiert haben, möchten Sie Ihren öffentlichen Schlüssel auf Ihren neuen Server kopieren. Wir werden zwei einfache Möglichkeiten behandeln, dies zu tun.
Hinweis: Die ssh-copy-id
-Methode funktioniert auf DigitalOcean nicht, wenn während der Droplet-Erstellung ein SSH-Schlüssel ausgewählt wurde. Dies liegt daran, dass DigitalOcean die Kennwortauthentifizierung deaktiviert, wenn ein SSH-Schlüssel vorhanden ist, und ssh-copy-id
auf die Kennwortauthentifizierung angewiesen ist, um den Schlüssel zu kopieren.
Wenn Sie DigitalOcean verwenden und während der Droplet-Erstellung einen SSH-Schlüssel ausgewählt haben, verwenden Sie stattdessen Option 2.
Option 1: Verwenden Sie ssh-copy-id
Wenn auf Ihrem lokalen Computer das Skript ssh-copy-id
installiert ist, können Sie damit Ihren öffentlichen Schlüssel für jeden Benutzer installieren, für den Sie Anmeldeinformationen haben.
Führen Sie das Skript ssh-copy-id
aus, indem Sie den Benutzer und die IP-Adresse des Servers angeben, auf dem Sie den Schlüssel installieren möchten:
- ssh-copy-id [email protected]_IP_ADDRESS
Nachdem Sie Ihr Passwort an der Eingabeaufforderung eingegeben haben, wird Ihr öffentlicher Schlüssel zur .ssh/authorized_keys
-Datei des entfernten Benutzers hinzugefügt. Der entsprechende private Schlüssel kann nun zur Anmeldung am Server verwendet werden.
Option 2: Installieren Sie den Schlüssel manuell
Angenommen, Sie haben im vorherigen Schritt ein SSH-Schlüsselpaar generiert, verwenden Sie den folgenden Befehl am Terminal Ihres lokalen Computers, um Ihren öffentlichen Schlüssel zu drucken (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
Dies sollte Ihren öffentlichen SSH-Schlüssel drucken, der ungefähr wie folgt aussehen sollte:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
Wählen Sie den öffentlichen Schlüssel aus und kopieren Sie ihn in Ihre Zwischenablage.
Öffentlichen Schlüssel zu neuem Remote-Benutzer hinzufügen
Um die Verwendung des SSH-Schlüssels zur Authentifizierung als neuer Remote-Benutzer zu aktivieren, müssen Sie den öffentlichen Schlüssel einer speziellen Datei im Home-Verzeichnis des Benutzers hinzufügen.
Geben Sie auf dem Server als root
Benutzer den folgenden Befehl ein, um zum neuen Benutzer zu wechseln (ersetzen Sie Ihren eigenen Benutzernamen):
- su - demo
Jetzt befinden Sie sich im Home-Verzeichnis Ihres neuen Benutzers.
Erstellen Sie ein neues Verzeichnis mit dem Namen .ssh
und beschränken Sie seine Berechtigungen mit den folgenden Befehlen:
- mkdir .ssh
- chmod 700 .ssh
Öffnen Sie nun eine Datei in .ssh aufgerufen authorized_keys
mit einem Texteditor. Wir werden vi verwenden, um die Datei zu bearbeiten:
- vi .ssh/authorized_keys
Geben Sie den Einfügemodus ein, indem Sie i
drücken, und geben Sie dann Ihren öffentlichen Schlüssel ein (der sich in Ihrer Zwischenablage befinden sollte), indem Sie ihn in den Editor einfügen. Drücken Sie nun ESC
, um den Einfügemodus zu verlassen.
Geben Sie :x
und dann ENTER
ein, um die Datei zu speichern und zu beenden.
Beschränken Sie nun die Berechtigungen der authorized_keys-Datei mit diesem Befehl:
- chmod 600 .ssh/authorized_keys
Geben Sie diesen Befehl einmal ein, um zum root
Benutzer zurückzukehren:
- exit
Jetzt können Sie sich als neuer Benutzer mit dem privaten Schlüssel als Authentifizierung über SSH anmelden.Um mehr darüber zu erfahren, wie die Schlüsselauthentifizierung funktioniert, lesen Sie dieses Tutorial: So konfigurieren Sie die SSH-schlüsselbasierte Authentifizierung auf einem Linux-Server.
Fünfter Schritt — Konfigurieren des SSH-Daemons
Nachdem wir unser neues Konto haben, können wir unseren Server ein wenig sichern, indem wir die Konfiguration des SSH-Daemons (das Programm, mit dem wir uns remote anmelden können) ändern, um den Remote-SSH-Zugriff auf das Root-Konto zu verbieten.
Öffnen Sie zunächst die Konfigurationsdatei mit Ihrem Texteditor als root:
- vi /etc/ssh/sshd_config
Hier haben wir die Möglichkeit, die Root-Anmeldung über SSH zu deaktivieren. Dies ist im Allgemeinen eine sicherere Einstellung, da wir jetzt über unser normales Benutzerkonto auf unseren Server zugreifen und bei Bedarf Berechtigungen eskalieren können.
Um Remote-Root-Logins zu deaktivieren, müssen wir die Zeile finden, die so aussieht:
#PermitRootLogin yes
Hinweis: Um nach dieser Zeile zu suchen, geben Sie /PermitRoot
ein und drücken Sie dann ENTER
. Dies sollte den Cursor auf das Zeichen „P“ in dieser Zeile bringen.
Kommentieren Sie die Zeile aus, indem Sie das Symbol „#“ löschen (drücken Sie Shift-x
).Bewegen Sie nun den Cursor auf „Ja“, indem Sie c
drücken.
Ersetzen Sie nun „yes“, indem Sie cw
drücken und dann „no“ eingeben. Drücken Sie Escape
, wenn Sie mit der Bearbeitung fertig sind. Es sollte so aussehen:
PermitRootLogin no
Das Deaktivieren der Remote-Root-Anmeldung wird auf jedem Server dringend empfohlen!
Geben Sie :x
und dann ENTER
ein, um die Datei zu speichern und zu beenden.
SSH neu laden
Nachdem wir unsere Änderungen vorgenommen haben, müssen wir den SSH-Dienst neu starten, damit er unsere neue Konfiguration verwendet.
Geben Sie dies ein, um SSH neu zu starten:
- systemctl reload sshd
Bevor wir uns nun vom Server abmelden, sollten wir unsere neue Konfiguration testen. Wir möchten die Verbindung erst trennen, wenn wir bestätigen können, dass neue Verbindungen erfolgreich hergestellt werden können.
Öffnet ein neues Terminalfenster. Im neuen Fenster müssen wir eine neue Verbindung zu unserem Server herstellen. Dieses Mal möchten wir anstelle des Root-Kontos das neue Konto verwenden, das wir erstellt haben.
Für den Server, den wir oben konfiguriert haben, verbinden Sie sich mit diesem Befehl. Ersetzen Sie Ihre eigenen Informationen, wo es angebracht ist:
- ssh [email protected]_IP_ADDRESS
Hinweis: Wenn Sie PuTTY verwenden, um eine Verbindung zu Ihren Servern herzustellen, aktualisieren Sie unbedingt die Portnummer der Sitzung, um sie an die aktuelle Konfiguration Ihres Servers anzupassen.
Sie werden zur Eingabe des neuen Benutzerkennworts aufgefordert, das Sie konfiguriert haben. Danach werden Sie als neuer Benutzer angemeldet.
Denken Sie daran, wenn Sie einen Befehl mit Root-Rechten ausführen müssen, geben Sie „sudo“ wie folgt ein:
- sudo command_to_run
Wenn alles in Ordnung ist, können Sie Ihre Sitzungen beenden, indem Sie Folgendes eingeben:
- exit
Wohin von hier aus?
An diesem Punkt haben Sie eine solide Grundlage für Ihren Server. Sie können jetzt jede Software, die Sie benötigen, auf Ihrem Server installieren.
Wenn Sie sich nicht sicher sind, was Sie mit Ihrem Server machen möchten, lesen Sie das nächste Tutorial in dieser Serie, um weitere empfohlene Schritte für neue CentOS 7-Server zu erhalten. Es umfasst Dinge wie das Aktivieren von fail2ban
, um die Wirksamkeit von Brute-Force-Angriffen, grundlegenden Firewall-Einstellungen, NTP und Auslagerungsdateien zu verringern. Es enthält auch Links zu Tutorials, die Ihnen zeigen, wie Sie gängige Webanwendungen einrichten.
Wenn Sie nur erkunden möchten, werfen Sie einen Blick auf den Rest unserer Community, um weitere Tutorials zu finden. Einige beliebte Ideen sind die Konfiguration eines LAMP-Stacks oder eines LEMP-Stacks, mit dem Sie Websites hosten können.