A Traefik plugin that uses an existing fail2ban setup to block IPs.
This plugin needs setup in both Traefik and Fail2Ban.
experimental:plugins:fail2ban:moduleName: github.com/ClimberJ/traefik-fail2ban-connectorversion: v1.0.0
http:middlewares:traefik-fail2ban-connector:plugin:fail2ban:{}
This assumes you already have a working Fail2Ban configuration.
Add this into an action file for Fail2Ban and add the action to the jail you want to use for blocking requests in Traefik.
[Definition]
actionban = echo <ip> >> /config/fail2ban/bans.txt
actionunban = grep -v ^<ip>$ /config/fail2ban/bans.txt > /config/fail2ban/temp; cat /config/fail2ban/temp > /config/fail2ban/bans.txt; rm temp
The bans.txt file from the action will need to be mounted into Traefik at /etc/fail2ban/bans.txt.
Feel free to submit PRs for any of these.