Eigene DNS Blacklist (DNBL) betreiben
Letzte Aktualisierung am 24.08.2025, 15:08:49 Uhr
Leider ist es heute nach wie vor notwendig, einzelne IP-Adresse, IP Subnetze oder gar ganze ASN zu sperren. Nach wie vor steht Spam per E-Mail ganz hoch im Kurs. Zudem gibt es oftmals eben Anforderung einen Absender von der eigenen E-Mail Plattform fern zu halten.
Ich greife hier für auf Ubuntu Server 24.04 LTS sowie das Tool rbldnsd zurück. Das Tool wird aktuell durch das Spamhouse Project gepflegt. Das Paket ist auch für Debian 12 verfügbar.
Dieser Beitrag dient primär als Gedankenstütze für die Installation und der Basis Konfiguration. Denn ich habe im Netz keinen halbwegs aktuellen Link gefunden.
Firewall Regeln für SSH und DNS anlegen.
ufw allow ssh ufw allow 53/tcp ufw allow 53/udp
Firewall aktivieren.
echo y | ufw enable
Status der Firewall prüfen.
ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 53/tcp ALLOW Anywhere 53/udp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 53/tcp (v6) ALLOW Anywhere (v6) 53/udp (v6) ALLOW Anywhere (v6)
Deaktivieren des Systemd Resolver.
sudo systemctl disable systemd-resolved sudo systemctl stop systemd-resolved
Konfigurationsdatei löschen.
rm /etc/resolv.conf
Definieren von öffentlichen DNS-Server. In diesem Fall von Quad9.
echo 'nameserver 9.9.9.9' >> /etc/resolv.conf echo 'nameserver 149.112.112.112' >> /etc/resolv.conf echo 'nameserver 2620:fe::fe' >> /etc/resolv.conf echo 'nameserver 2620:fe::9' >> /etc/resolv.conf
DNS Auflösung testen.
ping google.de -4 ping google.de -6
Repository des Betriebssystem aktualisieren.
apt update
Das Tool rbldnsd über die Paketverwaltung installieren.
apt install rbldnsd
Service stoppen.
systemctl stop rbldnsd.socket
Anpassung an dem Systemd, damit der Service später das Logfile auch schreiben kann.
cp /usr/lib/systemd/system/rbldnsd.service /usr/lib/systemd/system/rbldnsd.service.original sed -i 's/^ProtectSystem=strict$/#ProtectSystem=strict/g' /usr/lib/systemd/system/rbldnsd.service systemctl daemon-reload
Das Verzeichnis für das Logfile erstellen.
mkdir -p /var/log/rbldns/
Berechtigungen für das Verzeichnis anpassen:
chown -R rbldns:rbldns /var/log/rbldns/
Eine Testzone anlegen.
cat /var/lib/rbldns/lab03_bl_dnset example.com *.example.com :127.0.0.2:Blacklisted: http://example.com/bl?$ EOF cat /var/lib/rbldns/lab03_bl_ip4set 80.12.242.128/28:127.0.0.2:Der Absender ist als Spammer aufgefallen EOF
Parameter für den Wrapper für rbldnsd hinzufügen.
cat > /etc/default/rbldnsd
RBLDNSD="- -w /var/lib/rbldns
-q
-f
-b 0.0.0.0/53
-t 1m:1m:1m
-l +/var/log/rbldns/rbl.log
-s +/var/log/rbldns/rbl.stats
dnsbl.lab03.daniel.wydler.eu:dnset:lab03_bl_dnset
dnsbl.lab03.daniel.wydler.eu:ip4set:lab03_bl_ip4set"
EOF
Dienst starten und prüfen.
systemctl start rbldnsd.service systemctl status rbldnsd.service
Prüfen, ob ein Logfile erstellt wurde.
ll /var/log/rbldns/
Prüfen, ob der Service auf Port 53 verfügbar ist.
ss -tulpen | grep ":53"
Logrotate für die Logfiles konfigurieren.
cat /etc/logrotate.d/rbldnsd
/var/log/rbldns/*.log {
rotate 30
daily
compress
missingok
postrotate
/bin/systemctl reload rbldnsd.service
endscript
}
EOF
DNS Abfrage mit Hilfe des Tools dig an Hand der Domain example.com.
dig example.com.dnsbl.lab03.daniel.wydler.eu @127.0.0.1 ; > DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu > example.com.dnsbl.lab03.daniel.wydler.eu @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADERdig example.com.dnsbl.lab03.daniel.wydler.eu TXT @127.0.0.1 ; > DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu > example.com.dnsbl.lab03.daniel.wydler.eu TXT @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADERDNS Abfrage mit Hilfe des Tools dig an Hand der IP-Adresse aus dem oben definierten Subnet in der Datei „/var/lib/rbldns/lab03.daniel.wydler.eu_bl_ip4set“.
dig 141.242.12.80.dnsbl.lab03.daniel.wydler.eu @127.0.0.1 ; > DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu > 141.242.12.80.dnsbl.lab03.daniel.wydler.eu @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADERdig 141.242.12.80.dnsbl.lab03.daniel.wydler.eu TXT @127.0.0.1 ; > DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu > 141.242.12.80.dnsbl.lab03.daniel.wydler.eu TXT @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADERLogfile prüfen, ob die Abfragen in das Logfile geschrieben worden sind.
cat /var/log/rbldns/rbl.log 1737899316 127.0.0.1 141.242.12.80.dnsbl.test.wydler.eu A IN: NOERROR/1/68 1737899319 ::1 141.242.12.80.dnsbl.test.wydler.eu A IN: NOERROR/1/68Viel Spaß beim Ausprobieren. 🙂
Streaming Film
Nonton Film gratis
Jasa Backlink
Download Anime Batch