Der Wächter deines Netzwerks.

Warden ist der DNS-Resolver von Purge.cc: er holt die Blocklisten nach Hause und hält jedes Gerät verschlüsselt, privat und unter deiner Kontrolle.

warden  ·  tui live
Ein DNS-Filter

Ein DNS-Resolver für Zuhause oder die Firma: er beantwortet jede Anfrage im eigenen Netz und hält Tracker und Bedrohungen auf, bevor sie sich überhaupt auflösen.

Funktionsweise ansehen
Geschrieben in Rust

Geschrieben in Rust, ohne externe Runtime-Abhängigkeiteneine statische Binärdatei, abgestimmt auf schnelles Auflösen, selbst auf Hardware so klein wie ein Pi.

Aufbau ansehen
Für Sicherheit gebaut

Sicherheit ist die Designvorgabe, keine Funktion: verschlüsselte Upstreams, geprüfte Antworten und ein Resolver, der im Fehlerfall schließt, statt durchzusickern.

Funktionen ansehen
Open Source

Veröffentlicht unter AGPL-3.0 — frei zum Betreiben, Forken, Prüfen und Ändern, und jede gehostete Ableitung muss ebenfalls offen bleiben.

Code ansehen
Eigene Listen oder Regeln

Die Listen von Purge.cc kommen mit Warden — zum Einschalten. Nimm die, die du willst, füge jede Blockliste hinzu, der du schon vertraust, oder schreib die Regeln selbst.

Regeln ansehen
Deklarativ

Die ganze Konfiguration steckt in einer TOML-Datei. Versioniere sie, vergleiche sie, spiele sie aus — kein versteckter Zustand, nichts, das du per Klick nachbauen müsstest.

Konfiguration ansehen
Vom Lab bis zu Enterprise

Eine Basis, bereit für jede Skalierung und jede Herausforderung.

Ein Resolver, gebaut, um DNS sicher und effizient zu filtern — einfach genug für ein homelab auf einem Pi oder einer VM und bereit, den Verkehr einer Organisation in großem Maßstab zu säubern.

HOMELAB

Homelab

Self-hosted · ein Netz

Warden für das Heimnetz. Läuft auf einem Raspberry Pi, einer VM oder einem NAS und schützt jedes Gerät am WLAN — keine Cloud, kein Konto, keine Gebühren.

  • 01Eine Binärdatei — auf einen Raspberry Pi, eine VM oder ein NAS legen.
  • 02Profile pro Person und Zeitfenster, vom Wohnzimmer bis zum Kinderzimmer.
  • 03TUI über SSH — Live-Logs und Block-Rate direkt vom Router.
  • 04Deine Regeln, deine Blocklisten. Nichts verlässt das Netz.
Homelab-Funktionen entdecken
ENTERPRISE

Enterprise

Self-hosted · on-prem

Derselbe Resolver, in der Größe einer Organisation. Richtlinien pro Abteilung, Filterung ohne aufgezeichnete Nachverfolgung der Nutzer, und Logs für Debug und Kontrolle — auf Hardware, die du selbst betreibst.

  • 01Privatsphäre der Nutzer bleibt an — gefiltert wird weiter, Nachverfolgung wird nicht aufgezeichnet.
  • 02Richtlinien pro Abteilung, nach Gruppe oder VLAN, aus der TUI.
  • 03Ausführliche Logs — jede Anfrage und jede Regel, damit du debuggen und die Kontrolle behalten kannst.
  • 04On-prem oder private Cloud. Dein DNS-Verkehr bleibt bei dir.
Enterprise-Funktionen entdecken
Eingebaute TUI

Eine TUI, die dir beim Beobachten hilft.

Keine Web-App zum Öffnen. Dashboard, Anfragenlog, Netzwerk, Filter — der ganze Resolver in einem Terminal, auch über SSH vom Router.

warden  ·  dashboard live
  1. Globaler Monitor

    Das Dashboard am Anfang ist das ganze Netz auf einen Blick: Block-Rate, Anfragenvolumen und der Zustand des Resolvers. Zähler aktualisieren sich, sobald Anfragen eintreffen, damit du den Verkehr live im Blick hast.

    • Block-Rate — 1h, 8h, 24h und 7d nebeneinander, damit du siehst, wie der Filter hält, und eine Anomalie erkennst, bevor sie sich festsetzt
    • Live-Volumen — Anfragerate und Record-Typen, sobald sie eintreffen: ein ruhiger Abend ist sofort klar, ein plötzlicher Anstieg oder eine Serie ungewöhnlicher Typen ist das erste Zeichen, dass ein Gerät aus der Reihe tanzt
    • Top-Verursacher — welche Liste am meisten greift und welche Geräte die meisten Anfragen schicken, damit du anfängst zu verstehen, was das Netz wirklich tut
    • Zustand des Resolvers — Cache-Hit-Rate, Spitzenlast und Daemon-Poll, damit du weißt, dass der Resolver antwortet — nicht nur, dass der Filter blockt
  2. Jede Anfrage im Detail

    Das Live-Log ist jede Anfrage von jedem Gerät, in dem Moment, in dem sie eintrifft. Isoliere einen Host, lies Typ und Ergebnis, und schreib von der Zeile selbst ein Allow oder ein Block — auf eine Liste, die du an ein Profil hängst.

    • Jede Anfrage — Zeit, Client, Domain, Typ, Ergebnis und RTT, damit du siehst, wer gefragt hat, was entschieden wurde und wie lange es dauerte
    • Nach Gerät filtern — alle Anfragen eines Hosts, dann eingrenzen nach Domain, Zeit oder nur Blockierte, damit du einem Gerät folgen kannst, ohne den Rest des LAN im Weg
    • Anfragetyp — A, AAAA, HTTPS und der Rest in jeder Zeile, damit du IPv4-Lookups von IPv6 unterscheidest und siehst, wie ein Gerät sich zu verbinden versucht
    • Direkt aus der Zeile — nimm den Namen aus der Zeile und schreib ihn auf eine eigene Allow- oder Blockliste, und hänge diese Liste an die Profile, die sie nutzen sollen
  3. Dokumentiere dein Netz

    Warden sieht sowieso jeden Client. Ordne einem Host einen Namen zu, damit du ihn erkennst, katalogisiere ihn nach Besitzer, Typ und Abteilung, und sieh, wie viel er spricht und wie viel davon blockiert wird.

    • Gerät zuordnen — nimm einen Host im LAN und gib ihm einen Namen, damit du kids-ipad liest, nicht 192.168.1.107
    • In Schichten katalogisieren — Besitzer, Typ, Abteilung und Gruppe am selben Host, damit du Kinder von Arbeitslaptops trennst, oder eine Abteilung von der anderen
    • Verkehr und Block-Rate — Anfragen heute und % blockiert in jeder Zeile, damit du siehst, was ein Gerät wirklich tut, nicht nur, dass es existiert
    • Das ganze LAN — zugeordnet und noch nicht, zuletzt gesehen vor einer Minute oder vor einer Woche, damit ein neues Handy oder ein vergessenes Gadget sich nicht verstecken kann
  4. Baue deine eigenen Regeln

    Profile wählen die Listen. Hänge ein Profil an eine Gruppe von Geräten — oder an ein ganzes Subnetz — und entscheide dann, pro Profil, ob ein Feed eine Blockliste, eine Allowlist oder stumm ist.

    • Profile auf Gruppen — schreib ein Profil und hänge es an eine Gerätegruppe, damit die Tablets der Kinder und die Arbeitslaptops nicht dieselbe Richtlinie teilen
    • Die Natur umkehren — eine Liste, die auf einem Profil blockt, kann auf einem anderen erlauben, also ist derselbe Feed nicht überall dieselbe Regel
    • Eine Liste, viele Einstellungen — erben, umkehren oder für ein Profil stumm schalten, ohne die Datei zu kopieren
    • Ein ganzes Subnetz — hänge ein Profil an eine CIDR, damit ein Lab-Bereich oder das Gäste-WLAN die Regeln bekommt, ohne jeden Host zu benennen
Unter der Haube

Entwickelt mit Sicherheit
im Kern.

Jede Schicht ist so gebaut, dass das Auflösen sicher bleibt — wie er blockt, wie er verschlüsselt, wie du konfigurierst und wie du die Kontrolle behältst.

Blockmethoden

Tracker verstecken sich hinter freundlichen Namen. Eine Liste, die du nicht geschrieben hast, kann versuchen, sich selbst freizuschalten. Warden geht die Kette entlang und packt in eine Sandbox, was er nicht selbst geschrieben hat.

Getarnte Tracker kommen nicht durch.

CNAME-Kette verfolgen.

Warden geht die CNAME-Kette entlang — bis zu 16 Sprünge — und blockt den Tracker auch dann, wenn er sich hinter einem First-Party-Namen versteckt.

Quelle src/filter/cname.rs

Eine abonnierte Liste kann sich nicht selbst freischalten.

Sandbox für externe Listen.

Listen, die du abonnierst, können keine allow-, $important- oder regex-Regel einschmuggeln. Diese Rechte haben nur die Regeln, die du selbst schreibst.

Quelle src/lists/parser.rs

Sicherheit

Der Sprung zum Upstream kann verschlüsselt sein. Anfragen, die wie ein Tunnel aussehen, werden abgelehnt.

Verschlüsseltes DNS, wenn du es wählst.

DNS over HTTPS oder TLS.

Cache-Misses können über DoH oder DoT rausgehen — die Upstreams wählst du. Eine frische Installation nutzt normales DNS.

Quelle src/upstream/resolver.rs

Tunnel werden abgelehnt, nicht aufgelöst.

Erkennung von DNS-Tunneling.

Eine Serie einzigartiger Namen außerhalb des Cache unter einer Domain ist die übliche Form von DNS-Exfiltration. Warden lehnt solche Anfragen ab. Standardmäßig an.

Quelle src/security/tunneling.rs

Konfigurierbar

Ein Resolver, viele Personen und viele Namen. Alles beugt sich deinen Regeln — ohne die globalen Listen anzufassen.

Verschiedene Profile für verschiedene Personen.

Richtlinien pro Person.

Jedes Profil wählt seine Listen, Ausnahmen und block-all. Unbekannte Clients nehmen das Standardprofil — oder werden abgelehnt, wenn du keines setzt.

Quelle src/config/schema/profile.rs

Gib deinen eigenen Boxen Namen.

Eigener lokaler DNS.

Lege interne Aliase an — nas.home, printer.home — aufgelöst im LAN. A und AAAA, plus automatisches PTR.

Quelle src/dns/local.rs

Kontrolle

Eine Richtlinie, die der Uhr folgt, und ein Resolver, den Geräte nicht umgehen.

Schlafenszeit ist Schlafenszeit.

Zeitpläne.

Ein Zeitplan legt ein Gerät oder eine Gruppe für ein Fenster auf ein anderes Profil — Nächte, Schulzeiten, Wochenenden. Übergang über Mitternacht inklusive.

Quelle src/config/schema/schedule.rs

Geräte können den Filter nicht umgehen.

Anti-bypass.

Nenne die DoH- oder DoT-Resolver, die nicht aufgelöst werden sollen. Anfragen nach diesen Namen werden abgelehnt, und eine Blockliste kann sie nicht überschreiben. Warden bringt keine eigene Liste mit — die Namen fügst du hinzu.

Quelle src/security/anti_bypass.rs
Installation