Diese Anleitung beschreibt exakt die Schritte, die wir durchgeführt haben, um AdGuard Home direkt auf OPNsense zu installieren und den gesamten DNS‑Verkehr (Router + Clients) über AdGuard zu leiten – inkl. DHCP‑Verteilung, NAT‑Redirect, Tests und Rückweg.
Getestet mit OPNsense 25.7 (amd64). Ersetze IPs & Namen passend zu deiner Umgebung. Im Beispiel: OPNsense LAN‑IP = 192.168.1.1, AdGuard läuft auf der Firewall selbst.
- OPNsense hat Internetzugang.
- Wir installieren AdGuard Home als Plugin über das mimugmail Repository.
- Unbound wird deaktiviert, damit Port 53/TCP+UDP für AdGuard frei ist.
- OPNsense selbst und alle Clients fragen AdGuard.
- Optional erzwingen wir per NAT‑Redirect, dass hartkodierte DNS (z. B. 8.8.8.8) ebenfalls über AdGuard laufen.
In der OPNsense‑Shell (Konsole oder SSH):
# Ordner anlegen (falls nicht vorhanden)
mkdir -p /usr/local/etc/pkg/repos
# Repo‑Config holen
fetch -o /usr/local/etc/pkg/repos/mimugmail.conf \
https://www.routerperformance.net/mimugmail.conf
# (optional, häufig nötig) Signatur-Fingerprint hinterlegen
mkdir -p /usr/local/etc/pkg/fingerprints/MIMUGMAIL
fetch -o /usr/local/etc/pkg/fingerprints/MIMUGMAIL/trusted \
https://www.routerperformance.net/mimugmail.pub
# Repos aktualisieren
pkg update -fHinweis: Wenn
pkg updateeine Signatur-/Fingerprint‑Meldung bringt, lösche lokale Repo‑Caches und wiederhole:rm -rf /var/db/pkg/repo-*.sqlite /var/cache/pkg/* pkg update -f
Variante A – Shell:
pkg search adguard # sollte u. a. os-adguardhome-maxit anzeigen
pkg install -y os-adguardhome-maxitVariante B – GUI:
- System → Firmware → Plugins
- Aktualisieren (Kreispfeil), nach adguard suchen
- os-adguardhome-maxit installieren
Nach der Installation erscheint Dienste → AdGuard Home im Menü.
GUI → Dienste → Unbound‑DNS → Allgemein
- Haken bei „Aktiviere Unbound“ entfernen → Anwenden
(Optional) in der Shell zusätzlich absichern:
service unbound stop
sysrc unbound_enable=NOKontrolle (Port 53):
sockstat -4 -l | grep ':53' || true
sockstat -6 -l | grep ':53' || trueEs sollte kein Dienst mehr auf :53 lauschen, bevor AdGuard startet.
GUI → Dienste → Adguardhome → Allgemein
- ✅ Aktivieren
- ✅ Primary DNS (OPNsense selbst nutzt dann AdGuard)
- Speichern
AdGuard Web‑UI öffnen: http://192.168.1.1:3000
Dort unter Settings → DNS eintragen:
- Upstream DNS servers (Beispiel DoH – je Zeile eine URL)
https://dns.quad9.net/dns-query https://cloudflare-dns.com/dns-query - Bootstrap DNS
9.9.9.10 1.1.1.1 - Listen interfaces / Bind Hosts: Alle Interfaces, Port 53 (TCP/UDP)
- Speichern und Dienst ggf. neu starten
Tipp: Lokale Namen kannst du in AdGuard → DNS rewrites pflegen, wenn Unbound komplett aus ist.
GUI → System → Einstellungen → Allgemein
- DNS‑Server:
192.168.1.1(LAN‑IP der Firewall – darauf läuft AdGuard)
→ „Verwende Gateway“: keiner - Erlaube das Überschreiben der DNS‑Serverliste durch DHCP/PPP auf WAN: Haken raus
- Verwenden Sie den lokalen DNS‑Dienst nicht als Nameserver für dieses System: Haken setzen
- Speichern
Dadurch nutzt OPNsense AdGuard als Resolver und nicht (mehr) Unbound.
Je LAN/VLAN den aktiven DHCP‑Dienst anpassen:
ISC DHCPv4:
- Dienste → DHCPv4 → [LAN/VLAN]
DNS‑Server:192.168.1.1→ Speichern / Übernehmen
Kea DHCPv4:
- Dienste → Kea DHCPv4 → Subnetze → Bearbeiten (Stift)
DNS‑Server (IPv4):192.168.1.1→ Speichern / Anwenden
(IPv6: analog in DHCPv6/RA die IPv6 der Firewall eintragen, wenn AdGuard auch v6 bedient.)
Clients neu verbinden / Lease erneuern (WLAN aus/an, ipconfig /renew, …).
Für jedes interne Interface/VLAN eine NAT‑Weiterleitung anlegen:
GUI → Firewall → NAT → Port Forward → „+“
- Interface: jeweiliges LAN/VLAN
- TCP/IP Version: IPv4 (oder IPv4+IPv6, wenn AdGuard v6 bedient)
- Protocol: TCP/UDP
- Source: any (oder das jeweilige Netz)
- Destination: any
- Destination Port: DNS (53)
- Redirect target IP:
192.168.1.1 - Redirect target port: 53
- Filter rule association: Add associated filter rule
- Save → Apply
Optional (Bypass erschweren):
- LAN/VLAN‑Regel: Block
TCP 853(DNS‑over‑TLS) nach any - LAN/VLAN‑Regel: Block
TCP/UDP 53zu „This firewall“, wenn Clients den Router selbst nicht direkt fragen dürfen
Client im LAN:
nslookup example.com 192.168.1.1
nslookup example.com 8.8.8.8 # sollte dank NAT-Redirect trotzdem über AdGuard gehenDie Anfragen müssen im AdGuard → Query Log sichtbar sein.
OPNsense selbst (Web‑GUI):
System → Diagnosen → DNS‑Lookup – Domain testen.
OPNsense Shell (optional):
drill example.com @127.0.0.1
sockstat -4 -l | grep ':53'-
Plugin nicht sichtbar / Repo‑Fehler
- Repo + Fingerprint wie oben anlegen, dann:
rm -rf /var/db/pkg/repo-*.sqlite /var/cache/pkg/* pkg update -f
- Repo + Fingerprint wie oben anlegen, dann:
-
Port 53 belegt / AdGuard startet nicht
- Unbound wirklich aus?
service unbound stop; sysrc unbound_enable=NO sockstat | grep ':53'
- Anderer Dienst auf 53? Dann anhalten/deaktivieren.
- Unbound wirklich aus?
-
Clients umgehen AdGuard
- DHCP liefert
192.168.1.1? Lease erneuert? - NAT‑Redirect pro Interface angelegt? (TCP/UDP 53 → 192.168.1.1:53, mit verknüpfter Filterregel)
- DHCP liefert
-
OPNsense hat kein DNS, wenn AdGuard down ist
- In diesem Setup (Alles über AdGuard) ist das erwartbar. Für mehr Robustheit: OPNsense auf Unbound umstellen oder zweite AGH‑Instanz als Fallback eintragen.
- AdGuard deaktivieren (GUI → Dienste → Adguardhome → Allgemein → Haken raus)
- Unbound wieder aktivieren (GUI → Dienste → Unbound‑DNS → Allgemein → Haken setzen → Anwenden)
- System → Einstellungen → Allgemein: DNS‑Server auf gewünschte Resolver ändern (z. B.
127.0.0.1für Unbound) und „lokalen DNS‑Dienst nicht als Nameserver…“ Haken entfernen - NAT‑Redirect‑Regeln löschen
- DHCP DNS‑Server zurück auf Wunschwerte
- Plugin entfernen (optional):
pkg delete -y os-adguardhome-maxit
# Repo + Fingerprint
mkdir -p /usr/local/etc/pkg/repos
fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf
mkdir -p /usr/local/etc/pkg/fingerprints/MIMUGMAIL
fetch -o /usr/local/etc/pkg/fingerprints/MIMUGMAIL/trusted https://www.routerperformance.net/mimugmail.pub
pkg update -f
# Plugin installieren
pkg install -y os-adguardhome-maxit
# Unbound aus, AdGuard an
service unbound stop; sysrc unbound_enable=NO
sysrc adguardhome_enable=YES; service adguardhome start
# Prüfung Port 53
sockstat -4 -l | grep ':53' || true
sockstat -6 -l | grep ':53' || trueFertig! Jetzt läuft deine OPNsense mit AdGuard Home als zentralem DNS‑Filter.
Wenn du willst, ergänze ich gerne noch IPv6‑Beispiele, Fallback‑Setup mit zweitem AdGuard oder DoH/DoT‑Sperrlisten.