freeSSHd Security: Work in Progress

05.04.2010 yahe administration code legacy windows

Auf meinem Heimserver laufen freeSSHd und freeFTPd eigentlich ohne Probleme, wenn da nicht die Angriffe von außen wären. Allein in den letzten 1,5 Monaten wurde eine Million mal versucht, in meinen SSH-Server einzubrechen. Nochmal knapp 500.000 Einbruchsversuche gingen auf das Konto des FTP-Servers. Bisher war das noch kein Problem, aber ich würde doch gerne Gegenmaßnahmen ergreifen. Glücklicherweise bieten beide Server eine Möglichkeit, IP-Adressen zu blocken. Zudem wird in den Log-Dateien der Server protokolliert, wenn ein Benutzer versucht hat, sich mit falschen Daten (Benutzername oder Passwort) einzuloggen. Auf dieser Basis habe ich das Tool fsshdsec gebaut, das das Erstellen der Blockliste automatisiert.

freeSSHd Oberfläche

Auf dem Screenshot kann man erkennen, wo was eingestellt sein muss, damit die IPs in dem großen Feld ausgesperrt werden. Sowohl die Einstellung "Refuse these IP addresses" als auch die eigentliche Liste können über die *.ini-Datei des Servers verwaltet werden. Im Bereich "Access filtering" der *.ini-Datei gibt es den Wert "HostRestrictions", in dem die Liste der geblockten IPs stehen. Wenn der Wert "HostRestrictionsAllow" auf null ("0") gesetzt ist, ist allen IPs der Zugriff auf den Server verboten. Zum erneuten Einlesen der Daten ist leider ein Neustart des Servers erforderlich. Den Neustart kann man am einfachsten realisieren, wenn der Server als Windows-Dienst installiert worden ist, denn dann kann man ihn über die Diensteverwaltung problemlos stoppen und wieder starten. Bei der Liste der gesperrten IP-Adressen gibt es hingegen leider ein größeres Problem.

freeSSHd \*.ini-Datei

In beiden Screenshots habe ich den letzten Eintrag in der Liste der geblockten IPs markiert. Wie man sieht, stehen in der *.ini-Datei mehr Einträge, als in der Oberfläche angezeigt werden. Wie es scheint, kann der Server nur maximal 2kb an Daten verarbeiten, der Rest wird einfach ignoriert. Wegen dieser Unzulänglichkeit habe ich vor Ostern den Entwickler der beiden Server angeschrieben. Bisher habe ich jedoch leider keine Antwort erhalten. Sollte das Problem auch zukünftig bestehen, werde ich wohl oder übel einen eigenen kleinen Proxy schreiben müssen, der an eine IP-Filtertabelle angeschlossen ist.

Trotz des Problems wollte ich euch an dieser Stelle schon einmal die bisherige Lösung zur Verfügung stellen. Sie ist noch in einem ganz frühen Alphastadium, deshalb sollte man sie nur dann einsetzen, wenn man auch wirklich weiß, was man tut. Der freeSSHd-Server muss für die Verwendung als Service installiert sein. Alle Informationen über den Server holt sich das Programm direkt aus der Diensteverwaltung, sowie der Log- und der *.ini-Datei. Das Programm ist auch als kleine Sicherung gedacht. Wenn der freeSSHd-Server also einmal unverhofft abstürzen sollte, wird er nun automatisch neu gestartet.


Search

Categories

administration (45)
arduino (12)
calcpw (3)
code (38)
hardware (20)
java (2)
legacy (113)
linux (31)
publicity (8)
raspberry (3)
review (2)
security (65)
thoughts (22)
update (11)
windows (17)
wordpress (19)