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.