M.: fail2ban, dynaische IP und ban verhindern

Mahlzeit,
grad durch Zufall gesehen, dass meine eigene IP durch fail2ban geblockt wird, weil ich alle 5 Minuten Mails abrufe. Bei 7 Postfächern scheint die Anzahl der Anfragen das Limit zu übersteigen.

Wie löst man sowas am elegantesten? Ich halte das Heraufsetzen des Limits nicht für optimal, eher schwebt mir vor, meine IP grundsätzlich auszuschliessen, was aber bei einer dynamischen nicht so leicht ist.

Die IP ist auch per Subdomain erreichbar (CNAME auf nen DynDNS-Account), geht da was?

Ob es Sinn macht, jedesmal, wenn ich ne neue IP bekomme, die Config zu erneuern, weiss ich nicht. Möglich ist vieles, was die berste Lösung ist, weiss ich nicht.

  1. Bei 7 Postfächern scheint die Anzahl der Anfragen das Limit zu übersteigen.

    Ich frage mich gerade, warum das Programm fail2ban heisst, wenn es Deinen Ausführungen nach saubere Abrufe blockt.

    Was steht denn im Logfile?
    Kann ja sein, da ist clientseitig was falsch konfiguriert. (Vergessener Mailbenachrichtiger?)

    Jörg Reinholz

    1. Tach!

      Bei 7 Postfächern scheint die Anzahl der Anfragen das Limit zu übersteigen.

      Das kann man ja konfigurieren.

      Ich frage mich gerade, warum das Programm fail2ban heisst, wenn es Deinen Ausführungen nach saubere Abrufe blockt.

      Weil es nicht intelligent genug (konfiguriert) ist. Es wertet Logfiles aus und zählt gemäß konfigurierbaren Mustern die Zugriffe. Beim Überschreiten von Schwellwerten pro Zeit kann man Aktionen durchführen lassen, beispielsweise Firewall-Blockaden aktivieren.

      Was steht denn im Logfile?

      Das ist genau die zu klärende Frage. Steht im ausgewerteten Logfile lediglich eine IP-Adresse oder der DNS-Name? Bei letzteren kann man die Regeln entsprechend anpassen. Mit nur einer wechselnden IP-Adresse wird es schwer. Da kann man nur Bereiche ausklammern. Ein anderes Kennzeichen wäre auch auswertbar, beispielsweise könnten erfolgreiche Logins ausgeklammert werden.

      dedlfix.

      1. Das ist genau die zu klärende Frage. Steht im ausgewerteten Logfile lediglich eine IP-Adresse oder der DNS-Name?

        Im Logfile steht nur die IP,der DNS wechelst aber auch mit. Ist (meistens) T-Online, aber ich will ja nicht alle t-online-Domains vom Blocking ausnehmen ;)

        beispielsweise könnten erfolgreiche Logins ausgeklammert werden.

        Ja, das wäre sinnvoll. Bisher hab ich dazu aber nichts gefunden. Vielleicht hat ja hier jemand noch nen Tip, ich suche aber auf jedenfall weiter.
        Ansonsten ist fail2ban nur zu empfehlen.

    2. Ich frage mich gerade, warum das Programm fail2ban heisst, wenn es Deinen Ausführungen nach saubere Abrufe blockt.

      Naja, anscheinend ist die Anzahl der Aufrufe ein Zeichen für das Programm, dass es keine sauberen Aufrufe sind. Es sind ja durch Thunderbird praktisch 7 gleichzeitige Zugriffe.

      Was steht denn im Logfile?

      Im syslog sowas wie:

      Nov  1 10:13:46 xxx imapd-ssl: LOGIN, user=xxx@example.com, ip=[::ffff:00.00.00.00], port=[34079], protocol=IMAP

      Also ein erfolgreiches Login

      Kann ja sein, da ist clientseitig was falsch konfiguriert. (Vergessener Mailbenachrichtiger?)

      Am Client liegts nicht, das Log zeigt einen normalen Login per STARTTLS. Ich gehe davon aus, dass ich fail2ban erklären muss, dass erfolgreiche Logins nicht zur Sperre führen sollen.

      1. Am Client liegts nicht, das Log zeigt einen normalen Login per STARTTLS. Ich gehe davon aus, dass ich fail2ban erklären muss, dass erfolgreiche Logins nicht zur Sperre führen sollen.

        /etc/fail2ban/filter.d/

        Da stehen die Dateien. Jetzt wäre es noch gut zu wissen, welchen imap-Server Du benutzt und welche der Regeln hinter 'failregex = ' greift.

        Oder was Du sonst noch so konfiguriert hast. Hilfreich auch:

        loglevel = 4
        logtarget = /var/log/fail2ban.log

        in /etc/fail2ban/fail2ban.conf

        (je nach Distribution können die Pfade abweichen)

        /var/log/fail2ban.log sollte auch nachgesehen werden...

        Jörg Reinholz

        1. Da stehen die Dateien. Jetzt wäre es noch gut zu wissen, welchen imap-Server Du benutzt und welche der Regeln hinter 'failregex = ' greift.

          Nutze den Courier-Imap. Komischerweise ist die Regel auf fehlerhafte Logins eingegrenzt:

          failregex = LOGIN FAILED, .*, ip=[<HOST>]$

          Interessanterweise wird mein Rechnewr nicht mehr geblockt, seit ich die Dyndns-Domain (CNAME) in die Whitelist eingetragen hab. Muss mir nochmal ansehen, wieso auch erfolgreiche Logins geblockt werden.

          Oder was Du sonst noch so konfiguriert hast. Hilfreich auch:

          Aktuell sind die Regeln alle noch so wie geliefert (Wheezy per aptitude)

          loglevel = 4
          logtarget = /var/log/fail2ban.log

          Läuft schon, aber auch da hab ich bisher nix gefunden.

          Ich schau mir mal an, ob es ne aktuellere Version gibt und ob die für Debian evtl. nen Bug hat.

          1. failregex = LOGIN FAILED, .*, ip=[<HOST>]$

            Dann jage doch mal Dein Logfile durch:

            sudo grep -e 'LOGIN FAILED, .*, ip=[<HOST>]$' /var/log/syslog

            Oder Du siehst Administratorenfernsehen (sudo tail -f /var/log/syslog) und schaust mal nach, was beim IMAP-Login mit richtigem und falschen Passwort passiert.

            Jörg Reinholz

            1. sudo grep -e 'LOGIN FAILED, .*, ip=[<HOST>]$' /var/log/syslog

              <HOST> wird natürlich nicht gefunden. Keine Ahnung, durch was das bei fail2ban ersetzt wird. Aber fehlerhafte Loginversuche gibts von meiner IP zuwenig, als das ein Ban angebracht wäre.

              Oder Du siehst Administratorenfernsehen (sudo tail -f /var/log/syslog) und schaust mal nach, was beim IMAP-Login mit richtigem und falschen Passwort passiert.

              Hab ich schon gemacht. Exakt das, was ich erwarte. LOGIN FAILED nur bei falschen Passwort.
              Ich werd mich nochmal damit befassen, wenn ich mehr Zeit hab. Wie gesagt, mit einem Eintrag in der Whitelist gehts jetzt. Vielleicht hilft das anderen, die so ein Problem haben.