Aller au contenu

[TUTO] AdGuard en docker, version "express" + Configurations


Einsteinium

Messages recommandés

Préambule

Bonjour à tous,

Nous allons voir aujourd’hui l’installation d’un serveur AdGuard en docker version express et sa configuration de base avec sous domaine.

Qui dit sous domaine… dit certificat ! Donc je vous invite à suivre ce tutoriel, car je partirai du principe où vous l’avez suivi :

 

I - Préparation de l'installation

A ) On commence par l’augmentation d’une limite du serveur « UDP Receive Buffer Size », faire une tâche qui s'exécutera au démarrage : Panneau de configuration / Planificateurs de tâches / Créer / Tâche déclenchée / Script défini par l'utilisateur

Avec pour utilisateur "root", en évènement "Démarrage", que l’on désactive et dans le script on inscrit :

echo net.core.rmem_max=2500000 >> /etc/sysctl.conf
sysctl -p

Exécutez manuellement la tâche pour appliquer la modification, cette modification est permanente, mais gardez la tâche de côté au cas où un update ferait sauter cette dernière.

B ) On commence par la création d'un dossier "AdGuard" dans le dossier "docker"

C ) Création de 2 sous dossiers que vous créez dans le dossier "AdGuard" : "confdir" et "workdir"

 

II - Création du docker

A ) Le script du docker

La création d'un fichier "dockeradguard.sh" dans le dossier "AdGuard" contenant les lignes suivantes :

#!/bin/sh

docker pull adguard/adguardhome:latest

docker stop AdGuard

docker rm AdGuard

docker image prune -f

docker volume ls -qf dangling=true | xargs -r docker volume rm

docker run -d \
	--cpu-shares=10 \
	--memory=1G \
	--memory-swap=1G \
	--name=AdGuard \
    -v /volume1/docker/AdGuard/workdir:/opt/adguardhome/work:rw \
    -v /volume1/docker/AdGuard/confdir:/opt/adguardhome/conf:rw \
    -v /volume1/docker/Acme/domain.tld:/opt/adguardhome/cert:ro \
    -p 53:53/tcp -p 53:53/udp \
    -p 3000:3000/tcp \
    --restart always \
	adguard/adguardhome:latest

exit 0

 

B ) Les variables à personnaliser

1 ) La mémoire

	--memory=1G \
	--memory-swap=1G \

Ici le réglage est pour 1Go, alors je débute dans AdGuard, je sais que les updates de liste mangent de la mémoire donc j’ai prévu très large, néanmoins vous pouvez réduire ces valeurs, jamais vu le docker au dessus de 100Mo, il faudra mettre alors pour :

128Mo : 128M

256Mo : 256M

La variable memory-swap = memory, empêche le docker de déborder dans le swap une fois la limite de mémoire max atteinte.

2 ) Les certificats

Si vous avez suivi le tutoriel mis en préambule alors ici il ne reste qu'à personnaliser cette ligne en remplaçant « domain.tld » :

    -v /volume1/docker/Acme/domain.tld:/opt/adguardhome/cert:ro \

3 ) Le port

Une fois la configuration de base faite en seconde partie, vous pourrez supprimer ce port qui deviendra inutile du script :

    -p 3000:3000/tcp \

 

C ) Création et update journalier

Nous créons une tâche qui exécutera notre fichier tous les jours à 5h30 : Panneau de configuration / Planificateurs de tâches / Créer / Tâche planifiée / Script défini par l'utilisateur

Avec pour utilisateur "root" et dans le script le chemin de notre fichier "/volume1/docker/AdGuard/dockeradguard.sh"

Exécutez manuellement la tâche pour la création initiale.

 

Voilà c'est terminé, on ouvre temporairement dans le pare-feu du nas le port 3000, en seconde partie je donne les configurations.

Adresse du serveur : http://ipdunas:3000

Lien vers le commentaire
Partager sur d’autres sites

  • Einsteinium a modifié le titre en [TUTO] AdGuard en docker, version "express" + Configurations

Je vous donne ma configuration, le serveur adguard fera ses requêtes en DoH.

A vous ensuite de personnaliser à votre sauce, cela n'est vraiment que pour vous donner une base de départ et vous invite à en débattre le cas échéant si votre avis diverge ou si vous voulez rajouter votre touche.

Premier lancement

Adresse du serveur : http://ipdunas:3000

Etape 1/5 : On clique sur "C'est parti"
Etape 2/5 : Interface web administrateur, on modifie le port 80 par 3000, puis on valide par "Suivant"
Etape 3/5 : Ici pas besoin de détail 🙂
Etape 4/5 : On clique sur "Suivant"
Etape 5/5 : On valide avec "Ouvrir le Tableau de bord"

 

Création du sous domaine pour AdGuard :

Pour DSM 7, n'ayant plus vue sur DSM 6

Dans Panneau de configuration / Sécurité / Avancé / Niveau de profil TLS / SSL : Compatibilité intermédiaire

Dans : Panneau de configuration / Portail de connexion / Avancé

A ) Création d'un profil d'accès afin que AdGuard ne soit pas accessible à distance

On Clique sur le bouton "Profil de contrôle d'accès" puis "Créer".

Nom du profil : Lan

On clique ensuite deux fois sur "Créer" et on met :

Sur la première ligne en IP source : 192.168.0.0/24 ou 192.168.1.0/24 en fonction de votre réseau puis on laisse "Autoriser"

Sur la seconde ligne on n'inscrit rien en IP source et on choisit "Refuser"

Maintenant on peut sauvegarder.

B ) Création du sous domaine

On clique sur le bouton "Proxy inversé" puis "Créer".

Dans Général :

Nom du proxy inversé : AdGuard
Source :
- Protocole : HTTPS
- Nom d'hôte : adguard.ndd.fr
- port : 443
Activer HSTS ☑️
Profil de contrôle d’accès : Lan (du point précédent)

Destination :

- Protocole : HTTPS
- Nom d'hôte : localhost
- Port : 3001

Dans En-tête personnalisée :

On fait "Créer" puis "WebSocket"

Dans Paramètres avancés :

Les 3 délais à 60
Version HTTP du proxy : HTTP 1.1
Utiliser la page d'erreur renvoyée par le serveur cible


La configuration AdGuard

Si je ne précise pas un point particulier, alors c'est que le champs est par défaut.

Dans Paramètres / Paramètres généraux :

On va réduire l'intervalle de mise à jour des filtres à 12 heures, un juste milieu, la valeur suivante étant une heure... cela est un peu disproportionné.
Les 3 cases suivantes sont cochées chez moi, là c'est à vous de voir, perso je vous le recommande surtout si vous avez des enfants.

Configuration du journal :
On coche Anonymiser l'IP du client et on réduit la rétention du journal des requêtes à 30 jours pour réduire la lourdeur des logs.


Dans Paramètres / Paramètres DNS :
Serveurs DNS upstream :

https://family.cloudflare-dns.com/dns-query

Alors ici j'ai mis les adresse dns doh de cloudflare en mode "family" qui bloque les logiciels malveillants et le contenu réservé aux adultes.

Serveurs DNS d'amorçage :

1.1.1.3
1.0.0.3
2606:4700:4700::1113
2606:4700:4700::1003

Qui correspondent au serveur mis précédemment.

Configuration du serveur DNS :
Limite de taux : 0
Activer DNSSEC ☑️
Mode du blocage : IP nulle

Configuration du cache DNS :
Remplacer le TTL minimum : 300
Remplacer le TTL maximum : 86400
Caching optimiste ☑️


Dans Paramètres / Paramètres de chiffrement :
Activer le Chiffrement (HTTPS,......) : ☑️

Nom du serveur : adguard.ndd.fr
Port HTTPS : 3001
Emplacement du certificat :

/opt/adguardhome/cert/fullchain.cer

Emplacement de la clef privée :

/opt/adguardhome/cert/domain.tld.key

(modifier domain.tld)

 

Dans Filtres / Listes de blocage DNS :
1) On Active "AdAway Default Blocklist"


2) On clique sur "Ajouter liste de blocage" puis "Choisissez dans la liste"
Dans "Choisir des listes de blocage", on coche tout sauf les "Régional"

3) On clique sur "Ajouter liste de blocage" puis "Ajouter une liste personnalisée", on le fera à 4 reprises pour les listes suivantes :
Mobile ads filter / https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_11_Mobile/filter.txt
Social media filter / https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_4_Social/filter.txt
URL Tracking filter / https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt
Tracking Protection filter / https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_3_Spyware/filter.txt

 

C'est terminé pour les réglages, on peut donc faire le point II - B ) 3 ) du tutoriel et supprimer le port 3000 du pare feu du nas, on ouvrira le port 53 en TCP & UDP dans le pare-feu du nas vers l'ip du routeur, vous accédez désormais à la configuration de adguard via son sous domaine et il ne vous reste plus qu'à indiquer dans votre routeur en serveur l'ip de votre nas 🙂

Pour testé la bonne activation du DoH : https://1.1.1.1/help

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi https://localhost:3001 pour le proxy inversé. Le port 3001 n'est mentionné nulle part ailleurs, tu voulais pas dire 3000 ? Et pourquoi https ? Adguard s'expose par défaut sur un port sécurisé ?

Autre chose, pour l'écriture en octet pour la mémoire dans docker cli, tu peux utiliser le "M" pour mega. Donc 128Mo -> 128M.

Merci pour le tuto sinon, je testerai un jour pour comparer avec Pihole.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

il y a 25 minutes, .Shad. a dit :

Pourquoi https://localhost:3001 pour le proxy inversé.

3000 http, 3001 https avec AdGuard, le port est visible dans la configuration que je donne, je l’ai donc mis dans le reverse, par habitude avec Plex, ou cela cause des problèmes, bref vieille habitude.

Après à la base je fessais du DoT de bout en bout lors de mes test, donc c’était nécessaire, avant de me ravisé et de ne faire que du dns simple entre le docker et le routeur avec du DoH entre AdGuard et le Wan.

il y a 36 minutes, .Shad. a dit :

Autre chose, pour l'écriture en octet pour la mémoire dans docker cli, tu peux utiliser le "M" pour mega. Donc 128Mo -> 128M.

Effectivement pour la mémoire, la encore une vieille habitude, j’éditerais le tutoriel, car effectivement plus simple pour les novices.

il y a 37 minutes, .Shad. a dit :

Merci pour le tuto sinon, je testerai un jour pour comparer avec Pihole.

A la base j’ai été séduit par le fait de ne pas avoir besoin de super droit et le fait de pouvoir faire du doh/dot principalement et d’autres options bien sympathiques directement aussi (recherche sécurisé et cie…), voilà une comparaison sommaire :

https://github.com/AdguardTeam/AdGuardHome#comparison-pi-hole

Apres niveau interface, rapidité et fluidité… Que du bon.

Lien vers le commentaire
Partager sur d’autres sites

Hello 🙂

@Einsteinium Ton tuto m'intéresse pour certains réglages au niveau du DoT/DoH.

J'ai actuellement une installation fonctionnelle de Adguard-Home en macvlan, mais sans utiliser de nom de domaine ni de https pour ADGH.
J'ai ça comme réglages dans l'onglet DNS : (clic pour zoomer)
3JgyTrQ.png Lien vers l'image : https://i.imgur.com/3JgyTrQ.png

Mais du coup, je ne sais pas si les requêtes DNS partent bien en DoH...
Faut que je tente avec tes réglages pour voir ^^ et donc que je monte le certificat ACME.

Mais du coup, question, pourquoi tu fais créer le conteneur avec un script que tu lances tous les jours ?
C'est pour en faire une MAJ tous les jours s'il y en a une de dispo ?

Perso, je passe par Portainer pour créer mes conteneurs, et j'utilise watchtower pour faire les MAJ.

 

Modifié par MilesTEG1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, MilesTEG1 a dit :

Mais du coup, je ne sais pas si les requêtes DNS partent bien en DoH...

https://1.1.1.1/help

Il y a 1 heure, MilesTEG1 a dit :

Mais du coup, question, pourquoi tu fais créer le conteneur avec un script que tu lances tous les jours ?
C'est pour en faire une MAJ tous les jours s'il y en a une de dispo ?

Perso, je passe par Portainer pour créer mes conteneurs, et j'utilise watchtower pour faire les MAJ.

Exactement, perso je n'utilise aucun docker avec de super droit et au final cela revient au même, alors oui la c'est chaque jour, mais cela reload chaque jour les dock.

Lien vers le commentaire
Partager sur d’autres sites

  • 11 mois après...

Bonjour,

Merci pour ce tuto. Par contre lors du déploiement du conteneur via le script, j'ai une erreur qui empêche de le lancer.

 

docker: Error response from daemon: driver failed programming external connectivity on endpoint AdGuard (18336e8478e7a6f213d1a19cea600cf61131df2fb8a1f5855bf3551d2d9d3006): Error starting userland proxy: listen tcp4 0.0.0.0:53: listen: address already in use.

Ce que je comprends, un autre programme écoute déjà le port 53, comment identifier ce programme ? Alors j'ai mal interpréter l'erreur.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.