v0.7.1 · updated · GitHub

block / unban

Manual firewall. modifies firewall — adds/removes legacy iptables rules. Syncs with guard state and audit log.

Requires root
Both need sudo. Use --list first to audit before changing state.

Synopsis

caddy-analyze block <ip...> [flags]
caddy-analyze unban <ip...> [flags]
caddy-analyze unban --all
caddy-analyze unban --list        # audit — read-only

Flags

FlagShortDefaultDescription
--audit-log/var/log/caddy-analyzer-audit.jsonlAudit log path (empty disables)
--audit-syslogForward audit events to syslog UDP
--webhook-url / --audit-webhookForward audit events to a generic or provider webhook
--state-file/var/lib/caddy-analyzer/blocked.jsonGuard state sync (empty disables)
--all-Afalseunban: all currently blocked IPs
--list-lfalseunban: list without removing (read-only)

Minimal example

read-only first, then modifies firewall:

# audit — who is blocked?
sudo caddy-analyze unban --list
# block one IP (idempotent — no duplicate rule if already blocked)
sudo caddy-analyze block 203.0.113.5
# unban it
sudo caddy-analyze unban 203.0.113.5
# check audit
cat /var/log/caddy-analyzer-audit.jsonl | tail

Advanced example

modifies firewall — bulk + full reset. Read-only check first on remote hosts.

# audit before bulk
sudo caddy-analyze unban --list

# block multiple (non-zero exit if any IP fails)
sudo caddy-analyze block 203.0.113.5 198.51.100.23 203.0.113.18

# reset all (danger — verify you are not about to unblock an active attacker)
sudo caddy-analyze unban --list
sudo caddy-analyze unban --all