Veröffentlicht von:

AdGuard Home – Unter Docker installieren + WireGuard Einrichtung

AdGuard Home – Unter Docker installieren + WireGuard Einrichtung

Was ist AdGuard?

AdGuard ist ein sogenannter Adblocker, der Trackings und Werbung blockiert. Zusätzlich zu den Webbrowsern, Add-ons und DNS-Servern bietet auch AdGuard ein umfangreiches Interface, das AdGuard Home genannt wird. Dieses kann kostenlos über das Docker Hub geladen werden und mit der eigenen Docker Umgebung realisiert werden.

Was wird dazu benötigt?

  1. Ein vServer oder dedizierter Server je nach Wunsch, bei vServern aber mindestens KVM Virtualisierung.
  2. Eine statische IP-Adresse (DynDNS sollte auch gehen, wird aber in den nächsten Tutorials allgemein thematisiert).
  3. 53/tcp und 53/udp Port sollte mindestens frei sein, auch vom Linux OS her (Wird hier gezeigt wie man es konfiguriert).
  4. Anwendungen vorab installiert: Portainer, Nginx Proxy Manager, AdGuard Home, WireGuard Server und Client.

1. AdGuard Home in Portainer / Docker erstellen

Wichtig ist natürlich, dass Ihr Docker sowie Portainer bereits auf eurem Server installiert und eingerichtet habt. Wir erstellen also einen neuen Container für unsere erste Applikation AdGuard Home.

1.1 Wie kann ich den 53 Port vollständig im Linux System freigeben?

Der 53 DNS-Server Port ist in den meisten Linux Distributionen bereits System intern belegt, wie Ihr ihn dennoch freibekommt, erkläre ich hier 🙂

Bash
# Deaktiviert den Service
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Bash
sudo echo "nameserver 127.0.0.1
# Kann wenn AdGuard Home aktiviert wurde wieder gelöscht werden.
nameserver 1.1.1.1
nameserver 1.0.0.1" > /etc/resolv.conf

Nameserver 127.0.0.1 sollte immer also gesetzt sein, die DNS-Server von Cloudflare sind nur übergangsweise damit AdGuard vorerst noch konfiguriert werden kann.

Am besten, bevor Ihr den Container erstellt, zwei Ordner in Linux.

Bash
sudo mkdir -p /home/AdGuard
sudo mkdir -p /home/AdGuard_conf

2. Mit Nginx Proxy Manager – AdGuard GUI SSL sicher machen

Wir erstellen also noch einen weiteren Container, wo wir unsere Internen Web-Ports SSL Sicher nach außen machen. Zudem wird eine Domain / DynDNS Domain empfohlen, damit man einen festen Namen für den AdGuard Home mit SSL besitzt.

Bash
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
Bash
# Standard Nginx Proxy Manager Login - Bitte direkt ändern nach dem Login.
# Port: http://Deine-Server-IP:81
Email:    admin@example.com
Password: changeme

 

 

3. AdGuard Home Konfiguration

Selbstverständlich sind viele weitere Einstellungen möglich, ob es eine DNS Verschlüsselung (DNS-over-TLS) oder mehr, könnt Ihr je nach Bedarf einstellen.

4. WireGuard Server per Docker installieren

Damit wir nicht nur einen sicheren DNS-Server haben, dem Tracking, Werbung oder gefährliche Inhalte filtert, können wir zudem unseren gesamten Netzwerktraffic via WireGuard verschlüsseln. Wie das funktioniert, wird jetzt erklärt. 🙂

Bash
# Bitte einen Stack in Portianer erstellen und einfügen und Nutzernamen und Passwort ändern.
version: "3"

services:
  wireguard:
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
    volumes:
      - /etc/wireguard:/config
    ports:
      - "5000:5000"
      - "51820:51820/udp"
  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN
    network_mode: service:wireguard
    environment:
      - SENDGRID_API_KEY
      - EMAIL_FROM_ADDRESS
      - EMAIL_FROM_NAME
      - SESSION_SECRET
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=password
      - WG_CONF_TEMPLATE
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: 50m
    volumes:
      - ./db:/app/db
      - /etc/wireguard:/etc/wireguard


Im Anschluss nur noch mit Nginx Proxy Manager verknüpfen über Domain/Subdomain und fertig ist die UI mit SSL Zertifikat 🙂 Bitte beachtet, dass Ihr in Portainer die WireGuard Container IP herausfindet und im Nginx Proxy Manager einträgt. Port ist darauffolgend 5000. Falls auch der Nginx Proxy Manager noch nicht im Netzwerk unter WireGuard verbunden ist, bitte auch im Portainer hinzufügen, um die Erreichbarkeit zu gewährleisten.

Bei einem Reboot kann sich die Docker IP Aufteilung verändern. Dabei bezogen die internen IPs. Mit zusätzlichen Einstellungen kann dies unterbunden werden. Achtet zudem darauf keinen direkten öffentlichen DNS-Server zu hosten, es sei denn, es ist für die Funktionalität wichtig. Um dies zu verhindern, setzt bei AdGuard Home bei Port Binding alles auf interne IP-Adressen im Docker Subnetz. Wenn der Port 53 öffentlich für DNS Anfragen zugänglich ist, kann die Gefahr vor Missbrauch sehr hoch sein. Denn mit einem öffentlichen DNS ohne Client Limits etc. wird der eigene DNS-Server schnell zu einem Botnetz. Warum?: Weil jede einzelne Anfrage mit einem Flooding zu einer Attacke für andere Ziel Webseiten werden kann. Setzt entweder Limits innerhalb des DNS-Servers oder block den Port 53 von außerhalb, sodass dieser nur intern zugänglich ist, mit VPN etc. Ansonsten wünsche ich euch viel Spaß beim sicheren Surfen mit AdGuard Home und WireGuard. 🙂

2 Antworten zu „AdGuard Home – Unter Docker installieren + WireGuard Einrichtung“

  1. Avatar von Erik
    1. Avatar von RAW Networks

Schreibe einen Kommentar zu Erik Antworten abbrechen

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

Toggle Dark Mode