https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset Open raw list Description
DROP stands for Do not Route Or Peer. It names entire ranges that are demonstrably under criminal control or were taken over through forged registrations. The list is deliberately small and conservatively maintained, which makes it suitable for an outright block on a router. Served here in the CIDR form prepared by the FireHOL project, because Spamhaus now publishes the original as JSON only.
Integration
- Go to Firewall → pfBlockerNG → DNSBL → DNSBL Groups (or IP for IP lists).
- Click Add, give the group a name and add the URL below as source (Format: Auto).
- Save, then run Update → Force Reload.
https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset Address list per script
Fetch the list and import it into an address list called blocklist:
/tool fetch url="https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset" dst-path=blocklist.rsc
/import blocklist.rsc If the list is a plain text file with one address or CIDR per line, convert it first:
/tool fetch url="https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset" dst-path=blocklist.txt
:foreach line in=[/file get blocklist.txt contents] do={
/ip firewall address-list add list=blocklist address=$line comment="Spamhaus DROP"
} Use the list in the firewall
/ip firewall filter add chain=forward src-address-list=blocklist action=drop comment="Spamhaus DROP"
/ip firewall filter add chain=forward dst-address-list=blocklist action=drop comment="Spamhaus DROP" Schedule the fetch with /system scheduler to keep the list current. Very large lists consume RAM, so check the available memory of your device first.
banIP (recommended)
- Install the package:
opkg update && opkg install banip luci-app-banip - Open LuCI → Services → banIP → Feeds and add a custom feed with the URL below.
- Enable the feed and click Save & Apply.
https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset Manual with nftables
wget -qO /tmp/blocklist.txt "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset"
nft add set inet fw4 blocklist { type ipv4_addr; flags interval; }
nft -f - <<EOF
$(awk '!/^[#;]/ && NF {print "add element inet fw4 blocklist { " $1 " }"}' /tmp/blocklist.txt)
EOF
nft add rule inet fw4 forward ip saddr @blocklist drop ipset create blocklist hash:net -exist
curl -fsSL "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset" | grep -Eo '^[0-9]{1,3}(.[0-9]{1,3}){3}(/[0-9]{1,2})?' |
while read -r net; do ipset add blocklist "$net" -exist; done
iptables -I INPUT -m set --match-set blocklist src -j DROP
iptables -I FORWARD -m set --match-set blocklist src -j DROP Persist the set and re-run the download from cron to keep it current:
ipset save blocklist -f /etc/ipset.blocklist
# /etc/cron.daily/blocklist
Add the list as an ipset in /etc/firehol/firehol.conf:
ipset4 create blocklist hash:net
ipset4 addfile blocklist "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset"
blacklist4 full inface any src ipset:blocklist Reload with firehol try and confirm before making it permanent.
- Go to Firewall → Aliases and click +.
- Choose type URL Table (IPs), set a refresh interval (for example 1 day) and paste the URL below.
- Save and apply, then use the alias as source in a block rule under Firewall → Rules.
https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset - Go to Firewall → pfBlockerNG → IP → IPv4 and click Add.
- Paste the URL below as source, set State to ON and pick the action (Deny Both is the usual choice).
- Save, then run Update → Force Reload → IP.
https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset curl -fsSL "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/spamhaus_drop.netset" -o /var/lib/suricata/data/blocklist.txt Reference the file from a rule using a dataset:
alert ip [!$HOME_NET] any -> $HOME_NET any (msg:"Spamhaus DROP match";
ip.src; dataset:isset,blocklist, type string, load blocklist.txt; sid:1000001;) 