[TUTORIAL] DNS Rewrite zum API-Key-Schutz bei DNSBL Anfragen

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

  1. Öffne die DNSBL-Einstellungen in deinem Proxmox Mail Gateway.
  2. Trage als DNSBL-Domain nur noch abusix ein
Durch das Lua-Skript werden alle Anfragen an .abusix automatisch umgeleitet. Der API-Key bleibt sicher verborgen.


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:
Das wäre zu einfach gewesen ... :eek:

Die Blocklists sind in der Einstellung im WebUI furchtbar. Könnte man hier ein Change für die Zukunft erwarten?
Ich denke, es ist ein generelles Problem, welches nahezu jeden Nutzer trifft. Eine schönere Einstellbarkeit im UI (also alles ist besser als ein 200px Eingabefeld für 500 Zeichen Konfiguration) + Anpassung der Antwort über die WebUI wären ein sehr schönes Feature.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!