Naja, gegen Fehler beim Tippen hilft ein PW Manager

    • Mmlcwuser

        Moolevel 36
      • Edited

      Ganzjahresgriller Ja klar, trotzdem, bringt 1 Fehlversuch vs. z.B. 3 oder 5 Fehlversuche wenig an zusätzlicher Sicherheit, ausser du nutzt password1 als password, da wäre der Angreifer beim zweiten Versuch drinn. 😉

      • MMaxPain

          Moolevel 3

        Ein generelles Grundrauschen ist für mich auch nachvollziehbar, der MailServer läuft seit ca. 1 Jahr. Ich schaue fast täglich in die Logs und seit 3-4 Wochen laufen die attacken außergewöhnlich oft minütlich was vorher nicht der Fall war. Ich verwalte nicht nur meine eigenen Domains sondern auch mehrere von Drittparteien, da macht man sich natürlich gedanken um die Sicherheit.

        Eine weiter Optimimierung wäre meines erachtens ein Login Geo-blocking. Ich würde gerne nur Login Versuche aus Deutschland zulassen. Jemand eine Idee wie ich dies konfigurieren könnte für Mailcow?

        • MMaxPain

            Moolevel 3
          • Edited

          Danke aber das wäre ein genereller GeoBlock, das würde auch eingehende und ausgehende E-Mails blockieren und auch zu anderem Chaos führen. Die Frage ist ob es eine Möglichkeit gibt es nur für den “Login Versuch” scharf zu stellen.

            und wie bindest Du das ein? In Mailcow sicher nicht oder?

              • Iitsaw

                  Moolevel 3

                @MaxPain Das ganze IST noch Grundrauschen, die Botnetze kommen mal mehr mal weniger stark durch.
                Auch Versuche aus den üblichen Ländern kommen immer mal wieder in Wellen auf.
                GeoBlocking kann ich auf meinem Server, der auch von weiteren genutzt wird, auch nicht einsetzen.
                Gelegentlich blocke ich bei der Firewall des RZ-Betreibers mal einige IPs wenn es zu viel werden sollte.

                Das ganze sind eben Bruteforce Versuche um in die Mailbox zu kommen, solange, wie @mlcwuser bereits schrieb, die Passwörter nicht einfach zu erraten sind, sehe ich da keine größere Gefahr.

                Jeder Mailserver ist mal dran.

                • Mmlcwuser

                    Moolevel 36
                  • Edited

                  MaxPain Die Frage ist ob es eine Möglichkeit gibt es nur für den “Login Versuch” scharf zu stellen.

                  Mit Mailcow-Bordmitteln so viel ich weiss nicht, aber mit einer externen Lösung kannst du natürlich pro Port unterschiedliche Regeln und Block-/Allowlisten nutzen. Sprich du kannst z.B. die Ports 443,587,465 etc restrektiver konfigurieren als Port 25.

                  Wirklich lohnen tut sich aber so ein Aufwand imho nicht, denn gezielte Angriffe wirst du auch mit exessivem Geo Blocking nicht aufhalten, weil ein VPS in einer anderen Region ist schnell aufgesetzt, wenn es jemand wirklich gezielt auf deinen Server abgeshen hat, und die ganzen Bots sind nicht wirklich gefährlich, solange Fail2ban funktioniert und du sichere Passwörter verwendest.

                  Am Ende des Tages geht es also eher darum die Logs clean zu halten, und da ist, wenn überhaupt, ein “Mittelweg”, wie ihn @esackbauer vorschlägt die beste Lösung.

                  • Iitsaw

                      Moolevel 3

                    Achja.. und zum “Logs clean halten”:

                    Ich würde eher versuchen die Logs in ein SIEM zu holen und dann dort auich wirklich die Auswertungen zu betreiben.
                    Denn man kann davon ausgehen dass eben nicht nur der Mailserver so stark besucht wird, sondern bene auhc die Wordpress-, Joomla-, Nextcloud- oder weitere Instanzen.
                    Dann macht es durchaus Sinn wenn man sehen kann ob die Angreifer gezielt vorgehen oder es eben nur Grundrauschen ist.

                    • esackbauer

                      • Community Hero
                      Moolevel 370

                    Ganzjahresgriller und wie bindest Du das ein? In Mailcow sicher nicht oder?

                    Ich kann das direkt in meine Sophos Firewall einbinden, die vorgeschaltet ist.
                    Müsste aber auch mittels etwas Scripting in mailcow gehen. Die Liste ist ein simples Textfile mit knapp 10000 IP Adressen.

                    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