Warum?
Ich denke der ein oder andere verwendet in seinem Netzwerk einen eigenen DNS- Filter um unliebige DNS- Abfragen (Werbung, Tracking) zu blocken. Leider funktioniert dies mit neueren Android- Versionen, da diese das Eintragen eines eigenen DNS- Servers bei mobilen Daten nur als DNS-Over-TLS erlauben. Eine Möglichkeit ist sich per VPN ins heimische Netzwerk zu Tunneln und die VPN- Verbindung den heimischen DNS- Server nutzen lässt. Dieses hat aber den Nachteil, daß damit die Downloadrate des Handys durch den Upload der heimischen Verbindung limitiert wird und man so unter umständen trotz 4G/5G nur auf ein- bis zweistellige Downloadraten kommt. Deswegen beschreibe ich hier, wie man seinen lokalen AGH als privaten DNS- Over- TLS verfügbar macht
Vorraussetzung
Installierte Adguard Home Instanz
Installierter Nginx Proxy Manager
eigene Domain z.B. eine DynDNS von Duckdns
1. Schritt Über Nginx Reverse Proxy eine Weiterleitung inkl. Zertifikate erstellen
Hauptsächlich dient der NPM hier eigentlich nur zur Erstellung und erneuerung der Zertifikate. Da kann man auch gerne irgendwas anderes Nutzen. Eine Weiterleitung selbst ist eigentlich nicht notwendig, es macht aber sinn, diese auf die Weboberfläche des AGH zu legen, damit ihr von Unterwegs eurere Regeln bearbeiten könnt. Als Weiterleitungsdomains wählt ihr
meinedomain.tld ist die Domain die ihr für die Weiterleitungen nutzt. Bei Duckdns soowas wie "meine-tolle-domain.duckdns.org"
mein-adguard-home Ist die Subdomain über die ihr Adguard Home von Ausserhalb aufrufen wollt
Ihr braucht ein Wildcardzertifikat, das ihr braucht um so später den Zugriff auf euren DoT-Server beschränken könnt. Für die Wildcard- Domain müsst ihr zwingend eine DNS- Challenge nutzen. Das geht bei Duckdns recht einfach, dafür braucht ihr nur das Account- Token aus eurem Duckdns- Account. Es kann sein, daß das die erste Domain nicht zwingend eine Wildcard- Domain sein muss und es auch mit
funktioniert. Das habe ich aber nicht ausprobiert
2. Schritt Verschlüsselung in Adguard Home
Habt ihr NGINX Proxy Manager und Adguard Home in einem Docker laufen, so mounted den Letsencrypt Ordner eures NGINX Proxy Managers als Volume in den Adguard Home Container. So das AGH auf die von NPM erstellten Zertifikate zugreifen kann
Unter Einstellungen-> Verschlüsselungseinstellungen
konfiguriert ihr jetzt die Verschlüsselung:
1. Haken bei "Verschlüsselung aktivieren"
2. Servername: "mein-adguard-home.meinedomain.tld"
3. Ganz wichtig: KEIN Haken bei "http auf httpsS umleiten"
Die Ports müssen so bleiben. Zumindest der TLS- Port darf nicht verändert werden (853)
Unter Zertifikate tragt ihr dann euren gemounteten Pfad zu dem entsprechenden Letsencrypt- Zertifikaten ein. Wichtig ist, daß ihr in das archive- Verzeichnis geht, da AGH nicht den symbolischen Links im live- Ordner folgen kann und ihr nur die Fehlermeldung bekommt, daß die Zertifikatsdatei nicht gültig ist.
Für die Zertifikatsdatei tragt ihr den vollen Pfad zur "fullchain1.pem" ein und für die Schlüsseldatei den Pfad zur privkey1.pem"
Wenn die Zertifikate richtig gewählt sind könnt ihr nun speichern
3. Schritt Client in Adguard Home zur Zugriffskontrolle erstellen
Unter "Einstellungen->Client erstellen -> Client hinzufügen" erstellt ihr euch für jedes gerät einen Client der Zugriff auf euren DoT Server haben soll
Ihr wählt einen Namen und einen Bezeichner, mit denen der Client später identifiziert werden soll
4. Schritt Zugrif auf AGH beschränken
Unter "Einstellungen-> DNS- Einstellungen" könnt ihr weiter unten auf der Seite unter "Zugriffskontrolle" einschränken, wer auf euren DoT zugreifen kann
Dort tragt ihr unter "Zugelassene Clients" die Bezeichner eurer in 3. erstellten Clients ein. Nicht vergessen, auch eure Clients im lokalen Netzwerk freizugeben. Da könnt ihr die IP- Adressen benutzen oder euer ganzes Subnetz mit der richtigen CIDR freigeben. So können fast wirklich nur von euch zugelassene Clients auf den DoT Server zugreifen
5. Portweiterleitung im Router einrichten
Nun müsst ihr noch eine Portweiterleitung von Port 853 auf den Port 853 der AGH- Instanz in eurem Router einrichten und ihr seit eigentlich fast fertig
6. Privates DNS im Android- Handy einrichten
Ihr geht in die Handyeinstellungen-> Netzwerk& Internet -> Privates DNS (meist letzter Punkt)
Dort wählt ihr "Hostname des privaten DNS- Anbieters"
und tragt im Feld ein:
clientbezeichner ist der Bezeichner den ihr für das Gerät in 3. gewählt hat. ÜÜber diese "fiktive" Subdomain identifiziert AGH wer auf das DoT zugreift. Das ist natürlich nicht 100% Sicher. Gibt aber schon mal den Schutz, daß nicht jeder den DoT- Server nach Lust und Laune benutzen kann. Damit sollten nun alle Einrichtungsschritte erledigt sein und ihr könnt euch über euren eigenen Werbefilter über mobile Daten freuen!