OPNsense + AdGuard Home – Werbefrei, Trackerfrei und hinter einer guten Firewall

Mit dieser Anleitung kannst du AdGuard Home direkt auf deiner OPNsense installieren.
Dadurch sparen wir ein weiteres System, was uns die DNS-Anfragen zu Werbeplattformen, Trackern oder gar Malware blockiert.
So sind wir ein Stück sicherer und entnervter hinter unserer OPNsense Firewall.

Die Installation ist recht simpel, wir müssen aber uns via SSH auf der Firewall aufschalten.

Die Fragen, die sich wohl jeder stellt: Geht das auch mit Pi-Hole?
Aktueller Stand (20.02.2021): Nein! Pi-Hole ist für ein Linux-System geschrieben und nicht für FreeBSD. Daher können wir es leider nicht installieren. Vielleicht in der Zukunft irgendwann mal.

Legen wir los!

Als erstes kannst du natürlich ein Backup deines Systems anlegen! Falls etwas schief gehen sollte, kannst du immerhin ohne große Umwege deine Firewall neu aufsetzen.

1. Aktiviere den SSL-Zugang in den Einstellungen

System -> Einstellungen -> Verwaltung
=> Setze den Haken bei „Secure Shell Server“
=> Belasse den Port bei 22
=> Erlaube den root-Login
=> Erlaube den Login mit Passwort

2. Deaktiviere deinen aktuellen DNS-Server / ändere ihn ab

Ich empfehle den DNS-Server nicht abzuschalten, sondern den Port zu ändern.
Nutze unbound als DNS-Server und aktiviere diesen.
Ändere nur den Port von 53 auf einen anderen ab. Zum Beispiel Port 5335.
Wir können gleich unbound als Upstream-DNS eintragen und somit einen sehr performanten DNS-Server als Upstream nutzen.
Ändere diesen Punkt aber ERST, sobald der AdGuard Home-Download und die Installation durchgelaufen ist! Ansonsten klappt die Namensauflösung nicht mehr 😉

3. Schalte dich auf deine Firewall via SSH auf

Nutze dazu Putty oder einen anderen SSH-Client und logge dich mit deinem root-Account und dem dazu passenden Kennwort ein.
Wähle dann die Nr.8 für die Shell aus.

4. Zusatzsoftware installieren

Damit wir alles gut nutzen können, brauchen wir noch zwei Pakete. Einfach weils damit bequemer zu bedienen ist.
Also schnell ca_root_nss und nano installieren mit folgendem Befehl:

# pkg install nano ca_root_nss

5. AdGuard Home herunterladen und installieren

Wir wechseln zuerst in das Root-Verzeichnis:

# cd /

Legen dann einen neuen Ornder names opt an und wechseln in diesen:

# mkdir opt
# cd opt

Nun können wir entweder direkt AdGuardHome herunterladen oder es auf einem PC downloaden und z.B. via FileZilla oder WinSCP in das Verzeichnis schieben:

# fetch https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.105.1/AdGuardHome_freebsd_amd64.tar.gz

=> Ersetze den Link gegen den aktuellsten von GitHub! Somit hast du die neueste Version installiert!
Wir entpacken das Archiv und wechseln in den Ordner:

# tar -xvf AdGuardHome_freebsd_amd64.tar.gz
# cd AdGuardHome

Achtung: ab jetzt solltest du Schritt 2 durchführen oder durchgeführt haben! Denn jetzt darf kein DNS-Server mehr auf Port 53 laufen!
Nun können wir AdGuard Home zum ersten mal starten:

# ./AdGuardHome


WICHTIG: Das Programm läuft nun im Terminal direkt! Schließen wir es, ist AdGuard Home auch beendet! Um den Autostart kümmern wir uns gleich.

Öffne nun einen Browser und rufe die IP von OPNsense auf, aber gebe den Port 3000 zusätzlich mit an.
http://192.168.1.1:3000

Es begrüßt dich der Installer!
Klicke auf „Get Started“.
Gebe folgendes an:
Admin Web Interface – Listen interface = Das LAN-Interface und / oder alle -> Wenn du keine DMZ oder anderes hast, wähle nur das LAN-Interface aus, um von außen auf keinen Fall erreichbar zu sein.
Admin Web Interface – Listen interface Port = Trage hier ein freien Port ein, z.B. 8080. Port 80 und 443 sind in der Standardkonfiguration von der Firewall blockiert!
DNS-Server – Listen interface = Das LAN-Interface und / oder alle -> Wenn du keine DMZ oder anderes hast, wähle nur das LAN-Interface aus, um von außen auf keinen Fall erreichbar zu sein.
DNS-Server – Listen interface Port = Gebe Port 53 an

Er wird mekern, das keine statische IP-Adresse vergeben werden kann. Ignoriere die Meldung einfach. Das passt.

Gebe für den Admin-Zugriff noch ein sicheres Kennwort an und wir sind durch!

Du kannst dich nun einmal in AdGuard Home anmelden und gucken, ob alles soweit funktioniert.
Anschließend kannst du mit STRG + C das Programm im Terminal wieder beenden.

6. Autostart einrichten

Damit AdGuard Home nun auch automatisch bei Systemstart aktiv wird, legen wir noch eine Autostart-Konfiguration an.
Du bist hoffentlich noch in der SSH-Sitzung, denn die brauchen wir noch einmal.

Lege eine neue Datei in /etc/rd.d/ an und bennene sie z.B. adguardhome:

# nano /etc/rc.d/adguardhome

Befülle die Datei mit folgendem Inhalt:

#!/bin/sh

. /etc/rc.subr

name="adguardhome"
rcvar="adguardhome_enable"
adguardhome_user="root"
adguardhome_command="/opt/AdGuardHome/AdGuardHome"
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
command_args="-P ${pidfile} -r -f ${adguardhome_command}"

load_rc_config $name
: ${adguardhome_enable:=no}

run_rc_command "$1"

Speichere die Datei ab und schließe sie. (STRG + X, mit Y bestätigen und Enter drücken)

Nun müssen wir noch die Datei ausführbar machen und den Autostart aktivieren:

# chmod +x /etc/rc.d/adguardhome && sysrc adguardhome_enable="YES"

7. Neustart und los gehts!

Starte deine Firewall einmal neu, damit nun auch AdGuard Home automatisch gestartet wird.
Du solltest nun das Webinterface über die IP von OPNsense und dem im Setup angegebenen Port erreichen.
http://192.168.1.1:8080

Du kannst nun auch den SSH-Zugriff wieder deaktivieren.
Ebenfalls kannst du im AdGuard Home-Webinterface auch SSL/HTTPS aktivieren.
Du musst aber einen anderen Port als 443 nutzen und ein eigenes Zertifikat angeben.

Viel Spaß mit AdGuard Home!


Falls du AdGuard Home mit einem anderen Benutzer ausführen möchtest, achte darauf, dass dieser Nutzer auch das Recht besitzt, die .pid-Datei anzulegen.
Die .pid-Datei wird hier definiert: pidfile=“/var/run/${name}.pid“.
Diese Info habe ich von einem TeamSpeak-Nutzer erhalten.
Danke dafür!

20 Kommentare

  1. Hallo,

    Hat Adguard home die DNS Abfrage eingbaut im Vergleich zu pihole 5 + unbound oder muss Unbound ebenfalls genutzt werden?

    Welche Erfahrung hast du mit beiden Systeme?

    • Hi!
      AdGuard hat einen eingebauten DNS-Server, ansonsten kann es ja keine DNS-Anfragen filtern.
      Wie auch in der Anleitung geschrieben, kann kein Pi-Hole in OPNsense direkt installiert werden, da Pi-Hole nicht auf FreeBSD läuft.
      In meiner Anleitung verwenden wir auch Unbound als Upstream-DNS inkl. DNSSEC. Hier können wir auf die Unbound-installation von OPNsense auch zurückgreifen, was Zeit und Nerven spart.

      Am Ende des Tages finde ich aber Pi-Hole etwas besser und wer OPNsense z.B. in einer virtuellen Maschine betreibt, oder für ein Pi-Hole eine extra Maschine bereitstellen kann, hat mehr Spaß.
      Ich vermisse gerade in AdGuard die DNS-Optionen wie CNAME & Co. und die Statistiken sind in Pi-Hole etwas übersichtlicher und genauer dargestellt.
      Es funktioniert aber beides gut und AdGuard läuft somit auf der gleichen Hardware, wie auch OPNsense läuft. So muss ich nichts neues anschaffen und spare dadurch etwas Strom.

  2. Pingback:AdGuard Home installieren - Hoerli.NET

  3. Hallo!
    Danke für die einfache Anleitung, funktioniert bestens!
    (opnsense 22.1.4_1)
    2 Fragen:
    Wie mache ich Updates von Adguard Home?
    (Edit: habe hier was gefunden, eventuell kannst du das auch einpflegen: https://blog.wydler.eu/2021/02/21/adguard-home-im-netzwerk-implementieren/)

    Und wie ist der Zusammenhang als Upstream mit Unbound DNS von der opnsense?
    Adguard Home verweist ja nirgends auf den Unbound Server mit Port 5335?!?

    Danke!

    • Danke für dein Feedback.
      Zu deinen Fragen:
      1. Die Anleitung hinter dem Link passt. Einfach die Daten ersetzen und wieder starten lassen. Ich schau mal, ob ich das in die Anleitung mit aufnehme.
      2. Du kannst als Upstream den Localhost mit Port 5335 eintragen, wenn du Unbound nutzen willst. Das stell ich aber jedem frei.

  4. Hallo!
    Anscheinend funktioniert der integrierte Updater jetzt.
    Habe einfach in der Weboberfläche update geklickt.

  5. Und wie deinstalliert man das ganze wieder?

  6. Hallo,

    tolle Anleitung. Muss man jetzt Adguard auch updaten?
    Sobald eine neue Version rauskommt? wie kommt diese dann auf die Opnsense?

    vielen Dank

  7. Du brauchst unten im Webportal der Adguard nur den Update Button klicken.
    Dann wird das update automatisch gemacht.

  8. Hi,

    in deinem Screenshot (und auch bei mir) werden die Hostnamen nicht aufgelöst in der Clientliste.

    Ich habe Unbound auf 53530 verschoben und Adguard auf 53. In Unbound sind die beiden „Register DHCP static mappings“ und „Register DHCP leases“ aktiviert. In ADGuard ist die OPNSense als Upstream DNS eingetragen und es funktioniert auch alles, bis eben auf die Namensauflösung.

    Ne Idee, was da noch als Setting fehlt? In den DHCP Leases in OPNSense stehen die Hostnamen korrekt drin.

    • Hi WoRie,
      manchmal gehts ne Weile, bis die Namen da sauber drin stehen.
      Auch beim Pi-Hole (was ich selbst bei mir aktiv nutze) dauert es gerne mal 1-2 Tage, bis aus der IP der Hostname wird.
      Du kannst mal versuchen, díe betroffenen Clients per ping anzupingen und anstatt der IP gibst du den Hostname an.
      Ab dem Punkt muss ja minimum 1x ein DNS-Server mal danach gefragt werden und der muss das dann auflösen.
      Könnte vielleicht den Prozess etwas beschleunigen.

      Vielleicht ist es auch einfach nur ein Anzeigefehler.

  9. Hallo.

    Ich habe schlauerweise den Port 80 auf der OPNsense gewählt. Jetzt kann ich nicht auf die Weboberfläche. Wie kann ich den Port auf 8080 ändern bzw. den Wizard neu starten?

    • Ja das geht. Du hast zwei Möglichkeiten.
      Entweder die Konfigurationsdatei im AdGuard-Ordner abändern (kann dir gerade nicht sagen wie sie sich nennt, da ich gerade keine Instanz da habe) und AdGuard Home 1x neu starten lassen.
      Oder du beendest AdGuard Home, löschst den ganzen Ordner und beginnst von vorne. 🙂

  10. Gib doch diesen URL als Installationspfad an: fetch https://static.adguard.com/adguardhome/release/AdGuardHome_freebsd_amd64.tar.gz
    Danke nochmals für den tollen und einfachen Guide!

  11. Pingback:OPNsense - Firewall installieren - Hoerli.NET

  12. listen udp xxx.xxx.xx.x:53: bind: address already in use

    und was mache gegen diese Meldung ?

  13. Bei mir startet Adguarhome nicht nach einem Neustart obwohl alles genau nach Tutorial gemacht wurde. Schade

    • Hallo John,
      bei mir war das auch. Ich habe mich ein wenig in FreeBSD eingelesen und festgestellt dass der Befehl „service adguardhome enable“ noch gefehlt hat.
      Einfach in die Konsole schreiben und beim nächsten reboot läuft AdguardHome.
      Viel Erfolg
      Gerd

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.