max. ConnectionAttempts bei SSH
Reiner
- webserver
Hallo zusammen,
wir haben in den letzten Tagen wiederholt Verbindungsversuche über SSH auf einem Server. Dabei werden (wahrscheinlich per Script mittels Lexikon?) allerhand Usernamen durchprobiert.
Obwohl es im Moment keinen Grund zur Besorgnis gibt, würde ich das gerne unterbinden.
Bei Webmin gibt es z.B. die Möglichkeit, bei mehr als X falschen Verbindungsversuchen, eine IP für Y Minuten zu sperren.
Gibt es dafür etwas bei ssh(d)?
Ich habe einen Schalter (ConnectionAttempts) gefunden, der sich aber wohl auf die Clientseite bezieht.
Ich würde zumindest die Versuchsrate drastisch senken wollen, d.h. die IP für 1h sperren, wenn mehr als drei Versuche fehlgeschlagen sind. Gibt es dafür ein Programm. Ansonsten müßte man wohl selbst die /var/log/messages im Auge behalten und auf die Harte Tour sshd abdrehen? ;-)
Oder gibt es vielleicht sogar eine elegantere Methode, daß man den Menschen auf eine Art Honeypot umleitet und Ihn da in die Irre führt?
Danke für jede Idee!
Gruß
Reiner
Hallo Reiner,
wir haben in den letzten Tagen wiederholt Verbindungsversuche über SSH auf einem Server. Dabei werden (wahrscheinlich per Script mittels Lexikon?) allerhand Usernamen durchprobiert.
Obwohl es im Moment keinen Grund zur Besorgnis gibt, würde ich das gerne unterbinden.
Bei Webmin gibt es z.B. die Möglichkeit, bei mehr als X falschen Verbindungsversuchen, eine IP für Y Minuten zu sperren.
Gibt es dafür etwas bei ssh(d)?Ich habe einen Schalter (ConnectionAttempts) gefunden, der sich aber wohl auf die Clientseite bezieht.
Ich würde zumindest die Versuchsrate drastisch senken wollen, d.h. die IP für 1h sperren, wenn mehr als drei Versuche fehlgeschlagen sind. Gibt es dafür ein Programm. Ansonsten müßte man wohl selbst die /var/log/messages im Auge behalten und auf die Harte Tour sshd abdrehen? ;-)
Oder gibt es vielleicht sogar eine elegantere Methode, daß man den Menschen auf eine Art Honeypot umleitet und Ihn da in die Irre führt?
Braucht ihr denn den SSH-Login?
Wenn nein kann man SSH ja deaktivieren. Da SSH aber ein relativ gutes Tool ist, hier meine Vorschläge:
Ein "man sshd_config" in der Kommandozeile bzw. ein "man:/sshd_config" im Konqueror bringt dich zu der Beschreibungsseite, wie man den SSH-Dämon einstellen kann.
Interessante Punkte:
1. MaxAuthTries
Specifies the maximum number of authentication attempts permitted per connection. Once the number of failures reaches half this value, additional failures are logged. The default is 6.
2. Port
Specifies the port number that sshd listens on. The default is 22. Multiple options of this type are permitted. See also ListenAddress
3. AllowUsers
This keyword can be followed by a list of user name patterns, separated by spaces. If specified, login is allowed only for user names that match one of the patterns. \*' and
?' can be used as wildcards in the patterns. Only user names are valid; a numerical user ID is not recognized. By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts.
4. PermitRootLogin
Specifies whether root can login using ssh(1). The argument must be yes''
without-password'' forced-commands-only'' or
no'' The default is ``yes''
If this option is set to ``without-password'' password authentication is disabled for root. Note that other authentication methods (e.g., keyboard-interactive/PAM) may still allow root to login using a password.
If this option is set to ``forced-commands-only'' root login with public key authentication will be allowed, but only if the command option has been specified (which may be useful for taking remote backups even if root login is normally not allowed). All other authentication methods are disabled for root.
If this option is set to ``no'' root is not allowed to login.
Erst mal wäre ein anderer Port (eventuell ein sehr hoher) angebracht, da der Default-Port 22 sofort als SSH-Server erkannt werden kann. Hiermit müssen die Angreifer erst mal einen Portscan durchführen, und dann wissen sie auch erst mal nicht was für ein Server diesen Port überhaupt bedient. Über AllowUsers kannst du einstellen, welche Usernamen überhaupt eingeloggt werden dürfen - mit PermitRootLogin und dem Wert "no" kannst du das einloggen via root auch unterbinden, man kann sich ja dann einen etwas komplizierteren Usernamen überlegen, über den man dann via "su" auf root wechselt - z.B. "hZuIk".
Ich denke mit den gegebenen Variablen kann man schon eine sehr hohe Sicherheit erlangen.
Bis dann!
Marc Reichelt || http://www.marcreichelt.de/