SSH ist ein kritischer Dienst, wird dieser geknackt haben Angreifer volle Kontrolle über Ihren
dann kompromittierten Server. Daher ist es ratsam diesen Dienst vernünftig abzusichern.
In diesem Artikel lege ich Ihnen einige Tipps nahe an welchen Sie sich bei der Konfiguration orientieren können.
sshd_config anpassen
nano /etc/ssh/sshd_config
# direkten root login nicht ermöglichen PermitRootLogin no # niemals auf yes setzen, da andernfalls ein login auch mit Konten ohne Passwort möglich ist PermitEmptyPasswords no # sollten NUR Private-Keys zur Authentifizierung am SSH-Daemon verwendet werden, ist das Deaktivieren von Passwort-Logins eine gute Sache PasswordAuthentication no # Keine Informationen über die Distribution im Port-Banner vom SSH-Dienst anzeigen DebianBanner no
Cracklib installieren
Cracklib ist eine Library die es ermöglicht, eine mindestlänge für Kennwörter einzelner Benutzer festzulegen.
Dies ist sehr ratsam gerade bei Servern, um das verwenden von schwachen Kennwörtern zu vermeiden.
apt-get install libpam-cracklib nano /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 difok=3 minlen=16
Diese Zeile verrät uns 3 Informationen.
retry = Anzahl der maximalen Loginversuche
difok = Wieviele Zeichen müssen sich zum letzten Kennwort unterscheiden, damit bei einem
Passwortwechsel das neue Kennwort akzeptiert wird.
minlen = Mindestlänge des Passworts
Anschließend nach der Änderung der angegebenen Parameter auf die gewünschte Konfiguration muss
das Dokument anschließend gespeichert werden.
[AdSense-A]
Begrenzung von SSH auf einzelne IP-Adressen oder Netze
Sollten statische IP-Adressen oder Netze zur Verfügung stehen, ist es
ratsam den Login über SSH auf einzelne Adressen zu begrenzen.
Dazu sollten zuerst die IP-Adressen von denen ein Zugriff ermöglich werden soll whitelisted werden:
nano /etc/hosts.allow
sshd : localhost : allow # localhost whitelisten sshd: 192.168.0.0/255.255.255.192 # netz whitelisten sshd : 1.2.3.4 # sonstige ip-adresse whitelisten
Anschließend müssen alle anderen Adressen die nicht in der hosts.allow aufgeführt sind
blacklisted werden:
nano /etc/hosts.deny
sshd: ALL EXCEPT LOCAL
Diese Zeile sagt aus, dass ein Login via SSH nur mit den lokalen Benutzern möglich ist,
alle anderen Anfragen werden verweigert, außer denen die in der hosts.allow zusätzlich dazu stehen.
Weiterführende Links
http://www.rz.uni-wuerzburg.de/dienste/it_sicherheit/sshlinux/absichern_des_zugangs/