Sichern des sshd

Sichern des sshd

Der vorinstallierte SSH Daemon (sshd) ist in der Grundkonfiguration unsicher. Um einen größeren Schutz zu gewährleisten, ist es nötig eine Schlüsselauthentifizierung zu integrieren.

1.0 Schlüsselpaar

1.1 Schlüsselpaar erzeugen

Zunächst legen wir unter Linux ein Schlüsselpaar an:

$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): /home/user/.ssh/id_ed25519

Wir werden aufgefordert, ein Passwort einzugeben. Dieser Vorgang ist wichtig, da nur die Kombination aus Schlüsseldatei und Passwort den Serverzugriff ermöglichen.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519.
Your public key has been saved in /home/user/.ssh/id_ed25519.pub.
The key fingerprint is:
35:9f:6e:c2:46:62:09:2d:dc:dd:1e:79:cc:56:d9:2b root@v05-s42

Mit id_ed25519.pub machen wir nun folgendes:

  1. umbenennen in authorized_keys
  2. verschieben in den Ordner .ssh
  3. Zugriffsberechtigungen setzen
mv id_ed25519.pub .ssh/authorized_keys
chmod 0700 .ssh
chmod 0600 .ssh/authorized_keys

Anschließend laden wir uns id_ed25519 lokal auf den Computer.

1.2 Sicheres Löschen des privaten Schlüssels

Wichtig ist es, id_ed25519 danach sicher zu löschen! (ggf. wipe installieren mit apt-get install wipe)

$ wipe id_ed25519
Okay to WIPE 1 regular file ? (Yes/No) yes
Operation finished.
1 file wiped and 0 special files ignored in 0 directories, 0 symlinks removed but not followed, 0 errors occured.

2.0 Putty Private Key

Nun laden wir uns puttygen.exe runter. Wir öffnen puttygen.exe und navigieren im Menü zu Conversion / Import Key. An dieser Stelle wählen wir den generierten private key aus, den wir uns auf unseren Computer geladen haben. Wir markieren EdDSA im unteren Bereich. Nun noch ein passendes Kommentar hinzufügen und wir können auf Save private key klicken.

Diesen Key mit der .ppk Endung brauchen wir zum späteren Login für putty. Diesen Key niemals auf den Server laden!

Login Test

Nun testen wir, ob die Verbindung mit dem erzeugten Schlüssel zustande kommt. Dazu öffnen wir putty.exe und tragen wie gewohnt den Hostnamen ein. Bevor wir nun auf open klicken, wechseln wir links in der Baumansicht auf Connection -> SSH -> Auth und geben unter private key file for authentication den Pfad zu unserem ppk file an. Nun auf open klicken. Wenn der Login erfolgreich war, und ohne Fehlermeldung, können wir die Passwort Autenthifizierung in unserem sshd komplett deaktivieren.

SSHd Konfiguration

Nun bearbeiten wir die SSHd Konfigurationsdatei

nano /etc/ssh/sshd_config
# Hier ist es sinnvoll einen Port oberhalb von 1024 zu nehmen
Port 22
 
# Unbedingt Protokoll 2 verwenden!
Protocol 2
 
# RSAAuthentication deaktivieren
RSAAuthentication no
 
# PubkeyAuthentication aktivieren
PubkeyAuthentication yes
 
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
 
# Wollen wir nicht
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
 
# Wollen wir erst recht nicht
PasswordAuthentication no #UNBEDINGT AUSKOMMENTIEREN UND AUF NO SETZEN!!!!
ChallengeResponseAuthentication no

SSHd Neustart

/etc/init.d/ssh restart

Hinweis

Die aktuelle SSH Sitzung wird nicht beendet. Um Konfigurationsfehler zu beheben sollte die aktuelle Sitzung offen bleiben, bis alles richtig funktioniert!

linux/ssh.txt · Zuletzt geändert: 2024/12/17 13:05
CC Attribution-Noncommercial-Share Alike 4.0 International