DNS Blacklist (wie Pi Hole) für Unbound DNS Server (OPN Sense)

Die alte Version des Scriptes mit über 1 Million geblockten Namen. Da aber z.B. postfinance.ch in der phishing Liste ist, ist die Qualität der Listen fragwürdig:

#!/bin/sh
 
BLACKLISTS="
https://blockList.site/app/dl/crypto
https://blocklist.site/app/dl/fraud
https://blocklist.site/app/dl/malware
https://blocklist.site/app/dl/phishing
https://blocklist.site/app/dl/ransomware
https://blocklist.site/app/dl/scam
"
 
TMP_FILE=/tmp/dns-blacklist-$(date +%s)
for LIST in $BLACKLISTS;
do
    echo "fetching $LIST"
    curl -sS $LIST >> $TMP_FILE
done
 
echo "creating unbound file"
grep -v -e '^$' $TMP_FILE | sort | uniq | awk '{print "local-zone: \""$1"\" always_nxdomain"}' > /var/unbound/ad-blacklist.conf
chown unbound:unbound /var/unbound/ad-blacklist.conf
 
echo "blocking $(cat /var/unbound/ad-blacklist.conf | wc -l) domains"
 
echo "restart unbound"
pluginctl dns

Darum hier die neuere Version des Scriptes welches die beliebte StevenBlack adware und malware Liste verwendet:

#!/bin/sh

BLACKLISTS="
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
"

REDIRECT_TARGET="127.0.0.1"

TMP_FILE=/tmp/dns-blacklist-$(date +%s)
for LIST in $BLACKLISTS;
do
    echo "fetching $LIST"
    curl -sS $LIST >> $TMP_FILE
done

echo "creating unbound file with redirects to $REDIRECT_TARGET"
grep '^0\.0\.0\.0' $TMP_FILE | awk -v redirect=$REDIRECT_TARGET '{if ($2!="0.0.0.0") print "local-zone: \""$2"\" redirect\nlocal-data: \""$2" A "redirect"\""}' > /var/unbound/ad-blacklist.conf

chown unbound:unbound /var/unbound/ad-blacklist.conf

num=$(cat /var/unbound/ad-blacklist.conf | wc -l)
echo "blocking $(expr $num / 2) domains"

echo "restart unbound"
pluginctl dns

Das Script wurde in /root/create-ubound-blacklist gespeichert und mit chmod +x create-ubound-blacklist ausführbar gemacht. Anschliessend habe ich noch den entsprechenden crontab Eintrag hinzugefügt, der jede Nacht um 4:15 Uhr das Script ausführt:
15 4 * * * /root/create-ubound-blacklist > /dev/null

Nun muss das blacklist file in Unbound noch konfiguriert werden:

Weitere hilfreiche Links: