Repolode
swissmakers

swissmakers/fail2ban-ui

A web management platform for operating Fail2Ban across one or more Linux hosts, covering bans, jails, filters and alerts.

Stars
381
Forks
42
Open issues
4
Last commit
9 days ago

What is it?

Fail2Ban UI gives administrators a central interface for Fail2Ban instances running on one or more Linux hosts. It does not replace Fail2Ban: ban decisions are still made by the Fail2Ban daemon on each host, while the UI connects to those instances to show active jails, recent ban and unban activity, and to run searches and unbans across all servers.

The UI reaches each host through a local connector, an SSH connector, or an HTTP agent. Each host posts ban and unban events back to the UI through a custom Fail2Ban action, and the UI stores them, pushes them to connected browsers in real time, and can trigger alerts. It also supports editing jail and filter configuration on remote hosts, testing filter regex against log lines, and pushing permanent blocks to MikroTik, pfSense, OPNsense, and UniFi firewalls.

The project ships as a single Go binary, available as a container or systemd service, and supports OIDC login. Alerts can be sent by email, webhook, or Elasticsearch.

Key features

  • 01Central dashboard of active jails and real-time ban/unban events over WebSocket
  • 02Search and unban IP addresses across all jails and servers
  • 03Manage remote jail and filter configuration, with config recovery for bad configs
  • 04Filter debugging with live log-pattern testing
  • 05Permanent blocking and recurring-offender handling on MikroTik, pfSense, OPNsense, and UniFi
  • 06Email, webhook, and Elasticsearch alerts with GeoIP/Whois enrichment

Use cases

  • Managing Fail2Ban on several Linux servers from one browser interface
  • Reviewing and unbanning IPs without logging into each host
  • Testing filter regex before deploying changes to production jails
  • Pushing repeat attacker IPs to a firewall as permanent blocks

Quick start

  1. 1

    Run the container with the local connector

    podman run -d --name fail2ban-ui --network=host \ -v /opt/fail2ban-ui:/config:Z \ -v /etc/fail2ban:/etc/fail2ban:Z \ -v /var/run/fail2ban:/var/run/fail2ban \ -v /var/log:/var/log:ro \ swissmakers/fail2ban-ui:latest
  2. 2

    Open http://localhost:8080 in your browser

  3. 3

    Go to Settings -> Manage Servers, enable the local connector, and click Test connection

Things to know

  • Requires an existing Fail2Ban installation on Linux hosts; it does not replace Fail2Ban.
  • The SSH connector needs a dedicated service account with sudo rules, so setup takes some effort.
  • Recommended to run behind a reverse proxy, VPN, or firewall rather than exposed to the public Internet.

Topics

FAQ

What is fail2ban-ui?
A web management platform for operating Fail2Ban across one or more Linux hosts, covering bans, jails, filters and alerts. Fail2Ban UI gives administrators a central interface for Fail2Ban instances running on one or more Linux hosts. It does not replace Fail2Ban: ban decisions are still made by the Fail2Ban daemon on each host, while the UI connects to those instances to show active jails, recent ban and unban activity, and to run searches and unbans across all servers.
Is fail2ban-ui free to use? What license does it have?
fail2ban-ui is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is fail2ban-ui still maintained?
Actively maintained. The last commit to fail2ban-ui was on Oct 11, 2026.
What can I use fail2ban-ui for?
Managing Fail2Ban on several Linux servers from one browser interface Reviewing and unbanning IPs without logging into each host Testing filter regex before deploying changes to production jails Pushing repeat attacker IPs to a firewall as permanent blocks
How do I install fail2ban-ui?
Run the container with the local connector: podman run -d --name fail2ban-ui --network=host \ -v /opt/fail2ban-ui:/config:Z \ -v /etc/fail2ban:/etc/fail2ban:Z \ -v /var/run/fail2ban:/var/run/fail2ban \ -v /var/log:/var/log:ro \ swissmakers/fail2ban-ui:latest Open http://localhost:8080 in your browser Go to Settings -> Manage Servers, enable the local connector, and click Test connection
Where can I get fail2ban-ui?
The source code and installation instructions are on GitHub: https://github.com/swissmakers/fail2ban-ui

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects