This plugin manages an installed Fail2Ban service: jails, bans, and the two protection presets the panel cares about. fail2ban-client talks to a root-owned socket, so every jail query, ban and unban is issued through the root agent, while read-only probes such as the server version and whether the service is active are plain local calls. You can start, stop and restart the service, list jails with their filter and ban counters, open a single jail to see currently banned addresses, and ban or unban an address by hand after it is validated as an IP.
The defaults that matter most — bantime, findtime, maxretry and the ignore list — are readable and editable from the settings tab, with values clamped to sane ranges before they are written. Panel protection installs a managed filter and jail that watches the panel's own authentication log for its failure lines and bans on the panel's port; it can be enabled and disabled from the page, and its status reports separately whether the jail exists on disk and whether it is actually loaded. There is an equivalent toggle for the FTP jail, and a Service Jails tab enables ready-made jails for web-server HTTP auth, WordPress logins, Postfix, Dovecot and recidive (repeat offenders) — only where the service runs and its logs exist, including the panel's per-site logs. Any jail can get its own bantime, findtime and maxretry; each change is validated with fail2ban-client -t and undone if rejected.
The ban-candidates view lists addresses that are accumulating failures but have not crossed maxretry yet, aggregated from Fail2Ban's own Found lines inside the current findtime window and with already-banned addresses excluded, sorted by risk. That view depends on Fail2Ban logging at INFO level, which is the default — raise the log level and the Found lines disappear, so the list will simply be empty. The plugin requires the fail2ban package on the host and a reachable agent; without the agent, jail data cannot be read at all.
Availability: Free on every plan, including the Free plan.
Use VinzaPanel's REST API to download and install this app programmatically.
POST /plugins/api/download/fail2ban/ Content-Type: application/json { "panel_version": "1.0.0" }
{
"success": true,
"plugin_id": "fail2ban",
"version": "1.0.4",
"download_url": "..."
}