Wie kann ich den SSH-Dienst auf meinem Linux Server absichern?
In diesem Artikel beschreiben wir die Möglichkeit den SSH-Dienst auf Ihrem Linux Server abzusichern am Beispiel eines OpenSSH Servers.
Einen Nutzer zugehörig zur Gruppe users und mit einem Heimatverzeichnis in /home anlegen:
useradd -g users -d /home/[nutzername] -s /bin/bash [nutzername]
passwd [nutzername]
mkdir /home/[nutzername]
chown [nutzername]:users /home/[nutzername]/
Das Login für den Nutzer root verbieten
Nachdem Sie im ersten Schritt einen weiteren Nutzer angelegt haben, ist es sinnvoll das Login für den Nutzer root komplett zu deaktivieren.• Wie erzeuge ich eine Verbindung zu meinem Dedi-Server über die RemoteConsole?
Ändern Sie in der Datei /etc/ssh/sshd_config die Zeile
PermitRootLogin yes
in
PermitRootLogin no
/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)
Nach erfolgreicher Eingabe des Passwortes können Sie nun in gewohnter Art und Weise fortfahren als Administrator (root) zu arbeiten.
Das Login nur noch via PubKeyAuthentication erlauben
- Sie erstellen das nötige Schlüsselpaar (privater und öffentlicher Schlüssel)
- Sie legen im Heimatverzeichnis von [nutzername] ein Verzeichnis namens .ssh für den öffentlichen Schlüssel an
- Sie laden den öffentlichen Schlüssel auf den Server in das neu erstellte Verzeichnis
- Sie erlauben zusätzlich die Public Key Authentifizierung
- Sie testen die Funktionalität der Public Key Authentifizierung
- Sie stellen den SSH-Dienst komplett um auf ausschliessliche Public Key Authentifizierung
Erstellung der Schlüssel auf einem Linuxsystem, oder auch Mac OS X System
ssh-keygen -t dsa
Durch diesen Prozess werden zwei Schlüsseldateien angelegt:
Your identification has been saved in /home/[nutzername]/.ssh/id_dsa
Your public key has been saved in /home/[nutzername]/.ssh/id_dsa.pub
2. Laden des öffentlichen Schlüssels auf den Zielserver mittels SecureCopy
Mit der folgenen Eingabe laden Sie von einem Linux, oder MacOS X Rechner die öffentliche Schlüsseldatei (id_dsa.pub) unter neuem Dateinamen authorized_keys in das Verzeichnis .ssh/ des neuen Nutzers:
scp ~/.ssh/id_dsa.pub [nutzername]@Ihr_Servername.tld:.ssh/authorized_keys
3. Prüfen ob Public Key Authentifizierung bereits auf dem Zielserver erlaubt ist und ggf. einrichten
Wir empfehlen die folgende Vorgehensweise:
Ändern Sie in der Datei /etc/ssh/sshd_config ggf. die Zeile
PubkeyAuthentication no
in
PubkeyAuthentication yes
Nun ist es noch nötig die Konfigurationsdateien des Dienstes neu einzulesen:
/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)
4. Es gilt nun zu prüfen, ob die Public Key Authentifizierung auch funktioniert
Mit der folgenden Eingabe bauen Sie von einem Linux, oder MacOS X Rechner eine SSH-Verbindung zu Ihrem Server auf, geben den privaten Key an und werden lediglich nach dem Passwort für Ihre lokale Schlüsseldatei gefragt:
ssh -i ~/.ssh/id_dsa -l [nutzername] Ihr_Servername.tld
5. Nach erfolgreichem Login können Sie das Authentifizierungsverfahrens komplett auf SSH Public Key Authentifizierung umstellen.
Wir empfehlen die folgende Vorgehensweise:
Ändern Sie in der Datei /etc/ssh/sshd_config ggf. die Zeile
PasswordAuthentication yes
in
PasswordAuthentication no
und die Zeile
ChallengeResponseAuthentication yes
in
ChallengeResponseAuthentication no
Nun ist es noch nötig die Konfigurationsdateien des Dienstes neu einzulesen:
/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)
Erstellung der Schlüssel auf einem Windowssystem
1. Schlüsselgenerierung
Unter Windows verwendet man zum Key-Management das Tool Puttygen. Dieses können Sie sich auf der Putty-Homepage herunterladen.
Um einen Key zu erzeugen, wählt man unten den Keytyp (meistens SSH2, RSA oder DSA), trägt die Schlüssellänge in bits ein und klickt anschließend den Button Generate an. Über Mausbewegungen werden dabei Zufallswerte gesammelt, d. h. die Generierungsleiste füllt sich nur dann, wenn Sie Ihre Maus bewegen.
Ist der Key erzeugt, geben Sie bitte im Feld Key passphrase noch ein persönliches Passwort ein, welchen im Feld Confirm passphrase bestätigt werden muss.
Die weiteren Schritte entsprechen der unter den Punkten 3 bis 5 beschriebenen Weise. Für den Upload des öffentlichen Schlüssels in das Verzeichnis ~/.ssh/ empfehlen wir das Programm WinSCP.
Wenn Sie WinSCP verwenden, werden Sie beim ersten Connect mit Ihrem Server aufgefordert, einen Authentifizierungsschlüssel zu akzeptieren oder abzulehnen. Akzeptieren Sie diesen Schlüssel. Hierdurch weiß Ihr lokaler Client bei den darauf folgenden Connects, dass Ihr Server auch tatsächlich Ihr Server ist, und kein anderer.