AdGuard Home im Netzwerk implementieren

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.

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 adguardhome 53/tcp
ufw allow adguardhome 53/udp
#ufw allow adguardhome 67/udp
#ufw allow adguardhome 68/udp
ufw allow adguardhome 80/tcp
ufw allow adguardhome 443/tcp
ufw allow adguardhome 853/tcp
ufw allow adguardhome 3000/tcp

echo y | ufw enable
ufw status

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

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.

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

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.

Viel Spaß beim Ausprobieren. 🙂

Abonnieren
Benachrichtige mich bei
0 Comments
Inline Feedbacks
View all comments