OpenSSH-Server konfigurieren
Installieren Sie die OpenSSH-Serverpackages, und optimieren Sie systemweite und benutzerspezifische SSH-Einstellungen.
Um den SSH-Server einzurichten, installieren Sie die Packages openssh und openssh-server, und aktivieren Sie den sshd-Service. Anschließend können Sie Einstellungen in den Konfigurationsdateien im Verzeichnis /etc/ssh bearbeiten.
OpenSSH-Server installieren und sshd aktivieren
Installieren Sie die OpenSSH-Serverpackages, und konfigurieren Sie den SSHd-Service zum Starten.
Eine Oracle Linux-Standardinstallation umfasst die Packages openssh und openssh-server. Der sshd-Service ist jedoch nicht standardmäßig aktiviert.
-
Wenn die Packages nicht installiert sind, führen Sie den folgenden Befehl aus:
sudo dnf install openssh openssh-server -
Starten Sie den Service
sshd, und konfigurieren Sie ihn so, dass er nach jedem Neustart gestartet wird:sudo systemctl start sshd sudo systemctl enable sshd
Sie können sshd-Konfigurationsoptionen für Features wie Kerberos-Authentifizierung, X11-Weiterleitung und Portweiterleitung in der Datei /etc/ssh/sshd_config festlegen. Weitere Informationen finden Sie in den Handbuchseiten sshd(8) und sshd_config(5).
Mit OpenSSH-Serverkonfigurationsdateien arbeiten
Prüfen Sie die Schlüsselserverkonfigurationsdateien in /etc/ssh und ihre Zwecke.
Um bestimmte OpenSSH-Einstellungen zu konfigurieren, bearbeiten Sie die globalen Konfigurationsdateien im Verzeichnis /etc/ssh. Beispiele für Dateien in diesem Verzeichnis sind:
-
modulispeichert Schlüsselaustauschinformationen, die zum Einrichten sicherer Verbindungen verwendet werden. -
ssh_configstellt Standardclientkonfigurationseinstellungen bereit, die von der Datei$HOME/.ssh/configeines Benutzers außer Kraft gesetzt werden können. -
ssh_host_ed25519_keyspeichert den ed25519-Private Key für SSH2. Oracle Linux 10 generiert diesen Schlüssel standardmäßig. -
In
ssh_host_ed25519_key.pubwird der öffentliche ed25519-Schlüssel für SSH2 gespeichert. Oracle Linux 10 generiert diesen Schlüssel standardmäßig. -
ssh_host_rsa_keyspeichert den RSA-Private Key für SSH2. -
In
ssh_host_rsa_key.pubwird der RSA-Public Key für SSH2 gespeichert. -
sshd_configspeichert Konfigurationseinstellungen für densshd-Service.Hinweis
Bei Oracle Linux 8 oder höher überschreiben Dateien, die im Verzeichnis
/etc/ssh/sshd_config.dgespeichert sind, alle Einstellungen, die in der Konfigurationsdatei/etc/ssh/sshd_configdefiniert sind.
Sie können andere Dateien im Verzeichnis /etc/ssh konfigurieren. Weitere Informationen finden Sie auf der Manpage sshd(8).
Weitere Informationen finden Sie in den Handbuchseiten ssh_config(5), sshd(8) und sshd_config(5).
Zugriff auf SSH-Verbindungen einschränken
Verwenden Sie Konfigurationsbeispiele, um den SSH-Zugriff, die Authentifizierung und die Sessions im Leerlauf zu begrenzen.
Die Secure Shell (SSH) bietet geschützte, verschlüsselte Kommunikation mit anderen Systemen. Deaktivieren Sie SSH, wenn Sie keinen Remotezugriff benötigen. Bearbeiten Sie andernfalls die Datei /etc/ssh/sshd_config, um die Verbindung der Clients einzuschränken.
Nachdem Sie die Änderungen an der Konfigurationsdatei übernommen haben, müssen Sie den Service sshd neu starten, sodass die Änderungen wirksam werden.
Beschränken Sie den Root-Zugriff. Setzen Sie PermitRootLogin auf no, damit sich root nicht mit SSH anmelden kann. Erhöhen Sie anschließend die Berechtigungen eines Benutzers nach der Anmeldung.
PermitRootLogin no
Bestimmte Benutzer einschränken. Begrenzen Sie den Remotezugriff auf ausgewählte Benutzer und Gruppen, indem Sie die Einstellungen AllowUsers, AllowGroups, DenyUsers und DenyGroups angeben. Beispiel: Fügen Sie Zeilen wie die folgenden hinzu:
DenyUsers carol dan
AllowUsers alice bob
Weitere Informationen zum Konfigurieren von Benutzern und Gruppen finden Sie unter einem der folgenden Links:
-
Oracle Linux 8: Systembenutzer und Authentifizierung einrichten
-
Oracle Linux 9: Systembenutzer und Authentifizierung einrichten
-
Oracle Linux 10: Systembenutzer und Authentifizierung einrichten
Legen Sie eine Timeoutperiode fest. Die Einstellungen ClientAliveInterval und ClientAliveCountMax führen dazu, dass der SSH-Client nach einem Inaktivitätszeitraum automatisch wegen Timeout abgebrochen wird. Beispiel: Fügen Sie Zeilen hinzu, die folgenden ähneln:
# Disconnect client after 300 seconds of inactivity
ClientAliveCountMax 0
ClientAliveInterval 300
Passwortauthentifizierung deaktivieren. Die Einstellungen PasswordAuthentication und PubkeyAuthentication definieren die Authentifizierungsmethode, die der SSH-Client für Benutzer implementiert: entweder mit einem Kennwort oder mit einem SSH-Public Key. Wenn Sie die schlüsselbasierte Authentifizierung konfiguriert haben, die sicherer ist, können Sie PasswordAuthentication deaktivieren, indem Sie sie auf no setzen. Um die aktuelle Einstellung PasswordAuthentication auf einem Server zu prüfen, führen Sie den folgenden Befehl aus:
sudo grep -R PasswordAuthentication /etc/ssh
Weitere Informationen finden Sie im Handbuch sshd_config(5).
OpenSSH-Server für den Benutzerzugriff konfigurieren
Verwalten Sie benutzerspezifische SSH-Dateien in $HOME/.ssh, um den Zugriff auf dem Server zu kontrollieren.
Die benutzerspezifische Konfiguration auf der Serverseite einer Verbindung befindet sich im Verzeichnis $HOME/.ssh und enthält in der Regel die folgenden Dateien:
-
authorized_keysspeichert die autorisierten PublicKeys für einen Benutzer. Der Server verwendet den signierten Public Key in dieser Datei zur Authentifizierung eines Clients. -
environmentdefiniert optionale Umgebungsvariablen. -
rcdefiniert optionale Befehle, die ssh ausführt, wenn sich ein Benutzer anmeldet, bevor die Shell oder der Befehl des Benutzers ausgeführt wird.
Weitere Informationen finden Sie in den Handbuchseiten ssh(1) und ssh_config(5).
SSH-Schlüsselzugriff auf bestimmte Befehle einschränken
Beschränken Sie die Verwendung einzelner SSH-Schlüssel, indem Sie Optionen in authorized_keys hinzufügen.
Sie können benutzerspezifische Konfigurationen auf der Serverseite einer Verbindung hinzufügen, indem Sie die Datei $HOME/.ssh/authorized_keys bearbeiten. Neben der Auflistung von SSH-Schlüsseln, mit denen sich ein Benutzer authentifizieren kann, können Sie optional weitere Einschränkungen hinsichtlich der Möglichkeiten des Benutzers für jeden dieser Schlüssel festlegen.
Beispiel: Die Option command gibt einen einzelnen Befehl an, der für alle Verbindungen ausgeführt werden soll, die mit einem Schlüssel hergestellt wurden. Danach endet der Befehl sofort.
command=command ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...
Mit der Option command können sicherheitsbewusste Benutzer den Zugriff auf einen Schlüssel einschränken, der für skriptbasierte Aktionen verwendet werden kann und möglicherweise nicht durch Passphrase geschützt ist.
Sie können auch sicherstellen, dass der Schlüssel nur akzeptiert wird, wenn die eingehende Verbindung aus dem internen Netzwerk stammt, indem Sie mit der Option from einen autorisierten Bereich von IPv4-Adressen festlegen. Beispiel: Um zu verhindern, dass IP-Adressen außerhalb des Bereichs 192.0.2.0/24 eine Verbindung mit einem SSH-Schlüssel herstellen, hängen Sie die folgende Zeile mit dem richtigen key-Wert an die Datei $HOME/.ssh/authorized_keys an:
from=192.0.2.0/24 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...
Weitere Informationen finden Sie im Handbuch sshd(8).
Good Practice-Empfehlungen zur Konfiguration von OpenSSH-Servern
Befolgen Sie die empfohlenen Einstellungen, um OpenSSH-Server vor häufigen Angriffen zu schützen.
Wir empfehlen die folgenden Richtlinien, um die OpenSSH-Konfiguration gegen die gängigsten Remote-Exploits zu sichern:
-
Deaktivieren Sie Remote-Root-Benutzeranmeldungen über SSH.
-
Nachdem Sie die schlüsselbasierte Authentifizierung korrekt konfiguriert haben, deaktivieren Sie die SSH-Kennwortauthentifizierung.
-
Sie sollten einen nicht standardmäßigen SSH-Port für internetseitige Systeme festlegen.
Weitere Informationen finden Sie unter Zugriff auf SSH-Verbindungen einschränken.