|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Script and blacklist urls partially taken from: |
| 4 | +# https://github.com/trick77/ipset-blacklist/blob/master/ipset-blacklist.conf |
| 5 | +# |
| 6 | + |
| 7 | +BLACKLISTS=( |
| 8 | + "https://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1" # Project Honey Pot Directory of Dictionary Attacker IPs |
| 9 | + "https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1" # TOR Exit Nodes |
| 10 | + "https://www.maxmind.com/en/high-risk-ip-sample-list" # MaxMind GeoIP Anonymous Proxies |
| 11 | + "http://danger.rulez.sk/projects/bruteforceblocker/blist.php" # BruteForceBlocker IP List |
| 12 | + "https://www.spamhaus.org/drop/drop.lasso" # Spamhaus Don't Route Or Peer List (DROP) |
| 13 | + "https://cinsscore.com/list/ci-badguys.txt" # C.I. Army Malicious IP List |
| 14 | + "https://lists.blocklist.de/lists/all.txt" # blocklist.de attackers |
| 15 | + "https://blocklist.greensnow.co/greensnow.txt" # GreenSnow |
| 16 | + "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset" # Firehol Level 1 |
| 17 | + "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/stopforumspam_7d.ipset" # Stopforumspam via Firehol |
| 18 | +) |
| 19 | + |
| 20 | + |
| 21 | +IP_BLACKLIST_TMP=$(mktemp) |
| 22 | +for i in "${BLACKLISTS[@]}"; do |
| 23 | + IP_TMP=$(mktemp) |
| 24 | + (( HTTP_RC=$(curl -L --connect-timeout 10 --max-time 10 -o "$IP_TMP" -s -w "%{http_code}" "$i") )) |
| 25 | + if (( HTTP_RC == 200 || HTTP_RC == 302 || HTTP_RC == 0 )); then # "0" because file:/// returns 000 |
| 26 | + command grep -Po '^(?:\d{1,3}\.){3}\d{1,3}(?:/\d{1,2})?' "$IP_TMP" | sed -r 's/^0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)$/\1.\2.\3.\4/' >> "$IP_BLACKLIST_TMP" |
| 27 | + elif (( HTTP_RC == 503 )); then |
| 28 | + echo >&2 -e "\\nUnavailable (${HTTP_RC}): $i" |
| 29 | + else |
| 30 | + echo >&2 -e "\\nWarning: curl returned HTTP response code $HTTP_RC for URL $i" |
| 31 | + fi |
| 32 | + rm -f "$IP_TMP" |
| 33 | +done |
| 34 | + |
| 35 | +sed -r -e '/^(0\.0\.0\.0|10\.|127\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[0-1]\.|192\.168\.|22[4-9]\.|23[0-9]\.)/d' "$IP_BLACKLIST_TMP"|sort -n|sort -mu |
| 36 | +rm -f "$IP_BLACKLIST_TMP" |
0 commit comments