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?
- Ein vServer oder dedizierter Server je nach Wunsch, bei vServern aber mindestens KVM Virtualisierung.
- Eine statische IP-Adresse (DynDNS sollte auch gehen, wird aber in den nächsten Tutorials allgemein thematisiert).
- 53/tcp und 53/udp Port sollte mindestens frei sein, auch vom Linux OS her (Wird hier gezeigt wie man es konfiguriert).
- 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 🙂

# Deaktiviert den Service
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
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.
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.

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

# 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. 🙂
# 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.


5. Wichtige Tipps!
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. 🙂
Schreibe einen Kommentar zu Erik Antworten abbrechen