Last active
May 1, 2021 16:11
-
-
Save dln/1348882101c4ffb43f103e5e73a8cc68 to your computer and use it in GitHub Desktop.
Minimal script to update IP blocklists from various sources
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -eo pipefail | |
| blocklists=( | |
| # Team Cymru bogons lists | |
| https://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt | |
| # SpamHaus DROP (Don't Route or Peer) | |
| https://www.spamhaus.org/drop/drop.txt | |
| # SpamHaus Extended DROP (Extended Don't Route or Peer) | |
| https://www.spamhaus.org/drop/edrop.txt | |
| # BlockList.de complete | |
| https://lists.blocklist.de/lists/all.txt | |
| # FireHOL Level1 | |
| https://iplists.firehol.org/files/firehol_level1.netset | |
| # SSL Abuse Blacklist | |
| https://sslbl.abuse.ch/blacklist/sslipblacklist.txt | |
| # Greensnow attack list | |
| https://blocklist.greensnow.co/greensnow.txt | |
| # China | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_cn.netset | |
| # Russia | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_ru.netset | |
| # Iraq | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_iq.netset | |
| # Iran | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_ir.netset | |
| # Syria | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_sy.netset | |
| # Afghanistan | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_af.netset | |
| # Saudi Arabia | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_sa.netset | |
| # Kazakhstan | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_kz.netset | |
| # North Korea | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_kp.netset | |
| # Vietnam | |
| https://github.com/firehol/blocklist-ipsets/raw/master/ipip_country/ipip_country_vn.netset | |
| ) | |
| ipset destroy -! blocklist-tmp || true | |
| ipset save blocklist | head -n1 | sed 's/blocklist/blocklist-tmp/' | xargs ipset || true | |
| echo ${blocklists[@]} \ | |
| | xargs -n1 curl -s \ | |
| | gawk 'match($0, /^([0-9/.]+)/, a){ print a[1]}' \ | |
| | xargs -n1 ipset add -! blocklist-tmp | |
| ipset swap blocklist blocklist-tmp | |
| ipset destroy blocklist-tmp |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment