Have something to say?

Join the community by quickly registering to participate in this discussion. We'd like to see you joining our great moo-community!

Wäre schön wenn man das einbinden könnte. Die ersten Anfragen dazu stammen aus 2020. Ich trau mir das mit dem Scripten nicht zu

  • MMaxPain

      Moolevel 3
    • Edited

    Ich habe die 10.000 IPs von AbuseIPDB bei Mailcow einfach in die Fail2ban BlackListe eingetragen ohne ein Script das sollte kein Unterschied machen. Funktioniert bei mir ohne Probleme

    Hier die aktuellste Liste die ich von der API runtergeladen habe so müsst ihr euch nicht anmelden und das über die API requesten.

    abuseip.txt
    31kB
    • esackbauer

      • Community Hero
      Moolevel 370

    Man sollte die Liste schon regelmäßig (also am besten automatisiert) updaten, da die Angreifer mit stets wechselnden IPs/Hostern arbeiten.

    • DocFraggle

      • Community Hero
      Moolevel 274
    • Best Answerset by MaxPain

    Sehr cool @esackbauer, die Seite hatte ich noch nicht auf dem Radar!

    Ich hab mir ein Script gebaut das die IPs via Abuseip API zieht und dann via Mailcow API in Fail2Ban packt. Hier das Script:

    #!/bin/bash
    
    curl -G https://api.abuseipdb.com/api/v2/blacklist \
      -d confidenceMinimum=90 \
      -d plaintext \
      -H "Key: YOUR_ABUSEIP_API_KEY" \
      -H "Accept: application/json" \
      -o /tmp/abuseipdb_blacklist.txt
    
    BLACKLIST=$(awk '{if (index($0, ":") > 0) printf "%s%s/128", sep, $0; else printf "%s%s/32", sep, $0; sep=","} END {print ""}' /tmp/abuseipdb_blacklist.txt)
    
    cat <<EOF > /tmp/abuseip_request.json
    {
      "items":["none"],
      "attr": {
        "blacklist": "$BLACKLIST"
      }
    }
    EOF
    
    curl --include \
         --request POST \
         --header "Content-Type: application/json" \
         --header "X-API-Key: YOUR_MAILCOW_API_KEY" \
         --data-binary @/tmp/abuseip_request.json \
         'https://YOUR.MAIL.SERVER/api/v1/edit/fail2ban'

    (der Umweg über das /tmp/abuseip_request.json file weil curl sonst meckert dass es zu viele Argumente sind wenn man es direkt übergibt)

    Man sieht die IPs komischerweise nicht in der Mailcow Fail2Ban GUI, aber via iptables sind alle drin.

    Super, vielen Dank

    Nach ein bisschen warten tauchen die auch in der Mailcow GUI auf

      • DocFraggle

        • Community Hero
        Moolevel 274

      Ganzjahresgriller Nach ein bisschen warten tauchen die auch in der Mailcow GUI auf

      Stimmt, jetzt ist’s auch bei mir zu sehen

        5 days later
        • MMaxPain

            Moolevel 3

          Ich habe das mal genau so übernommen und via cronjob zum auto-update eingetragen. Funktioniert auch super. Danke für das Script und die Tipps

          Wie oft lässt Du das Script laufen? Bei mir meldet sich AbuseIPDB und sagt mir “You’ve exhausted your daily request limit.”. Ich hatte das bislang um 3 Uhr und um 15 Uhr am laufen

            • DocFraggle

              • Community Hero
              Moolevel 274

            Ganzjahresgriller Der Cronjob läuft alle 5 Stunden

            0 */5 * * * /path/to/script.sh
            (also 0, 5, 10, 15, 20 Uhr)

            Man hat ja 5x pro Tag in der Umsonst-Variante

            • MK796

                Moolevel 2

              Hallo!

              Ich habe das Skript exakt wie beschrieben kopiert und kann bestätigen, dass es einwandfrei funktioniert!

              Mit der blacklist angewendet haben die bruteforce Versuche (zumindest erstmal) gänzlich aufgehört 🙂

              DANKE!

              • Sstefan21

                  Moolevel 16
                • Edited

                DocFraggle Stimmt, jetzt ist’s auch bei mir zu sehen

                Vielen Dank für das Script.

                An welcher Stelle sollen die IP’s auftauchen? Einstellungen –> Fail2ban-Parameter –> Blacklist für Netzwerke und Hosts ?

                [unknown]

                Got it. Läuft.

                Danke nochmals.

                5 days later
                • Ddariusuk

                    Moolevel 0

                  Bei den script ausführung bekomme errors "{“type”:“error”,“msg”:“authentication failed”}root@debian:~#"

                    • DocFraggle

                      • Community Hero
                      Moolevel 274

                    dariusuk hast Du denn YOUR_MAILCOW_API_KEY und YOUR_ABUSEIP_API_KEY mit Deinen API Keys ersetzt?

                    • Ddariusuk

                        Moolevel 0
                      • Edited

                      YOUR_MAILCOW_API_KEY was muss da rein? abuse api key ersetz klar aber wie und wo muss ich den mailcow api generieren?

                      ich meine bei mailcow unter api lese und schreibe rechte,mein server ip und generieren oder wie?

                      • DocFraggle

                        • Community Hero
                        Moolevel 274

                      System -> Konfiguration

                      Dann API aufklappen

                      • Ddariusuk

                          Moolevel 0

                        das habe ich gemacht und dort steht nur 1

                        • DocFraggle

                          • Community Hero
                          Moolevel 274

                        Fehlt ja auch der Haken bei “API aktivieren” 😉

                        • Ddariusuk

                            Moolevel 0

                          das ist klar aber wenn ich havken mache und speichern will fragt der nach IP und dort muss ich server ip schreiben und das bei beiden optionen?

                          • DocFraggle

                            • Community Hero
                            Moolevel 274

                          Na die IP von der aus Du die API nutzen willst. Ich habe da die IPv4 und IPv6 Adresse drin.

                          • Ddariusuk

                              Moolevel 0

                            alles klar,jetzt klappt. danke!!