vsftp - häufige connects verhindern

SaschaBr

Aktives Mitglied
Mitglied seit
1 Mai 2007
Beiträge
2,351
Punkte für Reaktionen
32
Punkte
48
Ich habe da mal ne Frage:
Ich habe jetzt seit einiger Zeit den vsftp bei mir am laufen, und stelle im LOG immer wieder fest, das dort versucht wird sich mit aller Gewalt zu connecten.

Ich würde gerne eine IP für eine Zeit bannen, die x-mal versucht hat sich zu connecten.

Ich habe vsftp so eingestellt, das nur eingetragene User sich überhaupt verbinden dürfen, und auch das bei falschem Passwort eine Verzögerung von 15 Sekunden gewartet werden muss, nur leider hilft dies nicht gegen diese ständigen connects.

Habe schon im Netz nach einer Möglichkeit gesucht, konnte aber keine für mich (mit nur geringen Linux-Kenntnissen) brauchbaren Lösungsansatz finden. Bin bei meiner Suche aber über "Fail2ban" gestolpert. Wäre das etwas, was man dafür nutzen könnte?

Code:
un Feb 22 11:35:13 2009 [pid 27265] CONNECT: Client "123.201.55.164"
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220-   __  _   __  __ ___ __"
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220-  |__ |_) |__ |__  |   /"
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220-  |   |\  |__ |__  |  /_"
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220-"
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220-   The fun has just begun..."
Sun Feb 22 11:35:13 2009 [pid 27265] FTP response: Client "123.201.55.164", "220 "
Sun Feb 22 11:35:13 2009 [pid 27265] FTP command: Client "123.201.55.164", "USER Administrator"
Sun Feb 22 11:35:13 2009 [pid 27265] [Administrator] FTP response: Client "123.201.55.164", "530 Permission denied."
Sun Feb 22 11:35:13 2009 [pid 27265] FTP command: Client "123.201.55.164", "USER Administrator"
Sun Feb 22 11:35:13 2009 [pid 27265] [Administrator] FTP response: Client "123.201.55.164", "530 Permission denied."
Sun Feb 22 11:35:13 2009 [pid 27265] FTP command: Client "123.201.55.164", "USER Administrator"
Sun Feb 22 11:35:13 2009 [pid 27265] [Administrator] FTP response: Client "123.201.55.164", "530 Permission denied."
Sun Feb 22 11:35:14 2009 [pid 27265] FTP command: Client "123.201.55.164", "USER Administrator"
Sun Feb 22 11:35:14 2009 [pid 27265] [Administrator] FTP response: Client "123.201.55.164", "530 Permission denied."
 
Du könntest den Port verlegen. Bei SSH ist es das gleiche Problem...

MfG Oliver
 
Und/oder "tcp_wrappers=yes" verwenden, mit "hosts.deny" und "hosts.allow".
 
Hmmm, dann müsste ich allen, die Zugriff auf meinen FTP haben, diesen Port ebenfalls mit angeben. Das mit dem Port wechseln hatte ich auch schon überlegt, würde jedoch eigentlich gerne den Standardport beibehalten.

Wie würde das denn bei Links aussehen, bei denen User und Passwort mit übergeben werden (Beispiel: 'ftp://User:p[email protected]/Aktuelles.pdf'). Hängt man den Port da einfach noch drann?

@sf3978:
Und/oder "tcp_wrappers=yes" verwenden, ...

Das ganze ist aber dann nicht dynamisch, oder?
 
Also, ich würde gerne diese IP nur vorrübergehend blocken/ abweisen wollen.
mit tcp_wrappers=yes wäre das ja "nur" eine Liste mit erlaubten bzw. nicht erlaubten IP's.
Und wie aktiviere ich das, wenn denn dann. Gibts eine Liste mit bekannten nervenden IP's?
 
In der hosts.deny kannst Du mit "vsftpd: ALL" alles blocken und in der hosts.allow kannst Du mit "vsftpd: <erlaubte IP-Adressen>", gezielt IP-Adressen zulassen.

EDIT:

In diesem Thread, mit Beiträgen von Oliver und zirkon, ist genau beschrieben, wie Du vsftpd mit tcp_wrappers einrichten kannst.
 
Zuletzt bearbeitet:
Ich kenne ja die IP's nicht die ich zulassen möchte. Und genau genommen ja auch nicht die, die ich vorrübergehend aussperren möchte.
Wie im ersten Post gezeigten Log, hatte ich heute morgen diese 123.201.55.164-IP mit bis zu sech connects pro Sekunde (bzw. 1500 connects in 20 minuten!!!!). Hatte ich nur durch zufall gesehen, da sich mein Protokoll-USB-Stick am totblinken war. Nach nur kurzem deaktivieren und aktivieren des vsftp war dann aber ruhe, und das obwohl sich meine IP nicht geändert hat.

Ja, und den Thread über tcp_wrapper hatte ich bei meiner Suche nach einer Lösung auch dabei, finde aber diese Lösung mit zwei Listen ein wenig unelegant.
 
Du kannst auch alles zulassen und gezielt blocken. Und was Du zeitweise blocken willst/musst, entnimmst Du ja aus dem Log des vsftpd.
 
mit bis zu sech connects pro Sekunde
Hier könnte man evtl. was drehen? Aber dann geht der Angriff wahrscheinlich einfach länger.

Dein Vorschlag mit diesem Python Dingens ist wohl nicht praktikabel...

MfG Oliver
 
Dann muss ich das wohl manuell machen mit tcp_wrappers (siehe auch meine Frage dort ;)).

Gibts denn irgendwo eine Liste mit "lästigen IP's"?
 
fail2ban nutz ich auf einem server. ist eigentlich ein nettes kleines script, aber ist für die Box ein wenig gross ;)
 
Schau doch mal Dein Protokoll durch.
Aber morgen, oder nach der nächsten Zwangstrennung, werden diese Rechner eine andere IP haben, so daß eine solche Liste nichts bringt.

Würde ich so nicht behaupten. Fail2ban allerdings ist einfach zu lahm, weil es den ganzen Python-Hintergrund benötigt. Sinnig aber ist es, da es für X Minuten schlicht die IP per iptables sperrt, und dann ist erstmal Ruhe von der IP. Ist schon fein, aber da auch IPTables benötigt werden, ist es auch schon wieder haariger auf den "älteren" Boxen.
 
Ja, aber die obige Frage schien auf eine statische Liste ausgerichtet zu sein, und diese würde wenig nützen. Vielleicht will ich in einigen Tagen von der gleichen IP, die vorher ein Login ausprobiert hat, auf meinen Server zugreifen. Eine kurzfristig gültige Liste, die am Rechner selbst erstellt wird, wie mit fail2ban, ist da etwas anderes.

Wobei ich es wichtiger finde, ein Paßwort zu haben, das mit einfachem Durchprobieren nicht in vernünftiger Zeit erraten werden kann. Zum Teil sieht man nämlich auch, daß die Login-Versuche von verschiedenen IPs kommen, und dann nützt fail2ban auch nichts. Es sollte also allenfalls zusätzlich, aber nicht anstatt einem sinnvollen Paßwort verwendet werden.
 
Glaube kaum, dass du in den IP-Ranges dieser Leute zu Hause bist :)
 
Ich glaube, daß das überwiegend normale Einwähladressen vom T-Online, Arcor, 1&1 usw. sind. Diese Rechner werden verwendet, um SPAM zu versenden, das IP-Adressbereiche auf bekannte Schwachstellen zu untersuchen, für DDoS oder was auch immer gerade ansteht. Natürlich ist die Wahrscheinlichkeit klein, daß man sebst tatsächlich die gleiche Adresse bekommt, die für einen Paßwort-Versuch verwendet wurde. Und die Verantwortlichen für diese Versuche sind meistens nicht unter dieser Adresse zu finden, es sei denn, sie wären sehr ungeschickt.
 
ich verhindere diese Nervereinträge durch die Option
Code:
userlist_file=/var/media/ftp/uStor02/tools/vsftpd/vsftpd.user_list
userlist_deny=NO
Da stehne die Usernamen drin die sich anmelden dürfen...alle anderen Bekommen keinen Login und damit auch keinen Logeintrag
Finde das sehr komfortabel...
 
Die "vsftpd.user_list" nutze ich auch, das schützt aber leider nicht vor den Connects.
Der Loginversuch mit einem nicht in dier Liste stehenden Nutzer wird dadurch verhindert, das stimmt wohl.
 
Für sowas finde ich iptables-connlimit am besten, nur leider gibt es das in freetz nicht :-(
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.