vServer fail2ban Alternative

  • Zitat von ndurchx;37152

    Kannst du bitte mal das Script von Hand ausführen und sehen ob es so funktioniert?
    ./sync.sh 1.1.1.1 add


    Habe ich gemacht.


    Die IP wird nur bei IPv6 angezeigt

    Code
    Richtung:INPUT   Quell IP:::FFFF:1.1.1.1    Quell Port:any    Zusatz:
    Protokoll:any    Ziel IP:::/0               Ziel Port:any     Zusatz Wert:
  • Ferndiagnose ist nicht ganz so einfach.
    Ich hab das Script aber etwas abgeändert, versucht das mal.
    http://blog.n-durch-x.de/2011/…2ban-auf-netcup-vservern/


    Wenn das auch nicht funktioniert, bräuchte ich von euch mehr Infos (OS, Output wenn ihrs von Hand ausführt [und am besten auch noch Zugang zu eurem VCP und SSH auf eurem Server :eek:].
    Wenn Ihr mir keinen Zugang gebt (was ich auch nicht machen würde), ihr mir aber den Output schickt, müsst Ihr bei diesem auch noch eure Zugangsdaten entfernen.

  • Keine Änderung in der Funktion.


    OS: Debian Squeeze 64Bit (Image von Netcup)
    vServer Gold


    Output:

    Beim IP löschen scheint es zu hapern.

    Zwei Zeilen sind mir gerade ins Auge gesprungen:

    Code
    ./sync.sh: 59: [[: not found
    Code
    ./sync.sh: 100: [[: not found
  • Ihr habt wahrscheinlich unterschiedliche Standard Shells.


    Ändere mal ganz oben

    Bash
    #!/bin/sh


    in

    Bash
    #!/bin/bash


    Alternativ könnte man auch die if abfragen umschreiben.

    Neun von zehn stimmen in meinem Kopf sagen ich bin nicht verrückt, die zehnte summt die Melodie von Tetris.

  • Zitat von Bulli;37151

    Nein, das stört nicht, aber bei mir werden die v4 adressen nicht unter v4 angezeigt.
    Im Anhang mal wie es bei mir unter dem Reiter v4 aussieht.



    Ich hab das selbe Problem..

  • Hallo,


    ersteinmal vielen Lieben dank für das script.
    Ich habe es direkt auf meinem vServer uranus eingerichtet.
    Manuell kann ich die Adressen hinzufügen und auch löschen das klappt alles super.


    Jedoch geschieht bei mir automatisiert nichts.
    die Filter habe ich beim Standard belassen und nichts daran geändert.


    Wenn ich nun via ssh auf meinen Server verbinde und mehrmals das Kennwort von der Passphrase meines keys falsch eingebe,
    dann werde ich dennoch nicht gesperrt. Irgendwann muss doch die Regel greifen?
    Kann mir da vielleicht jemand freundlicher Weise helfen?


    sync.conf


    jail.conf


    fail2ban.conf


    Um folgendes auszuschließen:
    Die benötigten Daten im init-bereich der sync.sh sind korrekt
    die sync.sh ist unverändert (bis auf die Logindaten)
    manuelle eintragungen über die Console in die FW des VCP sind problemlos möglich


    [edit] fast vergessen:
    ich verwende ubuntu 11.4 (beta)
    hatte das gleiche problem aber auch bereits auf ubuntu 10.4 LTS


    Danke im Voraus an alle, welche sich den Kopf für mich zerbrechen.

  • Kannst du mal die Logfiles checken?
    /var/log/fail2ban.log


    Hier müsste etwas in der Art stehen:
    2011-08-05 15:59:05,900 fail2ban.actions: WARNING [ssh] Ban 199.21.149.38
    2011-08-05 15:53:24,827 fail2ban.actions: WARNING [ssh] Unban 199.21.149.38


    Wenn das nicht der Fall ist, dann greifen die Standardfilter für ssh offensichtlich nicht.


    Der SSH-Filter checkt die Datei /var/log/auth.log
    Schau mal, ob du dort Hinweise auf fehlgeschlagene Login-Versuche findest. Wenn ja, vergleiche eine solche Zeile mal mit dem SSH-Filter und schau ob eine der RegEx dort passen könnte.


    Und nur fürs Protokoll:
    Die Datei sync.sh ist ausführbar, richtig? Ich gehe davon aus, dass es so ist, weil der manuelle Aufruf ja auch funktioniert. Aber sicher ist sicher ;)

  • hallo,


    ja die sync.sh ist ausführbar und nur ausführbar r und w habe ich nicht vergeben.


    In der fail2ban.log steht nichts derartiges drin.


    jedoch im Log (jeweils ip durch [ip], port durch [port] und username durch [username] ersetzt )

    Code
    Aug 24 11:57:27 your-path sshd[20734]: Failed password for [username] from [ip] port [port] ssh2
    Aug 24 11:58:05 your-path sshd[20734]: last message repeated 4 times
    Aug 24 11:58:23 your-path sshd[20734]: Failed password for [username] from [ip] port [port] ssh2
    Aug 24 11:58:23 your-path sshd[20734]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=[ip]  user=[username]
    Aug 24 11:58:23 your-path sshd[20734]: PAM service(sshd) ignoring max retries; 6 > 3
    Aug 24 12:00:57 your-path sshd[28625]: pam_unix(sshd:session): session closed for user [username]


    also scheinen wirklich die Filter nicht zu greifen denn es würden einige Einträge aus dem Logfile zutreffen!
    sollte man weiteren quellcode benötigen, so schreibe ich den hier gerne ein.


    [edit]
    bin gerade auf etwas gestoßen!
    im Filter steht:

    Code
    ^%(__prefix_line)sFailed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$


    somit kann der das ja nicht finden oder?
    Weil die Zeile im meinem Log endet ja mit ssh2 und laut der regex (so wie ich es verstehe) ssh bzw. sshd.
    Falls dies so, wie ich vermute der Fall ist, hätte dann jemand eine Idee, wie ich die regex so anpassen könnte, dass ssh, sshd und ssh2 am ende möglich sind?
    kann natürlich auch sein, dass \d Platzhalter für eine beliebige Zahl ist :) <-- da muss ich mich einmal reinarbeiten :)

  • 1. Das \d steht tatsächlich für eine beliebige Zahl. Das sollte also eigentlich passen.


    2. Versuch mal folgendes Kommando:

    Code
    fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf


    und poste mal die Ausgabe.

  • hab ich gemacht, hier die Ausgabe:


  • Okay, das bedeutet, dass die Regeln matchen. Sieht man hier:

    Warum jetzt allerdings trotzdem keine Action ausgeführt wird ist mir dann ehrlich gesagt schleierhaft. Das scheint weniger das Script von n-durch-x als eher fail2ban selbst zu betreffen.
    Ich selbst habe leider kein Ubuntu am laufen, kanns also leider auch nicht testen.
    Evtl. ist jemand mit etwas mehr fail2ban-Erfahrung hier im Forum...


    Sorry aber trotzdem viel Erfolg bei der Fehlersuche!

  • Ich hab grad meinen Testserver Ubuntu 10.04LTS installiert um zu testen woran es liegen könnte... Nur leider hats funktioniert...


    Da ich keine Erfahrung mit Ubuntu habe und fail2ban beim testen mit meinem Script funktioniert hat, kann ich dir leider nicht weiter helfen als narayan es schon getan hat.
    Ich kann höchstens noch die Vermutung äußern, dass es irgendwo an den Dateirechten hakt... ansonsten Wünsche ich dir noch viel Glück bei der Fehlersuche und wenns nicht klappt... ich empfehle Debian :thumbup:

  • Vielleicht könntest mir einmal die Dateirechte von dir durchgeben für die sync.conf und die sync.sh soewie den ordner, in dem die liegen!!


    danke schonmal.


    Wenn ich auf dateirechtlichem wege nichts finde, dann werde ich das ganze system eben noch einmal neu aufsetzen so schwer kann das ja nicht sein :)

  • hallo,
    habe ein kleines problemchen mit f2b .. und zwar werden irgendwie die fehlerhaften sasl-logins nicht ausgewertet bzw. geblockt. in der mail.log steht dann sowas wie:


    [zitat]
    Aug 19 10:01:35 static postfix/smtpd[18026]: warning: 163.121.237.202: hostname host-163.121.237.202.tedata.net verification failed: Name or service not known
    Aug 19 10:01:35 static postfix/smtpd[18026]: connect from unknown[163.121.237.202]
    Aug 19 10:01:36 static postfix/smtpd[18026]: warning: SASL authentication failure: need authentication name
    Aug 19 10:01:36 static postfix/smtpd[18026]: warning: unknown[163.121.237.202]: SASL CRAM-MD5 authentication failed: bad protocol / cancel
    Aug 19 10:01:37 static postfix/smtpd[18026]: warning: SASL authentication failure: need authentication name
    [/zitat]


    habe eigentlich in der jail.conf den sasl-filter aktiviert und in der sasl.conf folgendes stehen:


    failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$


    wo ist da das problem!?? & wie ist das bei euch? sonst ist alles ok, nur der spass funzt nicht.


    danke schonmal fuer nen tipps.
    jkn