Externer DNS Server (AdGuard) wie am besten konfigurieren?

Started by Schubbie, April 23, 2022, 11:21:58 AM

Previous topic - Next topic
Moin,
ich habe mal wieder eine Frage. Zu oben genanntem findet man unterschiedliche Lösungswege, nur was soll man machen?
Weiterleitung an AdGuard wie? Per Regel pro Schnittstelle, per DHCP pro Schnittstelle, per Unbound DNS?
Dann soll man AdGuard wieder auf die OPNsense verweisen lassen? Wie das und wie einen Kreislauf vermeiden?
Ich habe auch ein Gastnetzwerk, welches dann auch darüber laufen sollte. Daher glaube ich, das Weiterleitung Post:DNS pro Schnittstelle an AdGuard das Beste sein wird und das Gastnetzwerk dann immer noch abgeschottet bleibt. Ist dann aber gewährleistet, dass die DNS-Anfragen über die OPNsense gehen oder ist, wenn ich Port:DNS als erste Regel setze folgendes gegeben, wenn AdGuard nicht erreichbar ist und die in OPNsense eingetragenen DNS-Server werden als nächstes verwendet?

Ich möchte AdGuard nicht per inoffiziellem Plugin auf der OPNsense haben, also nicht per SSH o.ä. installieren. Gäbe es ein offizielles Plugin, dann ja, aber so nicht, da ich mich zu selten damit beschäftige.
Da AdGuard auf einem Synology NAS in einer Home Assistant VM läuft und es wahrscheinlich ist, dass AdGuard während "Wartungsarbeiten" nicht läuft, wie richte ich einen "Backup-DNS" in OPNsense ein? Sprich als erstes soll immer AdGuard genutzt werden und nur wenn dieser nicht erreichbar ist, soll ein anderer in der OPNsense eingetragener DNS-Server verwendet werden.

Die Hostweiterleitung mache ich dann am Besten in AdGuard (z.B FQDN direkt an PBX im internen Netzwerk) und deaktiviere den Unbound DNS? Oder wie löse ich das am besten? In einem anderen Thema wird Unbound DNS als "unsauber" bezeichnet.

Ich weiß, dass vermutlich alles bereits behandelt wurde, leider findet man unterschiedliche Anleitungen mit unterschiedlichen Lösungswegen und weiß dann wieder nicht, was man nun machen soll.

Ich bedanke mich bereits im Voraus für die Unterstützung.

Mit freundlichem Gruß
Andreas

Hallo,

ich kanns mal kurz beschreiben wie ich es mache ( privat bei mir )

- Adguard läuft bei mir mit auf der OPNSense, somit hat der immer die Gateway-Adresse der OPNSEnse pro VLan auf Port 53
- als Upstream nutze ich Unbound auf der OPNSense auf Port 5353
- der DNS ist per DHCP in allen VLAN bekannt gegeben
- Das Gäste-Netz nutzt den genauso, die Trennung ist per VLAN und Firewallregeln zu den anderen VLAN gegeben.

Moin,
bei mir ist es auch lediglich privat, ansonsten würde ich damit nicht so "rumspielen" ;-)

Quote- Adguard läuft bei mir mit auf der OPNSense, somit hat der immer die Gateway-Adresse der OPNSEnse pro VLan auf Port 53
Das würde ich gerne nicht wollen, damit ich nicht per SSH oder sonstigem updaten muss und ich habe es gerne komplett in einer Sicherung drin. Ich weiß nach 1/2 Jahr nicht mehr, wie ich es konfiguriert habe und habe dann meist nicht spontan die Zeit.

Quote- als Upstream nutze ich Unbound auf der OPNSense auf Port 5353
Sprich, den trägst du in AdGuard ein und der verweist dann auf "Dienste" -> "Unbound DNS" der auf Port 5353 konfiguriert ist? Warum? Was macht den Unbound DNS dann noch?

Quote- der DNS ist per DHCP in allen VLAN bekannt gegeben
Wo liegt der Vorteil gegenüber einer Regel? Ich muss doch eh eine Regel für das Gast-Netzwerk erstellen? Oder geht es nur per Regel nicht?

Irgendwie fehlt mir noch der Funke, um es zu verstehen.
Eigentlich muss ich doch nur die OPNsense dazu bewegen, dass alle Anfragen, außer die von AdGuard, von AdGuard beantwortet werden. Warum soll man AdGuard nochmals auf die OPNsense verweisen lassen (per Upstream DNS?).
Dieses wäre aus meiner Sicht gut, wenn man es ohne Unbound DNS oder sonstigem löst, da AdGuard dieses und auch die Hostweiterleitungen übernehmen kann?

Wie bekomme ich es jedoch hin, dass OPNsense einen "Backup-DNS" nutzt, wenn AdGuard ausfallen sollte?

Oder funktioniert es ganz einfach nicht so, wie ich es mir vorstelle?

Quote from: Schubbie on April 23, 2022, 03:52:21 PM
Das würde ich gerne nicht wollen, damit ich nicht per SSH oder sonstigem updaten muss und ich habe es gerne komplett in einer Sicherung drin. Ich weiß nach 1/2 Jahr nicht mehr, wie ich es konfiguriert habe und habe dann meist nicht spontan die Zeit.
ich erstel per Cronjob ein komplette Sicherung des AdGuard-Ordners und schiebe den auf meine NAS, hat das gestern testen müssen, restore funktioniert problemlos, Daten s inkl. aller Filterlisten sind vorhanden.

Update von Adguard erfolgt per WebGUI.

Quote from: Schubbie on April 23, 2022, 03:52:21 PM
Sprich, den trägst du in AdGuard ein und der verweist dann auf "Dienste" -> "Unbound DNS" der auf Port 5353 konfiguriert ist? Warum? Was macht den Unbound DNS dann noch?
Unbound sprich als Upstream die root-DNS-Server an

Quote from: Schubbie on April 23, 2022, 03:52:21 PM
Wo liegt der Vorteil gegenüber einer Regel? Ich muss doch eh eine Regel für das Gast-Netzwerk erstellen? Oder geht es nur per Regel nicht?
DNS-Server muss ich ja eh per DHCP bekannt geben, damit die Client den kennen, genauso die Gateway oder NTP-Server.

Quote from: Schubbie on April 23, 2022, 03:52:21 PM
Eigentlich muss ich doch nur die OPNsense dazu bewegen, dass alle Anfragen, außer die von AdGuard, von AdGuard beantwortet werden. Warum soll man AdGuard nochmals auf die OPNsense verweisen lassen (per Upstream DNS?).
Kannst Unbound auch weglassen und AdGuard direkt zu öffentlichen DNS sprechen lassen.

Damit DNS-Anfragen aus dem Nezu an Adguard ( oder sonst einem DNS ) gehen, nutzt man DHCP, wo der DNS-Server eingetragen wird.
Das ist Standart.



@Tuxtom007

Achtung Hinweis:
Port 5353 ist für multicast DNS (mDNS) reserviert daher könnte für Upstream- Unbound DNS z.Bsp.: Port 53053 oder 53530 genutzt werden... also AdGuarHome -> Upstream- Unbound DNS Port xxxxx. Hätte noch den Vorteil das Unbound DNS die Blocklist nutzbar wäre.

Die Sicherung per Cronjob des AdGuard-Ordners, wie hast du dies gelöst unter OPNSense, kannst du
uns im Detail teilhaben lassen an Deiner Lösung ?

Vielen Dank
OPNsense 22.7.9*WG-kmod*OpenSSL*OpenVPN* AdGuardHome*i7-7700*32GB*256SSD*ix0-1, igb0-4, em0*OpenVPN+Wireguard WG0, WG1*NetGear ProSafe XS508*AP Netgear WAX610*alles echtes Blech* Sorry, my English is translated via app*

Quote from: Mondmann on April 23, 2022, 07:34:40 PM
Port 5353 ist für multicast DNS (mDNS) reserviert daher könnte für Upstream- Unbound DNS z.Bsp.: Port 53053 oder 53530 genutzt werden... also AdGuarHome -> Upstream- Unbound DNS Port xxxxx. Hätte noch den Vorteil das Unbound DNS die Blocklist nutzbar wäre.

Die Sicherung per Cronjob des AdGuard-Ordners, wie hast du dies gelöst unter OPNSense, kannst du
uns im Detail teilhaben lassen an Deiner Lösung ?
Guter Hinweiss mit dem Port, werde ich nachher direkt ändern.

Dann gibt es auch Details wie ich das Backup mache - ist total easy


EDIT: so hier in Kürzfassung meine Adguard-Backup-Lösung:

Da es von Adguard selber keine Lösung gibt, wei man einfach und schnell die Konfig sichert oder FIlterlisten per Script importiert, bin ich den Weg über die Sicherung des kompletten Verzeichniss gegangen. Damit wird auch die Konfiguration und alle Filterlisten mitgesichert.


- rsync auf der OPNSense installieren, falls nicht vorhanden
pkg install rsync

- ssh-key auf der OPNSense erstellen wenn nicht vorhanden:
cd /root/.ssh/
ssh-keygen -t rsa -b 4096

und den Inhalt der Datei. id_rsa.pub. in die   authorized_keys auf der NAS eintragen unter dem Nutzer, den man verwendet, bei mir bene der admin-user auf der NAS.
Das wird für den passwortlosen Zugang benötigt.

- neuen Ordner auf der Disk anlegen fürs zwischenspeichern der Backups. unter
mkdir /mnt/Config_Adguard

- Unterm root-User Homeverzeichniss eine Ordner fürs Script angelegt
mkdir /root/scripts

darin liegt das Script:  AdguardHome_Backup.sh, diese ausführbar machen:
chmod 755 AdguardHome_Backup.sh


#!/bin/sh
SERVER=<IP oder DOMAIN der NAS hier eintragen>

# delete Backup-files older than 36days
/usr/bin/find /mnt/Config_Adguard/ -name 'AdguardHome*' -mtime +36 -exec rm -rf {} \;

# create new Backup-Files from AdGuardHome-Folder
/usr/bin/tar zcvf /mnt/Config_Adguard/AdguardHome_`date +"%Y%m%d_%H%M%S"`.tgz /usr/local/AdGuardHome/

# copy Backup-Folder to NAS with rsync
/usr/local/bin/rsync --delete -avz  /mnt/Config_Adguard/ admin@$SERVER:/share/Backup/OPNSense/AdguardHome/

# finish
exit


Was macht das Script:
- House-Keeping, löschen alle File die älter als 36 Tage sind, meine OPNSense hat Plattenplatz genug.
- erstellen eine Backup-Files mit aktuellen Datum/Uhrzeit im Dateinamen mittels TAR, direkt komprimiert und Ablage in dem Verzeichniss /mnt/Config_Adguard/.
( Filegröße bei mir ca 110MB da große Filterlisten in Benutzung )
- synchronisieren mit dem Verzeichniss auf der NAS per rsync, sollte die NAS. ausgeschaltet sien, läuft das Kommando in einen Timeout und es passiert weiter nichts.  Man könnte es noch schön machen und erst abfragen ob die NAS läuft, aber das klappte bei mir auf der OPNSense nicht, daher habe ich drauf verzichtet.


- unter /etc/cron.d/ einen cronjob erstellt mit z.b. dem Namen configbackup


# $FreeBSD$
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/root/scripts

# Backup Config
0       */4     *       *       *       root    /root/scripts/Config_Backup.sh

# Backup AdGuardHome
5       0    *       *       *       root    /root/scripts/AdguardHome_Backup.sh


Der macht nichts anderes, als jeden Nacht um 0Uhr05 das Script aufrufen.
Der Eintrag der Kommandos direkt in dem cronjob habe ich verworfen, das lief nicht, vermutlich ein Problem mit der Shell, da hab ich aber auch nicht weiter nachgeforscht.


Das wars:

( falls es jemand noch interessiert, das Script   /root/scripts/Config_Backup.sh syncronisiert  alle 4Stunden die OPNSense Config-File ebenfalls in eine temp. Verzeichniss und sync diese dann zur NAS.
Aufräume alter File ist hier nicht notwendig, das erledigt die OPNSense ja selber über die Einstellung beim Backup. rnsyc löscht die alten Files dann auch von der NAS und aus dem Verzeichniss.

Das Script dazu:


#!/bin/sh
SERVER=<IP oder DOMAINNAME der NAS hier eintragen>

# copy Config-Files to Backup-Folder with rsync
/usr/local/bin/rsync --delete -avz  /conf/backup/ /mnt/Config_Backup/

# copy Backup-Folder to NAS with rsync
/usr/local/bin/rsync --delete -avz  /mnt/Config_Backup/ admin@$SERVER:/share/Backup/OPNSense/Config/

# finish
exit


--

Restore vom Adguard sah dann so aus, ich musste vor wenigen Tagen machen, weil ich die SSD in der OPNSense getauscht hatte:
- Adguard neu installieren und anschliessen den Dienst stoppen
- unter /usr/local/. dem komplette Ordner Adguard löschen
- Backupfile von der NAS zurück auf die OPNSense unter "/"  kopieren und dort entpacken mit
tar zxvf <DATEINAME>
Da der komplette Pfad mit im BAckupfile abgelegt ist, wird es eben unter "/" gemacht, könnte aber ändern.
- Adguard wieder starten unter über seine WebGUI Zugriff testen und Config prüfen

bei mir hat es problemlos funktioniert, alle Filterliste und Configs waren vorhanden, einzig Unboud wollte nicht so mitspielen, da half ein Reboot der OPNSense aber.

--

AdGuard ist bei mir derzeit nur eine temporäre Lösung, ich möchte wieder auf PiHole zurück ( hab zwei Linux-Container unter Proxmox dafür ) .
Da ich aber derzeit meinen Proxmox-Server auf neue Hardware umziehe und ich wieder mal Probleme mit IPv6 bei Vodafone habe, bleibt es erst mal bei Adguard.


Kleiner Tip: ich bin dazu übergegangen, das ich mir alles dokumentiere, was ich irgendwo konfiguriert habe, egal ob es jetzt solche Sachen sind oder Konfig in Programmen wie Adguard.
Ich nutze dafür das Programm Evernote, weil ich das für mich privat am genialsten finde. Kosten zwar Geld im Abo, aber für mich lohnt es sich.
In der Firma machen wir es ähnlich nur nutzen wir dazu eine Wiki und eine Code-Repository.

Eine Dokumentation ist unerlässlich. Ich speichere sowas entweder auf dem Server oder direkt in KeePass.

In AdGuard habe ich in den Upstream-DNS-Server die meines Providers eingetragen. Es gehen auch 1.1.1.1 und andere.

DNS-Server per DHCP würde klappen.

DNS-Server per NAT Portweiterleitung klappt auch. Vorteil ist, dass man hier einfach die Netzwerkschnittstellen anklickt, diese mit einem Klick deaktivieren kann und diese nicht so leicht umgangen werden kann.

Probleme:
- die Hostweiterleitungen funktionieren nicht mehr zuverlässig
- das Gastportal wird nicht aufgerufen, so dass sich Gäste nicht anmelden können
Dieses tritt bei beiden Varianten ein.

Die Möglichkeit eines Backup-DNS habe ich bei beiden nicht gefunden. Bei der Lösung per DHCP kann ich 2 DNS-Server eintragen, jedoch werden dann auch beide verwendet und AdGuard wird so automatisch umgangen, wenn es die Auflösung nicht liefert.

Hat jemand Ideen dieses zu verbessern? Momentan favorisiere ich die Portweiterleitung, da ich die einfach deaktivieren kann.

Quote from: Schubbie on April 25, 2022, 05:54:45 AM
Hat jemand Ideen dieses zu verbessern? Momentan favorisiere ich die Portweiterleitung, da ich die einfach deaktivieren kann.
Könntest per Firewall-Regel eine Zugriff auf Adguard erzwingen und gleichzeitig den Zugriff auf andere DNS-Server blocken.
Irgentwo hab ich da mal einen Thread zu geselen hier im Forum, wo das beschrieben war.

Wo ist der Unterschied zu meinem Vorgehen? Die Regeln werden dann automatisch angelegt.
Firewall -> NAT -> Portweiterleitungen
Dort schicke ich "von jeglich" alles, was an Port 53 gehen soll an die IP von AdGuard.


Hat denn jemand ein Idee zu dem Gastportal, damit der Filter auch für meine Gäste greift, diese sich jedoch über das Gastportal der OPNsense anmelden können?
Aufgrund meiner wahnsinnigen 6MBit/s will ich nun etwas filtern, da das Internet irgendwie immer langsamer wird.

@Schubbie

Vorschlag:

ohne NAT

AdGuard Upstream-DNS-Server: 127.0.0.1:53053

OpenSense UNBOUND: Hörender Port: 53053
OpenSense UNBOUND: Netzwerkschnittstellen: alle
(kleiner Vorteil : Dienste: Unbound DNS: Blocklist nutzbar)
System: Einstellungen: Allgemein: deine öffentliche DNS Server eintragen z.Bsp.: 1.1.1.1

DHCPv4: [z.Bsp. vom LAN]  DNS-Server angeben: 192.168.100.1
DHCPv4: [z.Bsp. vom Gast] DNS-Server angeben: 192.168.200.1

und FW Regeln für die geweiligen Netze anlegen...

IPv4 TCP/UDP    *    *    LAN Adresse    53 (DNS)    *    *    LAN erlaube internen DNS 53    
IPv4 TCP/UDP    *    *    *    53 (DNS)    *    *    LAN Blocke externe DNS 53

Habe eventuell etwas vergessen aber AdGuard müsste bei richtiger Configuration soweit jetzt alle Netze Filtern...

Grüße und jetzt schnell in die"Nachtruhe"
OPNsense 22.7.9*WG-kmod*OpenSSL*OpenVPN* AdGuardHome*i7-7700*32GB*256SSD*ix0-1, igb0-4, em0*OpenVPN+Wireguard WG0, WG1*NetGear ProSafe XS508*AP Netgear WAX610*alles echtes Blech* Sorry, my English is translated via app*

Moin,
danke für die Rückmeldung.
Das wäre dann die umständliche Variante, bei der es nicht einfach ist, dass man AdGuard mal eben deaktiviert, sollte es ausfallen. Mit dem einen Klick im NAT kann ich mich noch zufrieden geben, aber wenn ich bei einem Ausfall erstmal lange überlegen muss und jedes VLAN und den Unbound neu konfigurieren muss, dann steige ich da in 1/2 Jahr schwierig durch und es wäre jedes Mal zeitintensiv (AdGuard läuft in einer Home Assistant VM auf meiner Synology. Wenn ich daran etwas "spiele" und AdGuard dann nicht läuft, wäre es jedes Mal ein Aufwand und meine Frau muss im Ernstfall auch damit zurechtkommen).

Ich habe AdGuard erstmal deaktiviert. Hauptgrund ist, dass die externe IP teils nicht korrekt ermittelt wird und die Telefonanlage damit nicht zurecht kommt.
Pinge ich meinen DynDNS an, dann kommt die korrekte IP, frage ich per Node Red die Public IPv4 ab, dann bekomme ich bei jeder Abfrage eine andere IP, die jedoch nicht erreichbar ist. Es scheint so, als wenn dieser Umstand zu Problemen führt.

Und dann auch noch eben die Sache, dass ich das die Gäste das Captive Portal nicht erreichen können oder ich das Gastnetzwerk ausnehmen muss.

Ich hab nur die #1Post gelesen und ungeachtet dessen was weiter geschrieben wurde, was nicht heißen soll das es unbedingt falsch ist oder sowas, gebe ich meinen Vorschlag dazu...

"OPNsense Unbound-DNS" kannst Du in seiner (Werk)Einstellung laufen lassen, spielt erst mal keine Rolle für AdGuard. Die Frage ist wo Du deine DNS-Anfragen "härten" willst? Das ist unter den anderen Vorteilen der Hauptgrund "OPNsense Unbound-DNS" zu verweden. DNS over TLS (DoT) geht, ohne dein Netzwerk zu kennen, in allen der 3 Bereichen, z.B. : Fritzbox>OPNsense>AdGuard ....

In meinem Beispiel mache ich das in der letzten Instanz, Firtzbox über Quad9. AdGuard Home läuft in einer VM:

# Fritzbox
Genutzte DNS-Server    
2620:fe::11 (DoT verschlüsselt)
2620:fe::fe:11 (DoT verschlüsselt)
149.112.112.11 (aktuell genutzt für Standardanfragen - DoT verschlüsselt)
9.9.9.11 (DoT verschlüsselt)

#OPNsense (Werkseinstellung mit "Aktiviere Unbound")
Dienste: DHCPv4: [P0_LAN]
DNS-Server 1: 192.168.1.80 (AdGuard IP von VM)
DNS-Server 2: 192.168.1.1 (Schnittstellen-IP = OPNsense DNS-Unbound) ... wenn DNS-Server 1 nicht erreichbar ist...

#AdGuard Home
Upstream-DNS-Server
192.168.1.1#53

Bootstrap DNS-Server
192.168.1.1#53

Private inverse DNS-Server
192.168.1.1

Es braucht dazu weder Regel noch sonst was, ist sicher und funktioniert. Ein Weg von vielen...




Moin Mabub,

ich habe leider keine Fritz Box.

Mein Aufbau:
AdGuard unter Home Assistant auf einer Synology als VM
OPNsense als Firewall/Router/DHCP-Server
An der OPNsense hängt ein DSL-Modem (Vigor DrayTek 130 nur als Modem) über welches die OPNsene per PPPoE die Verbindung ins Internet herstellt.

Wie sieht da die Lösung aus?

Mein Problem mit der Lösung, dass ich AdGuard als DNS angegeben habe war, dass die externe IP für die PBX ständig anders maskiert wurde und die Telefonanlage dann nicht wusste, welche externe IP diese nun nehmen soll.

Zweites Problem ist, dass die Gäste nicht die Portalseite für das Gestnetzwerk erreichen. Dieses sollte auch sichergestellt werden.

Wie verhindere ich, dass der zweite DNS angesprochen wird, wenn der erste, also AdGuard, erreichbar ist?

Mit freundlichem Gruß
Andreas