Category Archives: Tutorials

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 wie Abusix direkt ab. Dabei enthält die Anfrage oft einen API-Key (z. B. 1234abcd.abusix.zone). Falls ein Spammer versucht, diese Anfrage direkt nachzuvollziehen, wird der API-Key möglicherweise geleaked.

Lösung

Durch PowerDNS und ein Lua-Skript kannst du Anfragen an DNSBL-Dienste wie *.abusix. anonymisieren. Das Skript leitet alle Anfragen mit der Domain-Endung .abusix. automatisch auf die API-Key-Domain (z. B. <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.
  • Lua-Skripting ist aktiviert.

Schritt 1: Lua-Skript erstellen

Speichere folgendes Skript in /etc/powerdns/resolve.lua:

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:

bashCode kopierensudo 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, ohne API-Key:Code kopieren
    abusix

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.

Warum diese Lösung?

  1. API-Key-Schutz: Dein API-Key bleibt geheim, selbst wenn Spammer versuchen, ihn durch DNS-Abfragen zu ermitteln.
  2. Proxmox bleibt funktional: Das Mail Gateway erhält weiterhin die korrekten DNSBL-Antworten.
  3. Flexible Erweiterung: Du kannst das Skript anpassen, um weitere Dienste oder Endungen zu anonymisieren.

Zusammenfassung

Mit PowerDNS und Lua kannst du sensible API-Keys vor unbefugten Zugriffen schützen. Dieses Skript sorgt dafür, dass DNSBL-Anfragen dynamisch umgeleitet werden, ohne dass dein Mail Gateway beeinträchtigt wird. Eine elegante Lösung für ein häufiges Sicherheitsproblem.

Universität des Saarlandes VPN mit Linux

Die Universität des Saarlandes bewirbt öffentlich AnyConnect als VPN Client für ihren VPN Zugang. AnyConnect verursacht jedoch massive Probleme bei vielen freien Betriebssystemen. Allerdings bietet die Uni einen automatischen Konfigurator für iPhones an. Aus dieser Konfiguration kann man auch eine gültige Beschreibung für vpnc oder andere freie VPN Lösungen extrahieren, die auf normalen IPSec Tunneln basieren. Hier also die benötigten Konfigurationswerte für vpnc:

  • Gateway: vpnserver.rz.uni-saarland.de
    (der übrigens auf asa1.uni-saarland.de verlinkt)
  • Gruppe: world
  • Gruppenpassword: world
  • Benutzername: Euere Studentenkennung (s9…)
  • Passwort: Euer normales Unipasswort

Fertig ist die VPN Verbindung zu Uni und somit der Zugriff auf viele wissenschaftliche Paper. Da der VPN Server einen gerne bei Inaktivität trennt, empfiehlt es sich ein ping google.de im Hintergrund laufen zu lassen. Einige behaupten auch, dass sie eine Verbindung mit openvpn hinbekommen, hier fehlt mir aber das nötige Zertifikat. Ich habe erfolglos alle Zertifikate durchprobiert die ich von der Uni gefunden habe und ohne Zertifikat geht es offenbar nicht.