Leaked-Api Keys mit Abusix und Proxmox verhindern
Wenn du einen DNSBL-Dienst wie Abusix in deinem Proxmox Mail Gateway nutzt, kann es passieren, dass Spammer den API-Key durch direkte DNS-Anfragen auslesen. Um dies zu verhindern, kannst du PowerDNS verwenden, um die DNSBL-Abfragen zu anonymisieren und gleichzeitig sicherzustellen, dass dein Mail Gateway weiterhin korrekte Antworten erhält.Problemstellung
Proxmox Mail Gateway fragt DNSBL-Dienste ab und fügt deren Namen in die Return-Antwort. Dabei enthält die Antwort leider den API-Key ("454 4.7.1 Service unavailable; Client host <IP> blocked using 1234abcd.abusix.zone"). Im folgenden geht es darum, dies zu verhindern.Lösung
Durch PowerDNS und ein Lua-Skript kannst du Anfragen an DNSBL-Dienste anonymisieren. Das Skript leitet alle Anfragen mit der Domain-Endung .abusix automatisch auf die API-Key-Domain (API-KEY.combined.mail.abusix.zone) um. Der Spammer sieht nur, dass er auf einer Blacklist steht, ohne jemals den API-Key zu sehen.Voraussetzungen
- PowerDNS Recursor ist installiert (statt Unbound).
- Lua-Skripting ist aktiviert.
Schritt 1: Lua-Skript erstellen
Speichere folgendes Skript in /etc/powerdns/resolve.lua:
Code:
function preresolve(dq)
-- Alte und neue Domain-Endungen
local old_suffix = ".abusix."
local new_suffix = ".<API-KEY>.combined.mail.abusix.zone."
-- Den angefragten Domainnamen holen und prüfen
local qname = dq.qname:toString()
-- Prüfe, ob die Domain mit der alten Endung endet
if qname:sub(-#old_suffix) == old_suffix then
-- Alte Endung durch die neue ersetzen
local new_domain = string.sub(qname, 1, -string.len(old_suffix) - 1) .. new_suffix
-- Debug-Log (optional)
pdnslog("Rewriting domain: " .. qname .. " --> " .. new_domain, pdns.loglevels.Info)
-- CNAME hinzufügen und Weiterverfolgung aktivieren
dq:addAnswer(pdns.CNAME, new_domain)
dq.rcode = 0
dq.followupFunction = "followCNAMERecords"
return true -- Anfrage wurde verarbeitet
end
return false -- Anfrage wird normal weitergeleitet
end
Dieses Skript ersetzt alle Anfragen an .abusix durch die API-Key-Domain <API-KEY>.combined.mail.abusix.zone und stellt sicher, dass nur dein Mail Gateway korrekte DNSBL-Antworten erhält.
Schritt 2: PowerDNS konfigurieren
Bearbeite die Datei recursor.conf und füge Folgendes hinzu:
lua-dns-script=/etc/powerdns/resolve.lua
Speichere die Datei und starte den Recursor neu:
systemctl restart pdns-recursor
Schritt 3: Konfiguration im Proxmox Mail Gateway
- Öffne die DNSBL-Einstellungen in deinem Proxmox Mail Gateway.
- Trage als DNSBL-Domain nur noch abusix ein
Schritt 4: Funktion prüfen
Teste mit dig, ob die Umleitung funktioniert:dig @127.0.0.1 1.2.3.4.abusix.
Wenn alles korrekt eingerichtet ist, sollte PowerDNS die Anfrage umleiten. In den Logs kannst du sehen, wie die Domain umgeschrieben wird:
sudo journalctl -u pdns-recursor
Beispielausgabe:
Rewriting domain: 1.2.3.4.abusix. --> 1.2.3.4.<api-key>.combined.mail.abusix.zone.
Schritt 5: In einem Cluster musst du die gleichen Schritte auf allen Hosts umsetzen.
Last edited: