SSH (Secure Shell) ist ein sicheres Netzwerkprotokoll, das auf der Client-Server-Architektur basiert und Ihnen den sicheren Zugriff auf entfernte Computer/Server über das Netzwerk ermöglicht.
SSH wird häufig von Systemadministratoren für die Verbindung zu Remote-Servern verwendet. Dadurch können Administratoren Server und Anwendungen jederzeit und überall einfach und sicher aus der Ferne verwalten.
In diesem Leitfaden zeige ich Ihnen, wie Sie SSH auf CentOS/RHEL-Systemen einrichten und aktivieren. Wenn SSH auf diesem CentOS-System aktiviert ist, sollten Sie über seine IP-Adresse von anderen Computern aus auf dieses System zugreifen können.
Dieses Tutorial enthält auch die Schritte zum Ändern des Standard-SSH-Ports, zum Deaktivieren der SSH-Anmeldung für den Root-Benutzer und zum Einrichten von firewalld zum Sichern Ihres SSH-Servers.
Um diesen Leitfaden abzuschließen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
- Ein CentOS/RHEL-Linux-System. Sie können es auf Ihrer physischen Maschine/echter Hardware installieren oder die virtuelle Maschine über KVM/VirtualBox verwenden oder Drittanbieter-Cloud-Anbieter wie Linode verwenden (aber sie haben normalerweise bereits SSH aktiviert).
- Ein Nicht-Root-Benutzer mit sudo/root-Berechtigungen. Dieser Benutzer wird zum Ändern Ihres Systems verwendet. Und am Ende kann dieser Benutzer verwendet werden, um sich bei Ihrem Server anzumelden.
Installieren von OpenSSH-Paketen
OpenSSH ist eine der beliebtesten Softwareimplementierungen des SSH-Protokolls. Es wird von Millionen von Linux-Servern verwendet und wird zu einem kritischen Bestandteil der Serverumgebung. Standardmäßig ist OpenSSH in den meisten Linux-Distributions-Repositories verfügbar, einschließlich CentOS- und RHEL-Systemen.
Bevor Sie beginnen, aktualisieren Sie Ihren Paketindex mit dem DNF-Paketmanager wie unten beschrieben.
sudo dnf check-update
Installieren Sie als Nächstes OpenSSH-Pakete auf den CentOS/RHEL-Systemen mit dem folgenden Befehl. Dieser Befehl installiert OpenSSH-Serverpakete sowie OpenSSH-Clientsoftware.
sudo dnf install openssh-server openssh-clients -y
Führen Sie nach Abschluss der OpenSSH-Installation den folgenden Befehl aus, um sshd
zu starten Dienst und aktivieren Sie ihn so, dass er beim Systemstart automatisch gestartet wird.
sudo systemctl enable --now sshd
Überprüfen Sie nun die sshd
Dienststatus, indem Sie den folgenden Befehl ausführen.
sudo systemctl status sshd
Sie erhalten eine Ausgabe wie im folgenden Screenshot. Die sshd
Dienst ist active (running)
.
SSH-Server konfigurieren
Standardmäßig ist die SSH-Konfiguration unter /etc/ssh
verfügbar Verzeichnis, und die Hauptkonfigurationsdatei ist sshd_config
. Diese Datei enthält einige grundlegende SSH-Konfigurationen, wie z. B. ListenAddress
das bestimmt die IP-Adresse des laufenden SSH-Dienstes, Port
zum Einrichten des SSH-Dienstports, Authentifizierungsmethoden und vielem mehr.
In diesem Abschnitt ändern Sie die Konfiguration sshd_config
, ändern Sie dann den Standard-SSH-Port und deaktivieren Sie die Anmeldung für den Root-Benutzer.
Diese Einstellung wird aus Sicherheitsgründen empfohlen, um die Serversicherheit zu erhöhen und Brute-Force-Angriffe auf Ihren Server zu reduzieren.
Öffnen Sie nun die Datei sshd_config
mit vi
Editor oder Ihren bevorzugten Editor.
sudo vi /etc/ssh/sshd_config
Bevor Sie mit der Bearbeitung der Datei beginnen, müssen Sie wissen, dass Zeilen mit #
beginnen und Leerzeilen werden als Kommentar interpretiert.
Ändern Sie oben in der Zeile den Standard-SSH-Port von 22
zu Ihrem bevorzugten Hafen. Dieses Tutorial verwendet den nicht standardmäßigen Port 2028
für SSH.
Port 2028
⚠️Bitte stellen Sie sicher, dass Sie einen Nicht-Root-Benutzer mit bereits aktiviertem sudo-Zugriff auf diesem System haben. Andernfalls können Sie sich möglicherweise nicht remote bei Ihrem Server anmelden, wenn Sie die Root-Anmeldung deaktivieren.
Ändern Sie als Nächstes die Option PermitRootLogin yes
auf PermitRootLogin no
. Dadurch wird die SSH-Anmeldung für den Benutzer root
deaktiviert Benutzer. Optional können Sie #
hinzufügen am Anfang der Zeile PermitRootLogin
.
PermitRootLogin no
Speichern und schließen Sie die Datei.
Nachdem Sie Änderungen vorgenommen haben, überprüfen Sie die SSH-Konfiguration und starten Sie dann sshd
neu Dienst.
sshd -t
sudo systemctl restart sshd
Jetzt können Sie sich mit Ihrem SSH-Server verbinden, indem Sie ssh
ausführen Befehl unten.
ssh [email protected] -p PORT
Das -p
Option wird verwendet, um den Port Ihres SSH-Servers anzugeben.
In diesem Abschnitt haben Sie die grundlegende Konfiguration zum Sichern des SSH-Servers abgeschlossen, indem Sie den Standard-SSH-Port geändert und die Anmeldung für root
deaktiviert haben Benutzer. Außerdem haben Sie gelernt, sich mit einem nicht standardmäßigen Port mit dem SSH-Server zu verbinden. Als Nächstes installieren und konfigurieren Sie firewalld.
Installieren und Konfigurieren von Firewalld
Wenn Sie den CentOS/RHEL-Server im öffentlichen Internet verwenden, z. B. einen Cloud-Server, müssen Sie möglicherweise die Firewall aktivieren. Dies erhöht die Sicherheit Ihres Servers, indem der Zugriff nur auf bestimmte Dienste wie SSH, HTTP und HTTPS beschränkt wird. Bei einer CentOS/RHEL-basierten Distribution ist firewalld das standardmäßige Firewall-Paket, das Sie auf Ihrem System installieren können.
In diesem Abschnitt installieren Sie firewalld und richten seine offenen Ports für Ihren SSH-Server ein.
Um Firewalld zu installieren, führen Sie dnf
aus Befehl unten.
sudo dnf install firewalld -y
Starten und aktivieren Sie nach Abschluss der Firewalld-Installation die firewalld
Service. Überprüfen Sie dann seinen Status, indem Sie den folgenden Befehl ausführen.
sudo systemctl enable --now firewalld
sudo systemctl status firewalld
Sie erhalten eine ähnliche Ausgabe wie im folgenden Screenshot. Die firewalld
Dienst ist active (running)
.
Für die Interaktion mit Firewalld können Sie den Befehl firewall-cmd
verwenden . Es ist die Befehlszeilenschnittstelle zum Verwalten von Firewalld-Regeln. Sie können firewall-cmd
verwenden um Firewall-Regeln hinzuzufügen, zu entfernen und zu ändern. Und es gibt noch viel mehr, was Sie mit firewall-cmd
tun können .
Um nun den benutzerdefinierten SSH-Port zu Ihrem System hinzuzufügen, führen Sie firewall-cmd
aus Befehl unten.
sudo firewall-cmd --add-port=2028/tcp --permanent
Sie erhalten die Ausgabe success
, was bedeutet, dass der Vorgang erfolgreich und abgeschlossen ist.
Dieses Beispiel verwendet den Port 2028
als benutzerdefinierten SSH-Port. und der SSH-Dienst läuft auf dem TCP-Port, also müssen Sie den Port und das Protokoll wie 2028/tcp
angeben . Die Option --permanent
macht diese Regel dauerhaft.
Als nächstes laden Sie die Firewall-Regeln neu, um eine neue Konfiguration mit dem folgenden Befehl anzuwenden.
sudo firewall-cmd --reload
Sie haben den benutzerdefinierten SSH-Port zu firewalld hinzugefügt. Führen Sie den folgenden Befehl aus, um alle aktivierten Regeln aufzulisten.
sudo firewall-cmd --list-all
Jetzt sehen Sie eine Liste der aktivierten Regeln in firewalld. Die Dienste SSH, Cockpit und dhcp sind standardmäßig aktiviert.
Um die Standard-SSH-Regel zu entfernen, führen Sie firewall-cmd
aus Befehl unten. Laden Sie dann die Firewall-Regeln erneut.
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
Jetzt haben Sie die Installation und Konfiguration von firewalld abgeschlossen, um Ihren SSH-Server zu sichern.
Schlussfolgerung
In diesem Handbuch haben Sie die Installation und Konfiguration von SSH auf dem CentOS/RHEL-System abgeschlossen. Sie haben Ihren SSH-Server gesichert, indem Sie den Standardport geändert und die Anmeldung für root
deaktiviert haben Benutzer. Außerdem haben Sie die Firewalld-Installation und -Konfiguration auf dem CentOS/RHEL-System abgeschlossen, um den SSH-Server zu sichern.
Lassen Sie uns wissen, wenn Sie Fragen haben.