Aller au contenu

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


Messages recommandés

Posté(e)

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

  • Einsteinium a modifiĂ© le titre en [TUTO] AdGuard en docker, version "express" + Configurations
Posté(e)

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

Posté(e) (modifié)

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.
Posté(e)
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.

Posté(e) (modifié)

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
Posté(e)
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.

  • 11 mois aprĂšs...
Posté(e)

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.

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.