Integrations
Connect AbuseTrack to the security tools you already run. A couple of minutes, one command.
Choose a tool
Firewall
nftables · iptables · ufw
The community blocklist in your firewall, kept fresh.
Blocks threats
fail2ban
Bans on your Linux box, reported automatically.
Reports abuseBlocks threatsCrowdSec
Report what CrowdSec catches, block what the community flags.
Reports abuseBlocks threatsUniFi
What your UniFi gateway catches, reported.
Reports abuse
Every integration speaks the same public API. Point your firewall or intrusion-prevention tool at it and it works both ways: you report the attackers you catch back to the community, and you block the IPs everyone else flagged.
Report once, block everywhere
AbuseTrack works like a neighbourhood watch for servers. Every sensor that reports helps all others, and reporting servers get the best protection back.
- 01Your server catches an attacker
- 02The IP is reported automatically
- 03Every connected firewall drops it
- Community
- Blocklist with up to 5,000 entries. New attackers appear after 24 h.
- Contributorfor reporters
- Full real-time blocklist and +2,000 API requests per day, as long as your servers report.
Firewall
nftables · iptables · ufw
The community blocklist in your firewall, kept fresh.
Loads the blocklist into nftables, iptables/ipset or next to ufw and refreshes it every 30 minutes. Updates are atomic, a failed download never empties the firewall, private ranges and the SSH address you install from are never blocked. Docker hosts are covered too.
Detects your firewall automatically. To uninstall, run the same URL with "bash -s -- uninstall".
Install
curl -fsSL https://abusetrack.io/integrations/firewall/install.sh | \
AT_API_KEY=your_api_key bashfail2ban
Bans on your Linux box, reported automatically.
Every IP fail2ban bans (SSH brute-force and any jail you wire up) is reported to AbuseTrack with the threat and a short note on what the attacker did. The installer also loads the community blocklist into your firewall, so attackers others already caught never reach your server. Set AT_BLOCKLIST=0 to report only.
One command installs the reporter, the fail2ban action, an sshd jail and the firewall blocklist, then verifies your key.
Install
curl -fsSL https://abusetrack.io/integrations/fail2ban/install.sh | \
AT_API_KEY=your_api_key AT_API_URL=https://abusetrack.io bashCrowdSec
Report what CrowdSec catches, block what the community flags.
Works both ways. The installer reports every IP CrowdSec bans locally (WordPress brute-force, scanners, CVE probes) to AbuseTrack. And you can pull the community blocklist straight into CrowdSec, so flagged IPs get blocked by your bouncers on top of CrowdSec's own scenarios.
Report bans
A cron job forwards new local decisions to AbuseTrack. It only reports your own detections, so anything you pull from the community feed is never reported back.
curl -fsSL https://abusetrack.io/integrations/crowdsec/install.sh | \
AT_API_KEY=your_api_key AT_API_URL=https://abusetrack.io bashBlock with the community list
The installer imports the community blocklist as CrowdSec decisions every 4 hours, so every bouncer you run blocks flagged IPs. Set AT_BLOCKLIST=0 to report only. To pull the raw feed yourself:
curl -fsSL -H "Authorization: Bearer your_api_key" \
"https://abusetrack.io/api/v1/blocklist.txt?score=60&comments=0"UniFi
What your UniFi gateway catches, reported.
Point your UniFi gateway's syslog at a small listener. Every Threat Management (IDS/IPS) detection and firewall drop with an external attacker IP is reported to AbuseTrack. Report-only, runs as a service, standard-library Python with no pip installs.
One command installs the syslog listener as a systemd service. Then point UniFi's Activity Logging (Syslog) at it and enable Security Detections.
Install
curl -fsSL https://abusetrack.io/integrations/unifi/install.sh | \
AT_API_KEY=your_api_key AT_API_URL=https://abusetrack.io LISTEN_PORT=514 bashOther ways to connect
Already using AbuseIPDB?
Report to both, no new software
AbuseTrack speaks the AbuseIPDB API v2 (/api/v2/check, /api/v2/report, /api/v2/blacklist). Tools written for AbuseIPDB work by changing the URL and using an AbuseTrack key. With fail2ban you keep your AbuseIPDB action and add a copy that reports to AbuseTrack.
1. Copy the stock action with our URL
sed 's#https://api.abuseipdb.com#https://abusetrack.io#' \
/etc/fail2ban/action.d/abuseipdb.conf \
> /etc/fail2ban/action.d/abusetrack.conf2. Add it to a jail in jail.local, then reload fail2ban
action = %(action_)s
abusetrack[abuseipdb_apikey="your_api_key", abuseipdb_category="18,22"]Category ids are the same as AbuseIPDB's (18 brute force, 22 SSH, 14 port scan). Each IP is accepted once per 15 minutes per account.
Try it without an account
Also for pfSense, OPNsense and MikroTik
The community blocklist works without an API key: up to 5,000 entries, new IPs after 24 hours. Firewalls that load a list from a URL can pass the key as a parameter; accounts that report then receive the full real-time list.
Look at the list now
curl -s https://abusetrack.io/api/v1/blocklist.txt | headURL for an alias or address list (refresh every 30 minutes)
https://abusetrack.io/api/v1/blocklist.txt?comments=0&key=your_api_keyWithout a key: 12 requests per hour per IP. Only use the key parameter on firewalls you control, because URLs can end up in logs.
Any other tool
It all runs on a small REST API: submit reports, look up an IP, or pull the blocklist feed. Wire it into your SIEM, a firewall or a script in a few lines.