• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

FTP vor Dictionary Attack schützen?:

Hallo!

Ich nutze pure-ftpd; Deswegen sind auch nach außen hin erstmal die Ports dafür offen. Jetzt wollte ich fragen, da kürzlich irgend jemand mein Passwort geknackt hat und sich erfolgreich einloggte nach etwa 10 000 einträgen mit irgendwelchen Nutzernamen -> Alles von einer IP aus dem Ausland; Wie --> ich meinen FTP vor Dictionary attacks schützen kann?

Konkreter wäre es mir schon eine Hilfe da nur von bekannten Adressen auf diesen FTP zugegriffen wird, wenn ich alle Zugriffe bis auf bestimmte IP's für FTP beschränken könnte. Geht sowas in der Konfiguration von pure-ftpd oder was ist dafür ein guter Ansatz?

Übrigens kann ich mein System ansich erfolgreich mit DenyHosts for Dictionary attacks schützen jedoch --- Frääächheit !! knacken die mein FTP!

Vielen Dank für die Hilfe!

Gruß,

R
 
Hio! :)

Cool! Da hab ich mir gleich mal ein RPM für SuSE 11.1 installiert. Jetzt bin ich da gerade noch über der Konfiguration.

Vielen Dank daweil! :)

Grüße,

R
 
Ok Hi nochmal!

Jetzt habe ich probiert und ... "Ja"! das gestaltet mir größte Schwierigkeiten mit fail2ban. Kann mir jemand bitte dabei helfen?

Ich habe also das RPM installiert:
Code:
fail2ban-0.8.3-0.pm.2
Dann habe ich einfach mal ein chkconfig fail2ban on gemacht und rcfail2ban start und rcfail2ban stop; Das geht mal an sich. Dann hab ich mir das alles ein bisschen angeschaut zum Einstieg. Jetzt fand ich auch bald

- jail.conf
- action.d
- filter.d

Bei den Filtern also fand ich in /etc/fail2ban/filter.d eine:
Code:
pure-ftpd.conf
Darin steht ein regulärer Ausdruck, mit dem wohl Logfiles überwacht werden. Man kann auch eigene Filter anlegen und diese wiederum Testen mit fail2ban-regex.
Also habe ich getestet, ob das irgendwie funktioniert. Weil man das ja wohl schätze ich mal irgendwie auch aktivieren muss?
Code:
fail2ban-regex /var/log/messages 'pure-ftpd(?:\[\d+\])?: (.+?@<HOST>) \[WARNING\] %(__errmsg)s \[.+\]$'
Ergebnis:
Code:
/usr/share/fail2ban/server/filter.py:430: DeprecationWarning: the md5 module is deprecated; use hashlib instead     
  import md5                                                                                                        

Running tests
=============

Use regex line : pure-ftpd(?:\[\d+\])?: (.+?@<HOST>) \[WARNING\] %(...
Use log file   : /var/log/messages                                    


Results
=======

Failregex
|- Regular expressions:
|  [1] pure-ftpd(?:\[\d+\])?: (.+?@<HOST>) \[WARNING\] %(__errmsg)s \[.+\]$
|
`- Number of matches:
   [1] 0 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Sorry, no match

Look at the above section 'Running tests' which could contain important
information.
Pure-ftpd loggt bei mir und bei einigen anderen standardmäßig in /var/log/messages (syslog). Eine Logzeile mit verfehltem Login sieht beispielsweise so aus:
Code:
May 17 23:43:59 wild-thing pure-ftpd: (?@192.168.0.5) [WARNING] Authentication failed for user [tux]
(Davon sind etwa 16000 Zeilen vorhanden. Mein Problem dass die Regexp dafür nicht passt?)
Eine INFO das alle geklappt hat sieht so aus:
Code:
May 18 10:36:37 wild-thing pure-ftpd: (?@192.168.0.5) [INFO] tux is now logged in
Dann gibt es beispielsweise noch sowas:
Code:
May 16 20:02:19 wild-thing pure-ftpd: (?@192.168.0.5) [DEBUG] This is a private system - No anonymous login
Und sowas:
Code:
May 17 22:35:47 wild-thing pure-ftpd: (?@192.168.0.5) [WARNING] Sorry, cleartext sessions are not accepted on this server. Please reconnect using SSL/TLS security mechanisms.

Wie muss man die regexp richtig anpassen, sodass fail2ban die Authentication failed findet und richtig verarbeitet?
Dann scheint es noch ein Problem zu geben. Und zwar eben das mit '/var/log/messages' bei einigen Menschen scheint pure-ftpd nach /var/log/pureftpd.log zu loggen. Wo/Wie stellt man in dem pure-ftp Filter ein, dass er in /var/log/messages liest? Hier die Filter config für pure-ftpd mit fail2ban wie sie im rpm enthalten ist:
Code:
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav Halchenko for pure-ftpd
#
# $Revision: 3$
#

[Definition]

# Error message specified in multiple languages
__errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur)

#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#         host must be matched by a group named "host". The tag "<HOST>" can
#         be used for standard IP/hostname matching and is only an alias for
#         (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
failregex = pure-ftpd(?:\[\d+\])?: (.+?@<HOST>) \[WARNING\] %(__errmsg)s \[.+\]$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
Uff ok ich hoffe das ist kein zu heftiger Aufsatz! Vielen Dank für die Hilfe!

Grüße,

R
 
Uff ok ich hoffe das ist kein zu heftiger Aufsatz!

Für mein Gefühl schon ;-)
Wie wär es, wenn Du mal selbst ein README oder eine man-page liest. Dafür sind die ja da.
Wie man beispielsweise das Logging von pure-ftpd umstellt findest Du da schneller als DU hier die Frage postest . von der Antwort mal ganz zu schweigen.

Man wird Dir hier gerne helfen wenn Du auf echte Probleme stösst, aber sich hier die Basics erklären lassen weil man keine Lust hat ein paar Seiten zu lesen finde ich ehrlich gesagt nicht akzeptabel.

Sichtbare Eigeninitiative erhöht die Hilfsbereitschaft der anderen hier im Forum i.d.R. deutlich.
 
:)

Ja danke da hast du natürlich recht. Das mag so wirken. Der thread ist wohl damit gestorben.

Sorry aber ich hätte nicht gepostet, wenn ich es schlicht einfach nicht hinbekäme.

Gruß,

R
 
Oben