Trivy is an open-source security scanner that finds vulnerabilities, misconfigurations, secrets and SBOM data in containers, filesystems, Git repos, VM images and Kubernetes.
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
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
Open http://localhost:8080 in your browser
- 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
Network traffic monitor that flags communication with known malicious domains, IPs, URLs and User-Agents using indicator lists called trails.
Self-hosted authorization engine (PDP) that evaluates YAML policies to decide who can perform which actions on which resources.
Self-hosted network reconnaissance tool in Go that discovers, identifies and monitors devices on your local network with a live web console.
Structured study notes in 18 modules covering Linux terminal, networking, permissions, scripting and kernel basics, based on the Linux Basics for Hackers book.
A terminal UI for Linux that lists listening network ports and lets you inspect or kill the owning processes.