AdGuardHome als DNS-Server einrichten
AdGuardHome ist ein DNS-Server der gleichzeitig auch eine Filterung der DNS-Anfragen durchführt, so dass man Werbung, Trackerseiten, Phishingseiten usw, blockieren kann. Dies geschieht über auswählbare Filterlisten, zudem wird auch ein DHCP-Server bereitgestellt.
Download des Installationsarchivs
Auf der Seite https://github.com/AdguardTeam/AdGuardHome/releases stehen vorkompilierte Installationsarchive zum Download zur Verfügung. Es sind hier für eisfair-1 und eisfair-64 unterschiedliche Archive downzuloaden:
- eisfair-1: AdGuardHome_linux_386.tar.gz
- eisfair-64: AdGuardHome_linux_amd64.tar.gz
Installation des Archivs
Nun installiert man das Programm in das Verzeichnis /opt/AdGuardHome, ein anderes Installationsverzeichnis ist auch möglich:
# mkdir /opt/AdGuardHome # chmod 0700 /opt/AdGuardHome
Mit dem mc öffnet man nun das downgeloadete Installationsarchiv und kopiert dann den Inhalt des Unterverzeichnisses AdGuardHome nach /opt/AdGuardHome.
Konfiguration von AdGuardHome
Mit
/opt/AdGuardHome/AdGuardHome -s install
startet man nun AdGuardHome, womit folgende Schritte vorgenommen werden:
- Es wird ein SystemD-Unitfile /etc/systemd/system/AdGuardHome.service erstellt.
- Es wird ein daemon-reload von SystemD durchgeführt und derFRITZ.Box_7490_113.07.59_11.11.24_1731 AdGuardHome-Service wird enabled und gestartet.
- Die Weboberfläche von AdGuardHome wird auf Port 3000 gestartet.
Nun ruft man auf einem Client im Browser der Wahl über die URL <IP des eisfair-Servers:3000> die Weboberfläche von AdGuardHome auf und wird in 5 Schritten durch die Konfiguration geführt. Hier bei sind zu definieren:
- Port, über den die Weboberfläche erreicht werden kann und nicht schon von einem anderen Dienst belegt ist. Port 80 kann nur verwendet werden, wenn auf dem System kein anderer Webserver läuft.
- Port, über den der DNS-Server angesprochen werden kann. Üblicherweise nutzt man hier Port 53, da viele DNS-Clients nur diesen nutzen können. Es darf dann natürlich auf diesem Port kein weiterer DNS-Server wie z. B. bind9 laufen.
- Name und Passwort des AdGuardHome-Administrators.
Nach Abschluss dieser Erstkonfiguration startet sich AdGuardHome auf den konfigurierten Ports neu, so dass nun die Weboberfläche mit dem konfigurierten Port z. B. <IP des eisfair-Servers:80> für weitere Konfigurationen aufzurufen ist, insbesondere sind zunächst noch DNS-Forwarder auf der Seite „Einstellungen|DNS-Einstellungen“ festzulegen sind, z. B. (mit # beginnende Zeilen sind Kommentarzeilen):
tls://dns.digitale-gesellschaft.ch tls://dns3.digitalcourage.de # https://dns3.digitalcourage.de/dns-query # QUAD9 # Same as dns9 # https://dns.quad9.net/dns-query tls://dns.quad9.net # Secured # https://dns9.quad9.net/dns-query tls://dns9.quad9.net # Unsecured # https://dns10.quad9.net/dns-query tls://dns10.quad9.net # Secured with ECS # https://dns11.quad9.net/dns-query tls://dns11.quad9.net
Damit AdGuardHome lokale Adressen auflösen kann, kann man den DNS-Server des Routers zusätzlich als DNS-Forwarder eintragen, hier bei Verwendung einer Fritzbox:
# DNS in local network [//]192.168.1.1:53 [/fritz.box/]192.168.1.1:53
Hierbei bedeutet, dass nur DNS-Anfragen folgender Domains an den Router weitergereicht werden, die folgenden Regeln genügen:
- [//] : reine Rechnernamen, also keine FQDN, z. B. meinhandy, aber nicht meinhandy.fritz.box
- [/fritz.box/] : FQDNs der Gestalt *.fritz.box also z. B. meinhandy.fritz.box
Da AdGuardHome die Hostsdatei /etc/hosts als erste Quelle auswertet, kann man die lokalen Clients auch in dieser definieren. Da die hosts-Datei jedoch vom eisfair-System verwaltet wird, macht eine direkte manuelle Ergänzung in dieser Datei keinen Sinn, hierzu ist das eisfair-Paket addhost zu installieren und konfigurieren.
Auf den Seiten „Einstellungen“ und „Filter“ der Weboberfläche kann man nun den AdGuardHome weiter konfigurieren.
Deinstallation des AdGuardHome-Servers
Zunächst ist der AdGuardHome-Server mit
/opt/AdGuardHome/AdGuardHome -s uninstall
außer Betrieb genommen, womit folgende Schritte vorgenommen werden:
- Der AdGuardHome-Service wird gestoppt und disabled.
- Das SystemD-Unitfile /etc/systemd/system/AdGuardHome.service wird gelöscht.
- Es wird ein daemon-reload von SystemD durchgeführt.
Steuerung des AdGuardHome-Servers
Mit folgenden Befehlen kann der AdGuardHome-Server gesteuert werden:
Befehl | Befehlsalternative | Befehlsalternative | Beschreibung |
---|---|---|---|
/opt/AdGuardHome/AdGuardHome -s install | Erzeugt die AdGuardHome-SystemD-Unit, enabled den AdGuardHome-Server, führt ein daemon-reload von SystemD aus und startet den AdGuardHome-Server |
||
/opt/AdGuardHome/AdGuardHome -s uninstall | Stoppt AdGuardHome-Server, disabled den AdGuardHome-Server, löscht die AdGuardHome-SystemD-Unit und führt ein daemon-reload von SystemD aus |
||
/opt/AdGuardHome/AdGuardHome -s start | service start AdGuardHome | systemctl start AdGuardHome | Startet den AdGuardHome-Server |
/opt/AdGuardHome/AdGuardHome -s stop | service stop AdGuardHome | systemctl stop AdGuardHome | Stoppt den AdGuardHome-Server |
/opt/AdGuardHome/AdGuardHome -s restart | service restart AdGuardHome | systemctl restart AdGuardHome | Restartet den AdGuardHome-Server |
/opt/AdGuardHome/AdGuardHome -s reload | service reload AdGuardHome | systemctl reload AdGuardHome | Liest die Konfiguration neu ein (z. B. nach manuellen Änderungen an der Konfigurationsdatei) |
/opt/AdGuardHome/AdGuardHome -s status | service status AdGuardHome | systemctl status AdGuardHome | Gibt den Status des AvGuardHome-Servers aus |
Update von AdGuardHome
AdGuardHome meldet auf seiner Weboberfläche, wenn ein Update existiert, welches dann auch per Klick durchgeführt werden kann.
Überlegungen zur Einbindung von AdGuardHome in das lokale Netzwerk
Üblicherweise stellt ja ein lokaler Router z. B. eine Fritzbox auch den DNS-Server zur Verfügung. Anfragen die er selbst nicht beantworten kann, z. B. für lokale Rechner und netzwerkfähige Geräte, leitet dieser dann wiederum an einen externen DNS-Forwarder weiter. Lokale Rechner und Geräte, die ihre IP per DHCP vom Router erhalten, teilt der Router dabei auch die Adresse eines DNS-Servers mit, in der Regel dann natürlich seine eigene Adresse.
Trägt man den lokalen AdGuardHome-Server als DNS-Forwarder im Router ein, kann die Konfiguration aller Netzwerk-Clients unangetastet bleiben, diese verwenden auf diesem Weg automatisch dann auch den AdGuardHome-Server. Wichtig hierbei ist, dass in den Upstream-DNS-Servern von AdGuardHome der Router nicht mehr eingetragen werden darf, um eine Abfrageschleife zu verhindern. Bei einer Fritzbox würden in dieser Konfigurationsvariante auch die Clients des Gastnetzes den AdGuardHome-Serber nutzen.
Der Router kann auch so konfiguriert werden, dass dieser die IP des AdGuardHome-Server statt der eigenen als DNS-Server den Clients übermittelt. Bei einer Fritzbox würde das aber nicht für das Gastnetz gelten, dem weiterhin der Router als DNS-Server mitgeteilt wird. Clients mit manueller Netzwerkkonfiguration müssen hierbei umkonfiguriert werden, sollen sie zukünftig AdGuardHome als DNS-Server nutzen. Die Einstellungsdaten für WireGuard-Tunnel einer Firtzbox enthalten ebenso die IP der Fritzbox als DNS-Server, jedoch kann in den WireGuard-Clients dies manuell angepasst werden und die IP-Adresse des AdGuardHome-Servers eingetragen werden, oder sogar beide IPs, um im Falle des Ausfalls des AdGuardHome-Servers ein Fallback zu haben.
Es ist auch möglich, alle Clients manuell den zu nutzenden DNS-Server zuzuweisen, auch dann, wenn sie ihre IP per DHCP vom Router bekommen. Da in der Regel zwei verschiedene DNS-Server in den Netzwerkeinstellungen von Betriebssystemen konfigurierbar sind, könnte man den AdGuardHome-Server als ersten und den Router als zweiten DNS-Server eintragen, womit bei Ausfall des AdGuardHome-Servers ein Fallback zur Verfügung steht.
Die Vorschläge der beiden letzten Absätze erfordern die Eintragung des Routers zur Auflösung lokaler Adressen, wie sie im Abschnitt „Konfiguration von AdGuardHome“ vorgeschlagen ist.
Weitere empfehlenswerte Lektüre: