Inhaltsverzeichnis
[Letzte Aktualisierung: 25.04.2022] 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 habe ich ein paar Zeilen zusammen geschrieben, um die Aktualisierung über SSH durchzuführen.
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
Danach ist die Software wieder einsatzbereit. Es sind keine weiteren Schritte und Anpassungen notwendig.
Docker Installation
Betriebssystem und installierte Pakete aktualisieren
apt update && apt upgrade -y
Installation von Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - apt-key fingerprint 0EBFCD88 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt-get update apt install docker-ce docker-ce-cli containerd.io -y
Installation Docker Compose.
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version
Docker Container herunterladen.
docker pull adguard/adguardhome
Konfiguration für Docker-Compose anlegen.
mkdir -p /home/docker/adguard-home/{work,conf} cat << EOF > /home/docker/adguard-home/docker-compose.yml version: '3.7' services: adguardhome: container_name: adguardhome image: adguard/adguardhome:latest restart: unless-stopped volumes: - ./work:/opt/adguardhome/work - ./conf:/opt/adguardhome/conf # Uncomment when you want to setup a DHCP server as well # network_mode: "host" ports: - "53:53/tcp" - "53:53/udp" #- "67:67/udp" #- "68:68/tcp" #- "68:68/udp" - "80:80/tcp" - "443:443/tcp" - "853:853/tcp" - "3000:3000/tcp" volumes: dbinit: driver: local EOF
Es spricht natürlich nichts dagegen das Port-Mapping anzupassen. Nachstehend ein Beispiel für die Weboberfläche, welche nach der initialen Bereitstellung auf Port 3000/tcp lauscht.
ports: - "53:53/tcp" - "53:53/udp" #- "67:67/udp" #- "68:68/tcp" #- "68:68/udp" - "80:80/tcp" - "443:443/tcp" - "853:853/tcp" - "50000:3000/tcp"
Somit ist die Weboberfläche in einem Browser anstatt über Port 3000/tcp über Port 50000/tcp erreichbar.
DNSStubListener deaktivieren / DNS Serveradresse aktualisieren.
mkdir -p /etc/systemd/resolved.conf.d/ cat << EOF > /etc/systemd/resolved.conf.d/adguardhome.conf [Resolve] DNS=127.0.0.1 DNSStubListener=no EOF mv /etc/resolv.conf /etc/resolv.conf.backup ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf systemctl reload-or-restart systemd-resolved
Container/Applikation starten.
cd /home/docker/adguard-home docker-compose config docker-compose up -d docker ps
Einrichten der Firewall für den Container.
ufw allow ssh echo y | ufw enable ufw status wget -O /usr/local/bin/ufw-docker https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker chmod +x /usr/local/bin/ufw-docker ufw-docker install systemctl restart ufw ufw-docker allow adguardhome 53/tcp ufw-docker allow adguardhome 53/udp #ufw-docker allow adguardhome 67/udp #ufw-docker allow adguardhome 68/udp ufw-docker allow adguardhome 80/tcp ufw-docker allow adguardhome 443/tcp ufw-docker allow adguardhome 853/tcp ufw-docker allow adguardhome 3000/tcp
Wer in der Container Konfiguration das Port-Mapping angepasst hat (siehe oben), muss an dieser Stelle nichts tun. Denn bie der Verwendung von ufw-docker werden ausschließlich die Ports des Containers angegeben.
Wird ein Port angegeben werden, welche nicht zu einem/dem Container gehört, wird die Regel nichts hinzugefügt und einFehler ausgegeben.
/home/docker/adguard-home# ufw-docker allow adguardhome 50000/tcp Fail to add rule(s), cannot find the published port 50000/tcp of instance "adguardhome" or cannot update outdated rule(s).
Für den Port 50000/tcp ist keine dedizierte Firewall Regel (ufw) erforderlich.
Docker Update
Nachstehend die Befehle um den bestehenden Docker Container auf die neuste Version zu aktualisieren.
cd /home/docker/adguard-home/ docker-compose stop docker-compose pull docker-compose up -d --remove-orphans docker image prune
Abschließend noch das Logfile des Contrainers prüfen.
# docker logs -f --tail="50" adguardhome 2022/01/02 12:09:46.292025 [info] AdGuard Home, version v0.107.2 2022/01/02 12:09:46.292278 [info] This is the first time AdGuard Home is launched 2022/01/02 12:09:46.292362 [info] Checking if AdGuard Home has necessary permissions 2022/01/02 12:09:46.293543 [info] AdGuard Home can bind to port 53 2022/01/02 12:09:46.294687 [info] Initializing auth module: /opt/adguardhome/work/data/sessions.db 2022/01/02 12:09:46.294918 [info] auth: initialized. users:0 sessions:0 2022/01/02 12:09:46.295009 [info] Initialize web module 2022/01/02 12:09:46.295101 [info] This is the first launch of AdGuard Home, redirecting everything to /install.html 2022/01/02 12:09:46.295258 [info] AdGuard Home is available at the following addresses: 2022/01/02 12:09:46.295541 [info] Go to http://127.0.0.1:3000 2022/01/02 12:09:46.298415 [info] Go to http://172.19.0.2:3000
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 die DNS-Server „xxx“ hinterlegt. Dabei erfolgt die Abfrage über „xxx“.
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.
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.
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.
Verschlüsselungseinstellungen
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.
>> Achtung, ich berücksichtige bis dato ausschließlich die native Installation von AdGuard! <<
Die Herausfordung ist in diesen Fall, dass aus dem lokalen Netzwerk raus, bei dem entsprechenden Abruf des SSL-Zertifikats in der entsprechenden DNS Zone (z.B. wydler.eu) sogenannte TXT Einträge temporär erstellt werden müssen. Alle Anbieter, die keine API anbieten, sind an dieser Stelle nicht nutzbar.
Ich greife für den Abruf des SSL-Zertifikats auf das Tool certbot zurück. Es gibt dafür aktuell von der Community eine sehr große Anzahl von Bibliotheken für die verschiedestens Webhoster auf der Welt. In meinen Fall liegt die Domain wydler.eu bei dem Webhoster Core Networks.
Installation von certbot und Plugin
apt install python3-pip pip3 install testresources pip3 install requests==2.25.1 pip3 install certbot-dns-corenetworks
Konfiguration des Plugins
Zuerst muss im Kundenmenü des Webhosters evtl. die API freigeschaltet werden. Bei meinem Webhoster ist dies nicht erforderlich. Daher habe ich gleich einen Benutzerkonto für AdGuard erstellt.
Danach muss laut der Dokumentation für die Bibliothek eine Datei mit dem Zugangsdaten auf dem Server angelegt werden. Ich nutze dazu ein separates Verzeichnis, falls zukünftig weitere/andere Bibliotheken dazu kommen sollten.
mkdir /etc/certbot cat << EOF > /etc/certbot/corenetworks.ini dns_corenetworks_username = api-username dns_corenetworks_password = api-password EOF chmod 750 /etc/certbot/corenetworks.ini
Abruf eines SSL Zertifikats
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 certonly \ --authenticator dns-corenetworks \ --dns-corenetworks-credentials /etc/certbot/corenetworks.ini \ --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 Plugins selected: Authenticator dns-corenetworks, Installer None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator dns-corenetworks, Installer None Account registered. Simulating a certificate request for adguard01.wydler.eu Performing the following challenges: dns-01 challenge for adguard01.wydler.eu Waiting 60 seconds for DNS changes to propagate Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - The dry run was successful.
Der Test war erfolgreich. In diesen Fall kann der Befehl ohne den Parameter –dry-run wiederholt werden. Somit erfolgt der Abruf des Zertifikats produktiv.
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator dns-corenetworks, Installer None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 Performing the following challenges: dns-01 challenge for adguard01.wydler.eu Waiting 60 seconds for DNS changes to propagate Waiting for verification... Cleaning up challenges Subscribe to the EFF mailing list (email: webmaster@wydler.eu). IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/adguard01.wydler.eu/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/adguard01.wydler.eu/privkey.pem Your certificate will expire on 2021-05-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - 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
Perfekt, das neue Zertifikat ist erfolgreich abgerufen und unter „/etc/letsencrypt/live/adguard01.wydler.eu/“ abgelegt.
Damit das Zertifikat auch vor Ablauf (innerhalb von 30 Tagen) automatisch verlängert wird, greife ich auf einen Cronjob zurück.
cat << EOF > /etc/cron.d/certbot # /etc/cron.d/certbot: crontab entries for the certbot package # # Upstream recommends attempting renewal twice a day # # Eventually, this will be an opportunity to validate certificates # haven't been revoked, etc. Renewal will only occur if expiration # is within 30 days. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h DoM Mon DoW command: 0 0 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew && /opt/AdGuardHome/AdGuardHome -s restart EOF
Für die Nutzung von DNS-over-TLS muss noch ein weiterer Port in der Firewall geöffnet werden.
ufw allow 853/tcp
Konfiguration in AdGuard Home
Zu guter letzt muss die Nutzung der Verschlüsselung in der Weboberfläche aktiviert und 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.
Damit auch die Anfragen von AdGuard zu dem Upstream Server verschlüsselt werden, müssen die hinterlegten Adressen unter Einstellungen -> DNS-Server geändert werden.
Nachstehend die einzelnen Adressen nochmals zum Kopieren (Copy & Paste).
https://dns.switch.ch/dns-query tls://dns.switch.ch https://doh.ffmuc.net/dns-query tls://dot.ffmuc.net https://dns.digitale-gesellschaft.ch/dns-query tls://dns.digitale-gesellschaft.ch
84.200.69.80 84.200.70.40 2001:1608:10:25::1c04:b12f 2001:1608:10:25::9249:d69b
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. 🙂
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