Changes for version 0.2.0 - 2026-08-08
- Add the openwrt backend, driving OpenWrt fw4 via UCI, either locally or on a remote router over ubus JSON-RPC. Supports CIDR bans.
- Add commit, for backends holding state back from persistent storage. openwrt is currently the only one that implements it.
- Add Net::Firewall::BlockerHelper::Util, a mixin of shared internal helpers inherited by the frontend and all backends. _valid_cidr, _uri_escape, _json, and _kill_commands now live there instead of being duplicated in each.
- JSON backends now use JSON instead of JSON::PP, picking up JSON::XS when it is installed. Added as a runtime recommends.
- Fix re_init erroring with notInited after a teardown or stop. Both clear the inited flag while keeping the ban list, and the frontend has no init of its own, so there was no way to bring the setup back. re_init no longer requires the backend to be inited.
- ipfw: delete the rule before destroying the table in both init's cleanup and teardown. ipfw will not destroy a table a rule still references, so the old order left the table behind and the next create failed with "File exists", making re_init fail every other run.
- ipfw: teardown now attempts both of its commands before raising, so an already removed rule no longer stops the table being destroyed.
- Document every internal method to the same standard as the public API: purpose, arguments, return format, and examples.
Documentation
Modules
Helps with managing firewalls for banning IPs.
Shared internal helpers mixed into the frontend and backends.
Report banned IPs to AbuseIPDB.
Akamai Network Lists backend for Net::Firewall::BlockerHelper.
AWS WAFv2 IP set backend via the aws CLI.
Azure NSG backend via the az CLI.
BGP Remote Triggered Black Hole backend (via ExaBGP, GoBGP, or FRR).
Check Point Management (web_api) backend.
Cisco Firepower Management Center backend via the REST API.
Google Cloud Armor backend via the gcloud CLI.
Cloudflare IP access rules backend for Net::Firewall::BlockerHelper.
DNS RPZ blocklist backend via nsupdate.
Example dummy backend for testing purposes.
F5 BIG-IP backend using the iControl REST API.
Fastly Edge ACL backend for Net::Firewall::BlockerHelper.
Render banned IPs to a file and run a reload hook.
firewalld backend for Net::Firewall::BlockerHelper.
Fortinet FortiGate backend via the REST API.
TCP wrappers hosts.deny backend.
IPFW backend for Net::Firewall::BlockerHelper.
iptables/ip6tables backend for Net::Firewall::BlockerHelper.
Juniper SRX backend via the Junos REST API.
Blackhole route backend for Net::Firewall::BlockerHelper.
Citrix NetScaler/ADC backend for Net::Firewall::BlockerHelper.
nftables backend for Net::Firewall::BlockerHelper.
NetBSD npf backend for Net::Firewall::BlockerHelper.
Dynamic DNS blocklist backend for Net::Firewall::BlockerHelper.
OpenWrt fw4 backend for Net::Firewall::BlockerHelper.
OPNsense firewall alias backend for Net::Firewall::BlockerHelper.
Palo Alto Networks PAN-OS backend via the User-ID XML API.
pf backend for Net::Firewall::BlockerHelper.
pfSense firewall alias backend for Net::Firewall::BlockerHelper.
MikroTik RouterOS backend for Net::Firewall::BlockerHelper.
MikroTik RouterOS backend using the REST API.
A shell backend for Net::Firewall::BlockerHelper.
Shorewall backend for Net::Firewall::BlockerHelper.
ufw backend for Net::Firewall::BlockerHelper.
VyOS backend using the HTTP API.
XDP/eBPF backend for Net::Firewall::BlockerHelper.