SSH-Server
Aus Fedorawiki.de
Es gibt diverese Konfigurationsmöglichkeiten, um einen SSH-Server sicherer zu machen. Die dazu zu bearbeitende Datei ist, wenn nicht anders angegeben, /etc/ssh/sshd_config. Um diese Datei zu bearbeiten, muss man root sein!
Inhaltsverzeichnis |
root bleibt außen vor
root darf sich nicht von außen einloggen. Werden aber entsprechende Rechte benötigt, kann man sich mit einem Nutzer einloggen und den Rest mit su erledigen. Die nötige Einstellung lautet:
PermitRootLogin no
keine leeren Passwörter
Diese Einstellung verhindert, dass sich Nutzer einloggen dürfen, die ein Passwort der Länge null haben
PermitEmptyPasswords no
nur Protokoll Version 2
SSH existiert in zwei Protokollen, wovon das erste unter bestimmten Bedingungen unsicher sein kann (man-in-the-middle Angriff möglich). Deswegen sollte man nur das zweite verwenden:
Protocol 2
Einloggen begrenzen
Man kann auf verschiedene Art- und Weisen den Login begrenzen.
Nur bestimmte Nutzer
Man kann das System so konfigurieren, dass nur explizit angegebene Nutzer erlaubt sind.
AllowUsers foo bar whatever
Alle anderen Nutzer werden so ausgesperrt.
Nur bestimmte Gruppen
Alternativ zur Auflistung sämtlicher Benutzer kann auch eine Liste von Gruppen angegeben werden.
AllowGroups sshusers
Damit werden Benutzer welche nicht der Gruppe "sshuser" angehören ausgesperrt.
Nur begrenzte Versuchszahl
Die Option
MaxAuthTries 4
erlaubt pro Verbindung nur 4 Login-Versuche, nicht mehr. Dies blockt überzählige Login-Versuche.
Authentifizierung mit einer Schlüsseldatei
Man kann die Authentifizierung auch mit Schlüsseln durchführen. Vorteil ist hier, dass man die Passwörter nicht mehr eingeben braucht. Die entsprechende Option in /etc/ssh/sshd_config lautet
PubkeyAuthentication yes
Darüber hinaus muss noch der öffentliche Teil des Login-Schlüssels des Clients, der dort unter ~/.ssh/id_dsa.pub liegt, auf dem Server in einer definierten Datei hinterlegt werden. Dies geht zum Beispiel mit
cat id_dsa.pub >> ~/.ssh/authorized_keys
Der Schlüssel wird so an eventuell schon existierende Schlüssel angehängt. Wurde so der öffentliche Anteil des Schlüssels an die richtige Stelle kopiert, fehlt noch die folgende Einstellung in /etc/ssh/sshd_config:
AuthorizedKeysFile %h/.ssh/authorized_keys
Danach kann man sich mit jedem Computer, auf dem der entsprechende Nutzer vorhanden ist und der den privaten Anteil des Schlüssels unter ~/.ssh/id_dsa bereit hält, auf dem Server anmelden, ohne ein Passwort einzugeben.
Schaltet man dann noch die Passwort-Authentifizierung ab, kann man sich nur noch mit einem Schlüssel anmelden:
PasswordAuthentication no
| |
Achtung: Diese Option sollte man erst setzen, wenn der Login mit dem Schlüssel einwandfrei funktioniert, und man eine Sicherung des privaten Teils des Schlüssels erstellt hat! |
Ersten Kontakt erschweren
Es ist auch möglich, den Server zumindest für automatisierte Zugriffe zu verstecken. Dazu lässt man ihn nicht mehr auf dem Standardport 22 lauschen, sondern z.B. auf dem Port 222
Port 222
Jeder Nutzer kann sich jetzt immer noch mit
ssh -p 222 hostname
anmelden, alle automatisierten Zugriffe, die auf den Standardport 22 abzielen, laufen aber ins Leere.