Inhaltsverzeichnis
Letzte Aktualisierung am 28.06.2023, 00:06:27 Uhr
Vielen Leuten ist das Projekt Pi-hole ein Begriff. Damit verbunden wird primär das Blockieren von Werbung für Produkte. Und zwar für alle Geräte, die den Server auf dem die Applikation läuft, als DNS-Server nutzen.
Ein vergleichsweises relativ unbekanntes Projekt ist AdGuard Home. Die technische Architektur ist die gleiche wie bei Pi-Hole. Der Mehrwert liegt meines Erachtens nach an dem expliziten Familienschutzfilter, keine wesentlichen Abhängigkeiten zu anderen Paketen. Damit verbunden erhöht sich auch die Stabilität/Zuverlässigkeit.
Funktionsumfang
Nachstehend eine Übersicht des Funktionsvergleich:
Die Gegenüberstellung der Funktionen ist zum Zeitpunkt des Schreibens aktuell. Natürlich hängt eure Entscheidung auch davon ab, welche Anforderungen und Wünsche ihr umsetzen dürft/sollt/müsst. Darum soll es auch in diesen Artikel nicht gehen.
Installation
Nachstehend beschreibe ich die Installation von AdGuard Home unter Ubuntu Server 20.04 LTS. Es geht sowohl um die klassische Installation als auch die Nutzung eines Docker Containers.
Es handelt sich dabei um einen virtuellen Server in der Hetzner Cloud. So, dass ich von überall aus von allen Endgeräten AdGuard nutzen kann.
Native Installation
Download der aktuellen Installationsskripts.
curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh
Ausgabe:
[info] Starting AdGuard Home installation script [info] Channel release [info] Script called with root privileges [info] AdGuard Home will be installed to /opt/AdGuardHome [info] Downloading package from https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz -> AdGuardHome_linux_amd64.tar.gz [info] Unpacking package from AdGuardHome_linux_amd64.tar.gz -> /opt 2020/12/26 11:01:21 [info] Service control action: install 2020/12/26 11:01:22 [info] Service has been started 2020/12/26 11:01:22 [info] Almost ready! AdGuard Home is successfully installed and will automatically start on boot. There are a few more things that must be configured before you can use it. Click on the link below and follow the Installation Wizard steps to finish setup. 2020/12/26 11:01:22 [info] AdGuard Home is available on the following addresses: 2020/12/26 11:01:22 [info] Go to http://127.0.0.1:3000 2020/12/26 11:01:22 [info] Go to http://[::1]:3000 2020/12/26 11:01:22 [info] Go to http://159.69.118.129:3000 2020/12/26 11:01:22 [info] Go to http://[2a01:4f8:c17:dd5d::1]:3000 2020/12/26 11:01:22 [info] Action install has been done successfully on linux-systemd [info] AdGuard Home is now installed and running. [info] You can control the service status with the following commands: [info] sudo /opt/AdGuardHome/AdGuardHome -s start|stop|restart|status|install|uninstall
Die Installation ist erfolgreich durchgeführt. Das wir vermutlich daran liegen, dass die Applikation aus einer Datei besteht.
Somit gibt es wie bereits eingangs geschrieben keine Abhängigkeiten zu erfüllen und zu installieren. Damit ein Problem weniger…
Konfiguration der Firewall.
ufw allow ssh ufw allow 53/tcp ufw allow 53/udp #ufw allow 67/udp #ufw allow 68/udp ufw allow http ufw allow https ufw allow 853/tcp ufw allow 3000/tcp echo y | ufw enable ufw status
Natives Update
Leider bringt das Installationsskript keine Updatefunktion mit sich. Auch die Aktualisierung über die Weboberfläche funktioniert in meinem Fall nicht. Daher übernimmt dies folgendes Skript:
cat << \EOF > /opt/AdGuardHome/UpdateAdGuard.sh wget -O /tmp/AdGuardHome_linux_amd64.tar.gz https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz /opt/AdGuardHome/AdGuardHome -s stop tar xvf /tmp/AdGuardHome_linux_amd64.tar.gz -C /opt /opt/AdGuardHome/AdGuardHome -s start rm /tmp/AdGuardHome_linux_amd64.tar.gz EOF
Berechtigung für das Skript anpassen:
chmod 700 /opt/AdGuardHome/UpdateAdGuard.sh
Somit kann manuell eine Aktualisierung vorgenommen werden.
Für eine automatische Aktualisierung kann auf Cron zurückgegriffen werden. Hierfür wird das Skript einfach als symbolischen Link verknüpft.
ln -s /opt/AdGuardHome/UpdateAdGuard.sh /etc/cron.daily/
In diesen Fall wird täglich das Skript ausgeführt. Kann natürlich auch wöchentlich oder sogar monatlich ausgeführt werden. Letzteres ist auf Grund der Vielzahl der neuen Versionen von AdGuard nicht zu empfehlen.
SSL-Zertifikat bereitstellen
Standardmäßig wird AdGuard Home ohne SSL Zertifikat ausgeliefert. Damit verbunden sind folgende Funktionen deaktivert:
- Nutzung der Weboberfläche über HTTPS
- DNS-over-HTTPS
- DNS-over-TLS
Seit geraumer Zeit gibt es mit Let’s Encrypt einen Anbieter in dem Bereich, bei dem man kostenlos SSL-Zertifikate abrufen kann. In diesen Szenario kann allerdings nicht wie oft genutzt, auf die HTTP-01 challenge zurückgegriffen werden. Grund dafür ist, dass der Port 80 (HTTP) und Port 443 (HTTPS) bereits bzw. zukünftig durch AdGuard Home verwendet werden. Daher bleibt nur die alternative Methode DNS-01 challenge über.
Die Besonderheit bei DNS-01 challenge ist, dass keine Ports vom Internet auf den Server (Port Forwarding), auf dem Adguard bzw. Certbot installiert sind, geöffnet werden müssen. Zumal viele Internetanschlüsse heutzutage von dem Internet Service Provider (ISP) als DualStack Lite bereitgestellt werden und daher technisch ohne weiteres nicht umsetzbar ist.
Abruf SSL Zertifikat
Ich greife für den Abruf des SSL-Zertifikats auf das Tool certbot zurück.
apt install -y certbot
Damit sind alle Voraussetzungen geschaffen, so dass nun endlich das SSL Zertifikat abgerufen werden kann. Wie immer gilt: Zuerst wird ein Testlauf durchgeführt, um evtl. (logische) Fehler zu finden.
certbot --standalone certonly \ --domain adguard01.wydler.eu \ -m webmaster@wydler.eu \ --agree-tos \ --rsa-key-size 4096 \ --dry-run
Ausgabe:
Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y Account registered. Requesting a certificate for adguard01.wydler.eu Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/adguard01.wydler.eu/fullchain.pem Key is saved at: /etc/letsencrypt/live/adguard01.wydler.eu/privkey.pem This certificate expires on 2023-09-25. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Da der Vorgang ohne Probleme durchgelaufen ist, kann der initiale Befehl ohne den Parameter „–dry-run“ nochmals gestartet werden.
Sollte es doch zu Problemen ist, gibt es natürlich ein Logfile „/var/log/letsencrypt/letsencrypt.log“.
Konfiguration der automatischen Erneuerung
Das oben ausgestellte SSL-Zertifikat ist 90 Tage gültig. Standardmäßig erfolgt eine automatische Erneuerung des Zertifikats vor dessen Ablauf. Allerdings liest AdGuard nur beim Start das Zertifikat ein. Somit muss nach der Erneuerung des SSL-Zertifikats der Dienst AdGuardHome neu gestartet werden.
Dazu wird am Ende der bestehende Let’s Encrypt Konfigurationsdatei der Parameter deploy-hook hinzugefügt. Zuvor wird noch eine Sicherung der Datei erstellt.
cp /etc/letsencrypt/cli.ini /etc/letsencrypt/cli.ini.original cat << \EOF >> /etc/letsencrypt/cli.ini # Restart of AdGuardHome deploy-hook = systemctl restart AdGuardHome EOF
Initiale Einrichtung der Applikation
Unabhängig von der Installationsmethode sind insgesamt 5 Einrichtungsschritte notwendig. Danach ist die AdGuard Home vollständig nutzbar für die Geräte im Netzwerk.
Nach der erfolgreichen Anmeldung wir das Dashboard von AdGuard Home angezeigt.
Das Dashboard wirkt aufgeräumt und damit übersichtlich. Die Navigation befindet sich an der
Administration des AdGuard Home Dienstes
Die Applikation wird während der Installation automatisch als Dienst eingerichtet. Die Verwaltung des Dienstes kann mit folgenden Befehlen erfolgen:
sudo /opt/AdGuardHome/AdGuardHome -s start|stop|restart|status|install|uninstall
Änderung der Upstream DNS-Server
Standardmäßig sind nach der initialen Konfiguration ein DNS-Server hinterlegt.
Wer es so wie ich gerne datenschutzfreundlich habe möchte, kann problemlos andere DNS-Server eintragen. Für diesen Artikel greife ich auf DNS.WATCH zurück.
Ich nutze aktuell folgende DNS-Server:
https://dns.telekom.de/dns-query https://doh.ffmuc.net/dns-query tls://dns3.digitalcourage.de
Durch die Nutzung der regulären DNS-Abfragen erfolgen natürlich die DNS Abfragen auch deutlich schneller als in der Standardkonfiguration.
Nicht vergessen die Änderungen explizit über die Schaltfläche „Anwenden“ zu speichern.
SSL-Zertifikat einbinden
Zu guter Letzt muss die Nutzung des SSL-Zertifikats in der Weboberfläche konfiguriert werden.
Bitte nicht vergessen, dass der Pfad natürlich an eure Umgebung bzw. Servernamen anzupassen ist. Die Dateinamen fullchain.pem und privkey.pem ändern sich nicht. Die Änderungen mit Konfiguration speichern übernehmen.
Danach kann die AdGuard UI problemlos über https://adguard01.wydler.eu aufgerufen werden. Wenn das klappt kann die Freigabe des Ports 3000 in der Firewall wieder rückgängig gemacht werden.
ufw delete allow 3000/tcp
Alternativ dazu kann auch Parameter „Automatisch auf HTTPS umleiten“ aktiviert werden.
Kindersicherung aktivieren
Gerade mit Home Schooling waren in vergangenen 10 Monate viele Kinder und Jugendliche (alleine) zu Hause. Damit verbunden müssen sich verantwortungsvolle Eltern gezwungenermaßen mit dem Jugendschutz Ihrer Kinder am Tablet/Notebook/Smartphone beschäftigen.
Hierfür sind in AdGuard Home alle notwendigen Mechanismen integriert. Die notwendige Konfiguration erfolgt einfach über das Dashboard unter Einstellungen -> Allgemeine Einstellungen.
Die Einstellung „AdGuard Webservice für Kindersicherung verwenden“ aktivieren. Dazu mit der Maus auf das Kästchen klicken. Das Gleiche noch einmal für „SafeSearch“ wiederholen. Letztes filtert auch entsprechende Suchergebnisse auf den Internetseiten der genannte Internetkonzerne. Die Änderung wird sofort gespeichert und wirksam.
Erfolgt nun der Aufruf einer Internetseite, die als FSK18 kategorisiert wurde, wird im Browser der entsprechende Hinweis angezeigt.
Kindersicherung pro Gerät aktivieren
Im Gegensatz zu Pi-Hole gibt es in AdGuard die Möglichkeit pro Gerät die Konfiguration vorgenommen werden kann. Die Kindersicherung nicht global sondern pro Gerät zu konfigurieren, ist zu Hause durch aus sinnvoller. Denn somit können Eltern mit ihren Smartphone weiterhin uneingeschränkt bewegen.
Zuerst die evtl. obengetätigen Konfiguration für die Kindersicherung rückgängig machen. Danach die Konfiguartion die Einstellungen -> Client Einstellungen aufrufen.
Ein neues Gerät kann über „Client hinzufügen“ angelegt werden.
Neben den Filter Einstellungen können auch diverse Dienste freigeben/gesperrt werden. Dazu auf die Registerkarte „Bestimmte Dienste sperren“ wechseln.
Mit „Speichern“ werden die Änderungen übernommen und wirksam. Änderungen für den Client sind natürlich jederzeit möglich.
Beim Aufruf eines Dienstes (z.B. www.amazon.de) wird im Browser des Clients folgende Fehler ausgegeben.
In der Weboberfläche von AdGuard unter Anfrageprotokoll kann der gesperrte Dienst kontrolliert werden. In diesen Fall ist der Aufruf von Amazon durch AdGuard geblockt wurde.
Abschlusstest
Nach dem die Änderungen erfolgreich gespeichert wurden, wechselt die Weboberfläche automatisch von HTTP auf HTTPs.
Zum Testen von DNS over HTTPS ist ein aktueller Browser (z.B. Google Chrome, Microsoft Edge oder Mozialle Firefox) notwnedig, der die Technik bereits unterstützt.
Firefox
Hier bin ich so frei und verweise auf die Hilfe von Mozilla.
Microsoft Edge
Google Chrome
Leider keinen zur Hand.
Ergebnis
Die Änderung mit „OK“ speichern. Diese wird auch sofort wirksam. Neuer TAB öffnen und eine beliebige Seite (z.B. de.wikipedia.org) aufrufen. Danach die Weboberfläche von AdGuard und in den Reiter „Anfragenprotokoll“ wechseln. Dort sieht man ua. folgende Einträge:
Viel Spaß beim Ausprobieren. 🙂
Ich habe ein Problem,
Adguard habe ich auf einer Domain laufen Zertifikat in deiner Anleitung funktioniert einwandfrei.
Aber ich nutze es mit sub Domains. Die funktionieren nicht. Ich habe es sonst mit Lego gemacht aber das funktioniert irgendwie nicht mehr.
Warum kann ich mir deiner Anleitung keine Subdomains nutzen?
Einrichtung im dns bei der Domain in go daddy ist richtig.
Hallo Lucky,
wie du in der Anleitung sehen kannst, nutze ich auch eine Subdomain. In diesen Fall ist es adguard01.wydler.eu.
Es wäre hilfreich, wenn du beschreiben würdest, was du konfiguriert hast und was explizit nicht funktioniert. Alles andere führt in der Regel zu Vermutungen und Annahmen. Was aber nicht zum Ziel führt.
Viele Grüße,
Daniel
Grundsätzlich eine tolle Anleitung, die ich gerne abarbeiten würde. Allerdings bin ich bei mir auf ein Problem gestoßen:
Ich habe einen Ubuntu Server mit 24.04 am laufen. Der hängt hinter einer Fritzbox. Die zweite NiC zeigt zu meinem internen Netzwerk. Der Server hat nach intern DHCP mit Bind9 als DNS laufen. Hast Du nen Tip, was ich konfigurieren muss,damit adguard dazwischen passt?
Hallo Mario,
ich gehe davon aus, dass du AdGuard auf dem Ubuntu Server laufen lassen möchtest. Damit verbunden ist die Frage, welche Protokolle (DNS, DoT, DoH, QUIC) möchtest du einsetzen? Je nachdem ist zu prüfen, ob der Port des jeweiligen Protokolls noch frei oder bereits genutzt wird. Weil ein Port bekanntlich nicht zwei Mal verwendet werden. Die Frage kannst nur du beantworten.
Ich habe AdGuard bei Hetzner Laufen. Das hat den Vorteil, dass die Instanz auch von unterwegs erreichbar ist. Somit sind Smartphone, Tablet und Notebook auch außerhalb meines LANs durch AdGuard geschützt.
Gruß,
Daniel
Soweit hat alles funktioniert, Aber Ich komme jetzt über SMB nicht mehr auf meiner anderen Rechner im Haus drauf.
Hat jemand die Lösung?
Hallo Frank,
äh, solange du nicht beschreibst wie der Aufbau bzw. wie du AdGuard in deinem Heimnetz integriert hast, wird es ohne Glaskugel fast unmöglich den Fehler zu finden und eine Lösung vorzuschlagen.
Gruß,
Daniel
Hallo Daniel,
Adguard läuft auf einem Linux mit Debian 12. In der FRITZ!Box ist dann der DNS von dem Linux Server eingetragen.
Was braucht ihr noch als Infos?
Im Haus sind zwei Windows Rechner, zwei Linux Rechner und zwei Apple Rechner. Und ich komme nirgendwo mehr darauf. Egal von welchen Rechner in welche Richtung. Deaktiviere ich Aguard und ändere DNS wieder auf die FRITZ!Box läuft wieder alles rund.
Hallo Frank,
Danke für deine Erläuterungen. Hast du den AdGuard als Upstream DNS Server in der FRITZ!Box hinterlegt oder im Netzwerk, so dass dieser als DNS-Server an die Clients verteilt werden? Letztes würde das geschilderte Verhalten erklären.
Wenn du nicht auf die Client IP-Adressen am AdGuard angewiesen bist (z.B. für die Kindersicherung) könntest du AdGuard als Upstream DNS Server hinterlegen. So dass die Clients zuerst wieder die FRITZ!Box anfragen und diese ggf. AdGuard.
Gruß,
Daniel
Unterstützt die FritzBox auch folgende Client-ID Einstellung von AdGuard?
tls://my-client.example.org
(requires a wildcard certificate).AdGuard läuft auf einem Cloud Server
Hallo Parzival,
meine FRITZ!Box mit der Firmware 7.57 unterstützt DNS over TLS (DoT).
Gruß,
Daniel
Okay aber sobald ich my-client.domain.de eingebe in die FritzBox funktioniert das nicht mehr. Wie kann ich das am besten lösen, dass AdGuard von der FritzBox dieses my-client bekommt?
Hast du den FQDN my-client.domain.de im DNS Server angelegt und ist auch mit dig/nslookup auflösbar?
Hallo Daniel,
super Anleitung, funktioniert 1a.
Die .yaml Datei habe ich schon um ein Passwort ergänzt.
Gibt es irgednwie die Möglichkeit, die Adguard Login Site mit einer 2FA zu schützen oder die Login Seite noch irgendwie abzusichern?
Danke
Andreas
Hallo Andreas,
von Haus aus gibt es keine 2FA Option. Ich habe bei mir AdGuard in Kombination mit Traeffic + Authelia im Einsatz. Das Ganze auf Basis von Docker. Funktioniert seit Monaten ohne Probleme.
Grüße,
Daniel
Hallo Daniel,
vll. möchtest Du ja mal eine Adguard Docker Anleitung mit alternativer Zusatzanleitung von Traefffic & Authelia machen:)?
Grüße
Andreas
Hallo Andreas,
in der Tat steht die Thematik bereits auf meiner Liste. Allerdings stehen da auch noch ein paar interessante Themen drauf. Daher weiß ich noch nicht, wann ich dafür die notwendige Zeit finde.
Gruß,
Daniel
Hallo Daniel, super Anleitug, vielen Dank. Wir haben nach dieser Anleitung installiert. Funktioniert einwandfrei. 2 Fragen hätten wir aber noch: Wenn wir unseren Server adguard.domain.com bei der FritzBox als DoT Server eintragen und Adguard weder mit normalem DNS, DoH, nicht als DHCP nutzen wollen, dann können wir doch alle Ports bis auf 443 (für Adguard Dashbaord) und 853 für DoT in der Firewall zu machen, richtig? Und wenn wir das Dashboard auch noch blocken wollen auch 443. Nach der Ersteinrichtung soll man einen User und ein Passwort vergeben. Haben wir gemaht. Allerdings habenw ir auf der Adguard Dashboard Seite nirgendwo… Weiterlesen »
Hallo Anette,
den Port 80 musst du öffnen, wenn du ein SSL-Zertifikat von Let’s Encrypt via HTTP Challenge abrufst. Anderenfalls wird das Zertifikat nicht erneut und damit nach 91 Tagen ungültig. Ansonsten sind eben für das jeweilige Protokoll die notwendigen Ports freizuschalten.
Bezüglich der Anmeldung ist es so, dass entsprechend ein Cookie gesetzt wird. Damit erklärt sich die automatische Anmeldung. Abhilfe schafft hier nur die konsequente Nutzung des privaten Fensters im Browser deiner Wahl.
Gruß,
Daniel
Hallo Daniel,
danke für die Rückmeldung.
Deine Anleitung baut doch aber explizit auf der DNS Challenge auf und nicht auf der HTTP Challenge, oder? Somit sollte ich Port 80 nicht brauchen, wie Du selbst schreibst, es müssen keine Ports 80 und 443 für die Zertifikatserstellung geöffnet werden. Oder hab ich das falsch verstanden?
Bezgl. des Logins / Logouts: Das können wir so nicht nachvollziehen. Auf jedem Gerät, auch auf denen, auf denen die Adresse bisher nicht eingegeben wurde, erscheint die Login Seite sofort ohne Eingabe von Benutzerdaten. Auch private Fenster oder andere Browser bringen keine Abhilfe.
Viele Grüße
Anette
Falls noch jemand das Problem mit dem Login hat, der nciht angezeigt wird:
Man muss das in der Datei /opt/AdGuardHome/AdGuardHome/AdGuardHome.yaml anlegen (trotz Eingabe bei der Einrichtung, war das leer):
Das password darf nicht direkt eingegeben werden, sondern als Bcrypt Hash (https://bcrypt-generator.com/).
Dann speichern und adguard neu starten. Dann wird nach Login Daten verlangt und auch ein abmelden Button angezeigt.
Hallo Anette, Danke für deine Info. Es kann sich da eigentlich nur um einen Bug in der aktuellen Version von AdGuard handeln. Weil vor knapp zwei Wochen habe ich eine neue Instanz aufgesetzt und da gab es das Problem nicht. Deine Anleitung baut doch aber explizit auf der DNS Challenge auf und nicht auf der HTTP Challenge, oder? In der aktuellen Version setze ich auf HTTP Challenge. Somit ist gewährleistet, dass die automatische Verlängerung in 70 Tagen ohne weiteres funktioniert. Bei der Nutzung von DNS Challenge muss entweder manuell die Verlängerung des Zertifikats vorgenommen werden. Denn der TXT Eintrag wird… Weiterlesen »
Hallo Daniel,
ich habe die Installation wie beschrieben durchgeführt.
2 Probleme habe ich:
Hast Du eine Idee woran das liegen kann?
Danke Dir…
Harald
Hallo Harald, ich habe mir einen Account bei Oracle Cloud angelegt und mir den Sachverhalt mal angeschaut. Es liegt vermutlich daran, dass Oracle die öffentliche IPv4 Adresse nicht auf die Netzwerkkarte der VM bindet, sondern dies über NAT erfolgt. Das hat zur Folge, dass AdGuard diese natürlich nicht innerhalb der VM auslesen kann. Hingegen bei privaten Netzwerken (10er Bereich), wird diese explizit als Netzwerkkarten eingebunden. Darum werden in den wenigen Anleitungen zu dem Thema wohl immer der Zugriff auf AdGuard per VPN realisiert… Das kann mehrere Ursachen haben: Was meckert der Firefox bei dem verwendeten Zertifikat an? Meckern auch andere… Weiterlesen »
Hallo Daniel,
vielen Dank.
Super, dass Du Dir extra die Mühe gemacht hast, mit der Oracle Cloud.
Per VPN will ich as nicht realisieren. Dann vll. doch der Weg über Docker.
Alle Browser (FF, Chrome, Edge) melden: Zertifikat ist nicht sicher.
Stimmt der FQDN/SAN des SSL-Zertifikats auch mit der DNS FQDN überein? => eigentlich schon, prüfe ich aber noch mal genau
Viele Grüße
Harald
Wo prüfe ich denn die FQDN/SAN des SSL-Zertifikats und die DNS FQDN?
Damit keine Missverständnisse auftreten:
Per VPN will ich as nicht realisieren. Dann vll. doch der Weg über Docker. Es wird mit Docker nicht einfacher, sondern eher komplizierter. Gerade das Management von SSL-Zertifikaten, Firewalling, Updates von Docker und Container, etc. Ich weiß nicht, welchen Blumentopf du damit gewinnen möchtest. Alle Browser (FF, Chrome, Edge) melden: Zertifikat ist nicht sicher. Stammt das verwendete Zertifikat von einer öffentlichen Zertifizierungsstelle, z.B. Let’s Encrypt, DigiCert, Starfield, etc. Anderenfalls kommt die Warnung/Fehler zu recht. Wo prüfe ich denn die FQDN/SAN des SSL-Zertifikats und die DNS FQDN? Naja, der FQDN und das SAN hast du bei der Generierung des CSR für… Weiterlesen »
Naja, ich hab mich an Deine Anleitung zum erstellen der Zertifikate gehalten… Sollte ja also offiziell sein.
OK, dann stimmt FQDN und SAN.
Von mir aus auch mit VPN realisieren, wenn es dann geht. Aber mir ist unklar wie ich Router Handys etc dauerhaft mit dem VPN verinden soll. Zumal die mobile Geräte ja schon anderweitig eine VPN Verbindung aufbauen.
Das sehe ich von hier ja nicht. 😉 Passt.
Nachdem du den Einrichtungsassistent erfolgreich durchlaufen hast, rufst im Browser die AdGuard UI mit https://adguad1.domain.com ohne Port 3000 auf?
Bei mir ist es https://adguard.domain.de, was aber nicht geht. Ich kann nur über die IP 141.x.x.x:3000 aufrufen, einrichten, und anschließend mit der IP ohne Port 3000 das Dashboard aufrufen. Hierbei meckert er dann, dass die Verbindung nicht sicher ist, mit https://adguard.domain.de klappt es aber auch nicht
Hallo Daniel, vielen Dank für Deine Bemühungen. Anbei meine Antworten und weitere Infos: Beim Einrichtungsassistent von AdGuard wird bei Schritt 2/5 der Port abgefragt. Was du dort Port 80 eingetragen? => Exakt So, wie in Deiner Anleitung beschrieben: Alle Schnittstellen, Port 80 Bei der Konfiguration der Verschlüsselung in der AdGuard UI hast du die Option „Automatisch auf HTTPS umleiten“ aktiviert? => Ja Du hast die Ports 80/tcp, 443/tcp in der Oracle Cloud für deine Virtual Compute auch freigegeben? => ja und in der ufw auch Ich konnte jetzt feststellen: -Ich kann das Adguard GUI unter adguard.domain.de aufrufen. Zertifikat gilt als unsicher, alle… Weiterlesen »
Ich habe auf Grund deiner Rückmeldung meinen Artikel 1:1 auf einer kostenlosen Compute Instanz der Oracle Cloud ausgeführt. Grundsätzlich habe ich AdGuard zum Laufen bekommen inkl. dem SSL-Zertifikat von Lets Encrypt. Wichtig ist eben die notwendigen Ports nicht nur auf der Linux Firewall sondern auch im VCN der jeweiligen Computer Instanz zu öffnen/freizugeben. Kann mir nach wie vor nicht erklären, was du anders machst.
Hallo Daniel,
ich mach das noch mal platt. Finde ich aber super, dsss Du es bei Oracle auch probiert hast. Und ja, ich habe alle Ports auch in den Security Lists bei Oracle freigegeben.
Irgendwo ist da was schiefgegangen, trotz befolgen Deiner Anleitung.
Ich probiers nochmal.
Harald
Hallo Daniel,
mit Deiner angepassten Anleitung funktioniert es nun einwandfrei:), bei der alten hat wohl irgendwas gesponnen.
Habe es über DoH getestet als Eintrag im Browser=> perfekt. Ob es über einen DoT Eintrag im Router auch für alle Rechner geht, konnte ich noch nicht testen. Gehe aber davon aus.
Nochmal vielen Dank.
Harald
Hallo Harald,
Könntest du mit der AdGuard auf einem Smartphone/Tablet testen.
Gruß,
Daniel
Hallo
Gibt es einen Grund warum Du die Docker Installationsanleitung gelöscht hast?
Frage zum Betrieb auf einem Server im www: dann kann doch theoretisch jeder, der die IP meines Servers kennt, seine DNS Anfragen über mein Adguard schicken. Wie sichere ich das ab?
Danke
Thomas
Hallo Thomas, Gibt es einen Grund warum Du die Docker Installationsanleitung gelöscht hast? Weil es zum Einen nicht mehr 100% gepasst und zum anderen eine Flut von E-Mails zu dem Thema mein Postfach geflutet hat. Evtl. gibt es dazu einen weiteren Artikel mit Details, etc. Das wird vermutlich aber Herbst/Winter.. Frage zum Betrieb auf einem Server im www: dann kann doch theoretisch jeder, der die IP meines Servers kennt, seine DNS Anfragen über mein Adguard schicken. Wie sichere ich das ab? So ist es auch. Das ist bei solchen Lösungen immer eine Herausforderung: Um mögliche Risiken zu minimieren, würde ich… Weiterlesen »
Hallo Daniel,
erst mal danke, dass Du immer zeitnah und ausführlich auf Fragen antwortest.
Ein Docker Artikel wäre tatsächlich super:)
DoT und Geo IP Filter hatte ich schon auf meiner Liste und sind eingerichtet. Was wäre Deiner Meinung nach ein sinnvolles rate Limit, ohne unbeabsichtigt eigenen Traffic lahmzulegen?
Danke
Thomas
Hallo Thomas, welche Limits sinnvoll sind, sind aus der Ferne kaum zu beantworten. Das hängt schon alleine davon ab, wie viele Geräte von ein und der selben öffentliche IP-Adresse DNS Abfragen stellen dürfen. Hast du z.B. einen klassischen Router, hat dieser meistens einen DNS-Cache und somit werden oftmals gar nicht mehr so viele Anfragen vom Router an AdGuard weitergeleitet. An dieser Stelle sei erwähnt, dass es seitens AdGuard auch eine Parameter Rate Limit gibt. Diesen findest Settings => DNS settings. Ist natürlich nicht direkt vergleichbar mit einem Rate Limit über iptables/nft. Letzteres greift natürlich noch vor erreichen der Application. Gruß,… Weiterlesen »
Hallo zusammen,
Ich hoffe das man mir hier helfen kann …
Ich hatte pi-hole ausprobiert und wieder entfernt, so weit so gut.
Nach einem Reboot, ist der Port 53 immer noch von pi-hole blockiert!
/home/ilan# lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pihole-FT 886 pihole 4u IPv4 14685 0t0 UDP *:domain
pihole-FT 886 pihole 5u IPv4 14686 0t0 TCP *:domain (LISTEN)
pihole-FT 886 pihole 6u IPv6 14687 0t0 UDP *:domain
pihole-FT 886 pihole 7u IPv6 14688 0t0 TCP *:domain (LISTEN)
:(, hat jemand einen Tip, wie ich das aus der Welt bekomme
Vielen Dank
Ilan
Hallo Ilan,
probiere es mit folgenden Links:
https://discourse.pi-hole.net/t/uninstall-pi-hole-on-raspberry-pi/30530
https://docs.pi-hole.net/core/pihole-command/#uninstall
Grundsätzlich bin ich ein Fan davon, Dienste wie Pi-Hole auf dedizierten Servern bereitzustellen. Somit bleibt dir das Basteln wie in diesen Fall erspart, weil du einfach den Server löschen kannst. Mir ist klar, dass das oftmals nicht möglich ist. Weil bei der Einrichtung der Dienste diese Schritt nicht immer in Betracht gezogen wird.
Viele Grüße,
Daniel
Hallo,
kurze Frage. Ist es möglich wie bei Pi-Hole die Konfiguration über die Weboberfläche zu speichern? (Black und White Listen Client Einstellungen usw)
Danke im Voraus
Hallo Andreas,
Ja, das ist möglich.
Gruß,
Daniel
Hallo,
klasse Artikel zur Adguard! Ich habe es auf meinem Synology NAS über Docker/Portainer installiert. Wie kann ich denn dort das Zertifikat für Lets Encrypt installieren? Die Möglichkeit certbot in einem Container zu installieren geht ja nicht.
Beste Grüße
Jan
Hallo Jan,
damit habe ich mich aus Zeitgründen nicht beschäftigt. Zumal meine Instanz im Internet läuft, damit ich auch Smartphones/Tablets damit schützen kann.
Was ich mir vorstellen könnte ist, ein LE Zertifikat mit Hilfe von DDNS bereitzustellen. Das hat Synology inzwischen auch in einem KB Eintrag dokumentiert. Wo die Zertifikate inkl. private schlüssel abgelgt werden, ist noch zu recherchieren. In Anschluss das Verzeichnis des Dateisystems in den Container als ready-only mounten. Danach müsstest du den absoluten zu den Dateien in der Weboberfläche von AdGuard konfigurieren können.
Gruß,
Daniel
Hallo,
super Artikel zur Adguard:
Gibt es einen Grund warum Du die ufw auch als Docker Container installierst und die Firewall regeln für Adguard dort erstellst?
Kann man nicht einfach die ufw nutzen die auf dem System außerhalb von Docker installiert ist?
Danke & Grüße
Johannes
Hallo Johannes,
dazu gibt es ein bisschen Lesestoff:
https://github.com/chaifeng/ufw-docker#tldr
Gruß,
Daniel
Ja, aber in Deinem Beispiel hat mean nun 2x ne UFW auf dem System. Die „normale“ und die in Docker…
Und nutzt Du dann die UFW in Docker auch für andere Docker Container? Ich glaube, dass solltest Du noch etwas präzisieren:)
Grüße
Johannes
Hallo Johannes,
das Tool ufw-docker funktioniert ohne aktivierte ufw nicht. Zudem beziehen sich die Regeln, welche du über ufw-docker hinzufügst ausschließlich auf Container. Nun bin ich ein großer Fan auch Standarddienste wie SSH abzusichern. Daher die Regeln für die ufw der jeweiligen Distribution.
Gruß,
Daniel
Hallo Daniel, hab ich das so richtig verstanden: Das Tool ufw docker behebt das Problem, dass Docker die Firewall „aufreißt“ Für meine Standard, nicht Docker Dienste wie z.B. SSH etc trage ich meine Regeln nach wie vor normal in der ufw ein Alle Firewallregeln, die irgendwas mit Docker Containern (auch anderen Programmen und Diensten) zu tun haben, trage ich zukünftig mit ufw-docker allow … ein, nicht über UFW allow…., richtig? Muss man bei der ufw-docker Variante immer noch den Programmnamen dazu mitangeben (z.B,. ufw-docker allow adguardhome…, sprich wenn ich jetzt Wireguard per Docker laufen lassen würde, müsste ich dann die… Weiterlesen »
Guten Abend Johannes,
Grüße,
Daniel
Hallo Daniel,
ich hab damit jetzt mal ein bisschen rumgespielt. Zur Firewall mit Docker hab ich aber dann doch noch ne Frage:
Ich habe jetzt den container xy laufen: Ports sind: 0.0.0.0:8998->17442/tcp
Es funktioniert nur, wenn ich in der Firewall ufw-docker allow xyz 17442/tcp freigebe und dann denn Container mit //ip:8998 über den Browser aufrufe.
Das ich 17442 freigeben muss verstehe ich, aber ich dachte das ist der externe Port, sprich ich muss auch mit //ip:17442 aufrufen.
Oder verstehe ich da was falsch.
Grüße
Johannes
Hallo Johannes,
das Verhalten bzw. deine Beobachtung ist korrekt. Als externer Port hast du 8998 angegeben. Daher erfoltg beim Aufruf ein Weiterleitung auf den Docker Cintainer Port 17442. Wenn du das angleichen möchtest, musst du auch den Port 17442 für den externen Listener konfigurieren.
Gruß,
Daniel
Hi zusammen,
danke für die schnelle Hilfe bei meinen ersten beiden Fragen. Nun habe ich noch eine Frage.
Wenn eine Seite gesperrt wird bekomme ich folgende Meldung im Browser „Die Website ist nicht erreichbarmusterseite.com hat die Verbindung abgelehnt.Versuchen Sie Folgendes:
ERR_CONNECTION_REFUSED“
Da dies unschön ist, würde ich gerne die Seiten, die gesperrt werden auf eine eigene Seite weiterleiten wo z.b. drin steht: „Die Seite wird durch Adguard Home geblockt“ oder so ähnlich.
Ist das möglich?
Hallo Tumtrah,
der Knackpunkt an der Stelle ist, dass 95% der Internetseiten inzwischen SSL (HTTPs) im Einsatz. Daher wird zwar eine Umleitung mit Hilfe von DNS Manipulation möglich. Aber da das SSL Zertifikat von AdGuard nicht dem DNS-Namen der Internetseite übereinstimmt, erhält der Nutzer einen SSL Warnung/Fehler. Das ist auch nicht das Gelbe von Ei…
Gruß,
Daniel
Hallo zusammen,
ich habe eine falsche Seite ausversehen geblockt.
Wie kann ich generell manuell erstellte Filter komplett entfernen?
Hallo Tumtrah,
die benutzerdefinierten Sperren findest du oben im Menü Filter -> Benutzerdefinierte Filterregeln.
Dort die entsprechende(n) Zeile(n) löschen und mit „Anwenden“ speichern.
Gruß,
Daniel
Edit zu meinem letzten Kommentar:
War wirklich ein einfacher Denkfehler. Jetzt läuft alles 🙂 Vielen Dank für die tolle Anleitung.
Hallo Martgin,
möchtest du mir den Denkfehler mitteilen? Evtl. kann ich so, die Stellen in meinem Beitrag eindeutiger formulieren.
Gruß,
Daniel
Hallo Daniel. Gerne. Der Fehler lag aber definitiv auf meiner Seite, kommt trotzdem gleich. Aus Sicht eines Linux-Noobs würde ich vielleicht etwas deutlicher darstellen, wo du Adguard installiert hast (lokal oder auf deinem Webspace bzw. Vserver. Da kommt auch etwas überraschend bzw. ohne weitere Erklärung oder Einführung die Subdomain adguard01 zu wydler.eu ins Spiel). In meinem Fall war das Problem, dass ich das Zertifikat eben für meinen Desec.io-Account angelegt hatte (den ich nur für diesen Zweck erstellt hatte) aber Adguard lokal lief, also auf 192.168.178.X. Als ich Adguard dann jedoch über xxx.dedyn.io aufgerufen hatte, klappte es auch mit dem Zertifikat.… Weiterlesen »
Hallo Daniel, ich schreibe dir mal, weil ich mich für die Verschlüsselungseinstellungen an Deinem Beitrag orientiert habe. Vermutlich habe ich es mir irgendwo zu einfach gemacht oder einen Denkfehler: Ich habe AdGuard Home auf einem Raspi in meinem lokalen Netzwerk installiert. Für das Letsencrypt Zertifikat habe ich den DynDNS-Dienst desec.io verwendet. Einen eigenen Webserver o.ä. habe ich (bislang) nicht Adguard akzeptiert das erstellte Zertifikat. Der Browser zeigt aber „nicht sicher“ an. Das dürfte daran liegen, dass Adguard eben über eine lokale IP-Adresse und nicht dedyn.io aufgerufen wird. Als DNS-Server habe ich analog Deiner Anleitung nur solche mit DoT oder DNS… Weiterlesen »
Mich würde das auch interessieren. 🙂
Hallo Martin, entchuldige die späte Rückmeldung. Dein Kommentar ist untergegangen. Das SSL-Zertifikat wird auf den DNS-Namen (in deinem Fall raspi.dedyn.io) und nicht auf die IP-Adresse ausgestellt. Somit ist nachvollziehbar warum der Browser einen Fehler bzw. nicht sicher angibt. Wenn der Client in den Netzwerkeinstellungen als DNS-Server bereits den AdGuard nutzt, sollte der Aufruf des AdGuard DNS-Namen funktionstüchtig sein. Evtl. hängt das auch von deinem eingesetzten Router ab (Stichwort Hairpin NAT). Alternativ dazu kannst du temporär für Tests auf dem Client die hosts Datei ergänzen. Dort trägst du die IP-Adresse des AdGuards mit dem dazugehörigen DNS-Namen ein. Danach funktioniert der Aufruf… Weiterlesen »
Hi zusammen,
wie kriege ich es hin, dass ich z.B auf meinen Router mit der Adresse -> fritz.box zugreifen?
Ich habe in der Fritbox als DNS die IP vom Adguard Home eingetragen. Die lokale Namensauflösung funktioniert leider nicht mehr…
Hallo Tumtrah,
versuch es über das Menü „Filter“ -> „DNS-Umscheibungen“. Dort einen neuen Eintrag mit dem Namen „fritz.box“ und der dazugehörigen IP-Adresse des Geräts anlegen. Anschließend versuche im Browser den Aufruf mit „fritz.box“.
Gruß,
Daniel
Hallo Daniel, nachdem mein pihole verstorben war (SD Karte defekt) habe ich mit deiner Anleitung AdGuard installiert und werde mal sehen wie es damit läuft. Allerdins habe ich noch eine Frage
Ich stelle AdGuard im Netzwerk bereit indem ich es als DNS-Server inder Fritzbox eingetragen habe.
Müßte ich, damit alle Anfragen über AdGuard laufen, nicht auch ein IPv6 DNS in der Fritzbox eingetragen werden?
Guten Abend Hartmut,
wenn du IPv6 im LAN nutzt, musst die IPv6 Adresse des AdGuard natürlich auch in den DNS Einstellungen hinterlegen. Du solltest schauen, dass die Zuordnung IPv6 <-> Adguard statisch erfolgt, damit du nicht alle x Wochen/Monate die Adresse ändern muss.
Gruß,
Daniel
Was muss man anstellen um auch noch Unbound als DNS mit Adguard zu integrieren?
Guten Abend,
ich mache an der Stelle einen Querverweis: How to use Unbound with AdGuard Home or Pi-hole.
Gruß,
Daniel
Hi,
interessant. Das mit dem dedizierten Blocken von Domains für Clients, wie z.B. Kinderschutz, funktioniert aber nur wenn der DNS Server auf jedem Gerät explizit eingegeben wurde da ja sonst alle Anfragen immer über den Router kommen. Oder täusche ich mich da?
Hallo Michael,
ja, so ist es. Ich verteile bei mir zu Hause die IP-Adresse mit Hilfe des DHCP-Servers. Somit haben die Geräte automatisch AdGuard als DNS-Server.
Gruß,
Daniel
Hallo Zusammen,
ich schließe mich mal hier an. Bei mir läuft AdGuard auf einen vServer von netcup. Alles funktioniert wunderbar.
Dass man allerdings die Clients individuell angezeigt bekommt, funktioniert hingegen nicht. Der DNS Server AdGuard wird über den DHCP Dienst verteilt, aber ich sehe als Anfrage im AdGuard nur einen Client, nämlich die öffentliche IP/Hostname und die ist ja im Heimnetzwerk für alle Clients gleich. Was habe ich hier übersehen?
Vielen Dank.
Christian
Hallo Christian,
Nein. Grundsätzlich ist das der „Nachteil“ bei Verwendung eine Servers im Internet. Es ist sozusagen dem NAT geschuldet. Einizgste mir bekannte Abhilfe ist die Aktivierung von EDNS0. Ob das deine Clients unterstützen, kann ich nicht beurteilen.
Gruß,
Daniel
Danke für die Anleitung für die Installation von Adguard. Ich komme bei der nativen Installation der Firewallregeln nicht weiter. Im Terminal macht er noch die ufw SSH, aber ufw allow adguardhome 53/tcp kommt diese Fehlermeldung –> ERROR: Need ‚to‘ or ‚from‘ clause Leider find eich dazu nichts. Danke für einen Tipp.
Guten Abend Frank,
vielen Dank für den Hinweis.
Da ist mir leider ein Copy & Paste unterlaufen. Ich habe den Abschnitt so eben überarbeitet.
Gruß,
Daniel