Aller au contenu

[TUTO] Filtrage DNS


Fenrir

Messages recommandés

nobody    2531  0.0  0.0   9532  3704 ?        S    17:46   0:00 /bin/dnsmasq --listen-address=127.0.0.53 --port=53 --bind-interfaces --conf-file=/tmp/dnsmasq.conf --conf-dir=/tmp/dnsmasq.d
root      2533  0.0  0.0  23116   972 pts/9    S+   17:46   0:00 grep --color=auto dnsmasq
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Non-authoritative answer:
Name:   jcount.com
Address: 184.154.246.140
Lien vers le commentaire
Partager sur d’autres sites

nobody    4212  0.0  0.0   9532  3700 ?        S    17:52   0:00 /bin/dnsmasq --listen-address=127.0.0.53 --port=53 --bind-interfaces --conf-file=/tmp/dnsmasq.conf --conf-dir=/tmp/dnsmasq.d
Server:         127.0.0.53
Address:        127.0.0.53#53
 
Name:   jcount.com
Address: 0.0.0.0
Lien vers le commentaire
Partager sur d’autres sites

Donc le script fonctionne bien sur ton nas, mais c'est la partie DNS Serveur qui ne fonctionne pas, ou n'a pas été configurée

Le 09/03/2017 à 23:43, Fenrir a dit :

Sauf qu'il faut aller le faire directement dans le fichier de configuration : /volume1/@appstore/DNSServer/etc/synodns.conf


forwarders=127.0.0.53;80.67.169.40

Enfin on relance le paquet DNSServer :


synoservice --restart pkgctl-DNSServer

 

 

Lien vers le commentaire
Partager sur d’autres sites

Je l'avais fait, voici le fichier de conf :

[resolve]
	forwarders="127.0.0.53;169.239.202.202"
	allow_ip=""
	allow_subnet=""
	allow-recursion=""
	forward_enable="yes"
	forward="first;"
	limit_enable="no"
	resolve_enable="yes"
	need_initial="no"
[advanced]
	log_space="50"
	max-cache-size="50"
	max-cache-ttl="86400"
	recursive-clients="1000"
	tcp-clients="100"
[log]
	default="1"
	queries="1"
	xfer-out="1"
	xfer-in="1"
	severity="Notice"
	security="1"
	general="1"
	resolver="1"

Une seule chose, je n'ai pas coché "Limiter le service IP source" comme sur ton script, ne sachant pas si c'était nécessaire.

Lien vers le commentaire
Partager sur d’autres sites

Et tu as bien relancé le serveur dns du syno après la modif ?

il y a 1 minute, HornyPoney a dit :

Une seule chose, je n'ai pas coché "Limiter le service IP source" comme sur ton script, ne sachant pas si c'était nécessaire.

Pas de lien avec le problème, mais quand on ne sait pas, il faut mieux demander ou faire confiance. Dans le cas présent, c'est expliqué dans le tuto DNS Server.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

@Fenrir : J'ai utilisé d'autres sources qui nécessitent des expressions régulières spécifiques. Ça fonctionne très bien pour le moment, mais je vais fractionner ce script et mieux traiter le PID pour ne pas entrer en conflit avec d'autres instances de dnsmasq.

Je ne sais pas si c'est dans les bonnes pratiques, mais en tout cas c'est Synology-bullshit-update-proof : dnsmasqBin=`which dnsmasq`

# /volume1/@appstore/DNSServer/etc/synodns.conf -> forwarders=127.0.0.53
# synoservice --restart pkgctl-DNSServer

dnsmasqBin=`which dnsmasq`
dnsmasqConfDir='/usr/local/etc/dnsmasq.d'
dnsmasqConfFile="$dnsmasqConfDir/dnsmasq.filter.conf"
dnsmasqAdFile="$dnsmasqConfDir/dnsmasq.adlist.conf"
dnsmasqAdFileTemp='/tmp/dnsmasq.adlist.conf.tmp'

dnsmasqListen=127.0.0.53
dnsmasqPort=53

server1='80.67.169.12'	# ns0.fdn.org
server2='80.67.169.40'	# ns1.fdn.org

curlBin=`which curl`
substitutionIp='0.0.0.0'
adListUrl=(
	"http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&showintro=0&mimetype=plaintext"
	#"http://winhelp2002.mvps.org/hosts.txt"
	"https://easylist.to/easylist/easylist.txt"
	"https://easylist.to/easylist/easyprivacy.txt"
	"https://easylist.to/easylist/fanboy-annoyance.txt"
	"https://easylist.to/easylist/fanboy-social.txt"
)

mkdir -p $dnsmasqConfDir
cat <<EOT > $dnsmasqConfFile
cache-size=5000
server=$server1
server=$server2
neg-ttl=300
no-resolv
#clear-on-reload
EOT

#> $dnsmasqAdFileTemp	# Empty file if exists
for url in "${adListUrl[@]}"; do
	host=`echo $url | sed -n "s/^https\?:\/\/\([^/]\+\).*$/\1/p"`
	case $host in
		pgl.yoyo.org)
			$curlBin -s $url | sed "s/127\.0\.0\.1/$substitutionIp/" >> $dnsmasqAdFileTemp
			;;
		easylist.to)
			$curlBin -s $url | grep -E '^\|\|[^^/]+\^\$third\-party$' | sed -n "s/^||\([^^/]\+\).*$/address=\/\1\/$substitutionIp/p" >> $dnsmasqAdFileTemp
			;;
		#winhelp2002.mvps.org)
		#	
		#	;;
		*)
			echo "Processing for $host list is not implemented"
			;;
	esac
done
sort -u -o $dnsmasqAdFileTemp $dnsmasqAdFileTemp

if [ -f "$dnsmasqAdFileTemp" ]
then
	sudo mv $dnsmasqAdFileTemp $dnsmasqAdFile
else
	exit 1
fi

pid=`/bin/pidof dnsmasq`
if [ "$pid" != '' ]
then
	/bin/kill $pid
fi

$dnsmasqBin --listen-address=$dnsmasqListen --port=$dnsmasqPort --bind-interfaces --conf-file=$dnsmasqConfFile --conf-dir=$dnsmasqConfDir
exit 0

 

Modifié par PiwiLAbruti
Nettoyage du script
Lien vers le commentaire
Partager sur d’autres sites

Ok

Pour les which fais attention au path, certains paquets viennent avec leurs propres binaires (j'ai eu le cas je ne sais plus avec quoi), pour le sort, ajoute -f (--ignore-case)

Pour les multiples instances de dnsmasq, le cas auquel il faut faire attention c'est si tu utilises le serveur DHCP et/ou PXE du Syno, sinon il n'a aucune raison de tourner.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

j'ai suivi ce tuto et pour moi cela ne fonctionne pas.

J'ai cherché ce qui ne fonctionnait pas et n'ai abouti à rien.

Pour résumer je suis dans la situation ou était @HornyPoney à la fin aout (j'ai fait les mêmes vérif avec les mêmes résultats)

Précisions supplémentaires:

quand je relance le serveur DNS le syno mouline quelques secondes et rend la main (pas de message indiquant que le redémarrage s'est fait)

j'utilise un script qui est un mix entre celui de @Fenrir et celui de @PiwiLAbrutri (mais il semble OK)

Avez-vous quelques pistes de recherche à me proposer?

Merci

 

Complément d'info

quand je relance le serveur DNS les lignes de [resolve ]dans synodns.conf perdent leur indentation

Modifié par PPJP
Complément info
Lien vers le commentaire
Partager sur d’autres sites

Mon script:

(je précise que je ne suis pas familier de bash)

#!/bin/bash
#

# /volume1/@appstore/DNSServer/etc/synodns.conf -> forwarders=127.0.0.53
# synoservice --restart pkgctl-DNSServer

dnsmasqConfDir='/volume1/conf/dnsmasq'
dnsmasqConfFile="$dnsmasqConfDir/dnsmasq.conf"
dnsmasqAdFile="$dnsmasqConfDir/dnsmasq.d/dnsmasq.adlist.conf"
adFileTemp='/tmp/adlist.conf.tmp'
adFilePerso='/volume1/adm/dnsmasq/filtreperso.txt'

dnsmasqListen='127.0.0.53'
dnsmasqPort='53'

server1='80.67.169.12'    # ns0.fdn.org
server2='80.67.169.40'    # ns1.fdn.org

serverpixel='0.0.0.0'

adListUrl=(
    "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&showintro=0&mimetype=plaintext"
    #"http://winhelp2002.mvps.org/hosts.txt"
    #"https://easylist.to/easylist/easylist.txt"
    #"https://easylist.to/easylist/easyprivacy.cd /volume1/@appstore/DNSServer/etc/synodnstxt"
    #"https://easylist.to/easylist/fanboy-annoyance.txt"
    #"https://easylist.to/easylist/fanboy-social.txt"
)

mkdir -p $dnsmasqConfDir/dnsmasq.d

cat <<EOT > $dnsmasqConfFile
#
cache-size=5000
server=$server1
server=$server2
neg-ttl=300
no-resolv
#clear-on-reload
EOT

cat $adFilePerso > $adFileTemp

for url in "${adListUrl[@]}"; do
    host=`echo $url | sed -n "s/^https\?:\/\/\([^/]\+\).*$/\1/p"`
    case $host in
        pgl.yoyo.org)
            /bin/curl -s $url | sed "s/127\.0\.0\.1/$serverpixel/" >> $adFileTemp
            ;;
        winhelp2002.mvps.org)
            /bin/curl -s $url | tr -d '\r' | egrep -v "(^(#|$))|localhost" | awk '{print "address=/"$2"/"$1""}' >> $adFileTemp
            ;;
        easylist.to)
            /bin/curl -s $url | grep -E '^\|\|[^^/]+\^\$third\-party$' | sed -n "s/^||\([^^/]\+\).*$/address=\/\1\/$serverpixel/p" >> $adFileTemp
            ;;
        *)
            echo "Processing for $url is not implemented"
            ;;
    esac
done

sort -ufo  $adFileTemp $adFileTemp

if [ -f "$adFileTemp" ]
then
    sudo mv $adFileTemp $dnsmasqAdFile
else
    exit 1
fi

pid=`/bin/pidof dnsmasq`
if [ "$pid" != '' ]
then
    /bin/kill $pid
fi

/bin/dnsmasq --listen-address=$dnsmasqListen --port=$dnsmasqPort --bind-interfaces --conf-file=$dnsmasqConfFile --conf-dir=$dnsmasqConfDir/dnsmasq.d

exit 0

Modifié par PPJP
correctif erreur en fin de script
Lien vers le commentaire
Partager sur d’autres sites

Pour ceci:

Le 29/01/2017 à 01:58, Fenrir a dit :

nb : j'utilise les DNS de FDN comme "redirecteurs", car ils sont fiables et respectent votre vie privée (contrairement à ceux d'OpenDNS par exemple), mais vous êtes libre d'utiliser les serveurs de votre choix, voir aucun

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Pour ceux qui ont ouvert dnsmasq sur internet, une mise à jour s'impose :

Citation

Version: 6.1.3-15152-6


(2017-10-03)
Fixed Issues
  1. Fixed multiple security vulnerabilities regarding DNSmasq (CVE-2017-13704, CVE-2017-14491, CVE-2017-14495, CVE-2017-14496).
  2. Fixed multiple security vulnerabilities regarding DHCPv6 Server (CVE-2017-14492, CVE-2017-14493, CVE-2017-14494).

Tout ça a été corrigé depuis la version 2.78. Le problème c'est qu'on n'a aucun moyen de le vérifier (version UNKNOWN) :

me@DiskStation:~# dnsmasq -v
Dnsmasq version UNKNOWN  Copyright (c) 2000-2017 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify

This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.

 

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

En fait oui et non, c'est mon anti virus qui bloque : 

 

image.png.e0c1ae2441e77edc34a4b6ea7d78cf47.png

En désactivant ça fonctionne mais d'un autre coté Fenir tu ne devrais pas mettre à jour tes certificats pour passer à SSL V3 ?

 

 

Je viens de vérifier le certificat est lestencrypt V3, je vais ouvrir un incident auprès du logiciel d'anti virus

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

il y a 17 minutes, rjulie a dit :

En désactivant ça fonctionne mais d'un autre coté Fenir tu ne devrais pas mettre à jour tes certificats pour passer à SSL V3 ?

:lol:

Je n'autorise pas le SSL 2, ni SSL 3, ni TLS 1.0 ni TLS 1.1, seulement TLS 1.2 (et TLS 1.3 sur le miroir)

=>le pb vient bien de chez toi (sûrement les clefs EC)

Lien vers le commentaire
Partager sur d’autres sites

  • 8 mois après...

Bonjour,

Petit retour d'expérience concernant ce tuto pour lequel je remercie beaucoup @Fenrir !

J'ai bien suivi le Tuto sur DS218+ à la seule exception du redémarrage du package DNSserver qui a planté en SSH, certainement car j'utilise aussi Active Directory Server. J'ai donc redémarré la NAS, relancé le script puis vérifié que la première redirection pointe bien vers 127.0.0.53 : c'était le cas.

Après quelques vidage de cache DNS, la solution fonctionnait depuis les appareils de mon réseau local : COOL !

Mais au renouvellement de baux DHCP (mon NAS fait aussi DHCP), j'ai commencé à avoir des problèmes : les machines ne récupéraient plus de bail. 

En forçant une configuration réseau sur une machine, je me suis aperçu que le serveur DNS fonctionnait de manière erratique ou même plus du tout (même après redémarage/relance du script).

Pire au bout d'un moment mon NAS est devenu complètement inaccessible sur le réseau (pas de réponse aux pings, tous les noms de domaine internes renvoyaient sur la page du routeur alors que cloudstation sharesync sur un NAS distant avait toujours accès).

J'ai du faire un reset simple pour récupérer l'accès.

 

J'ai donc l'impression que ce tuto a rendu instable le serveur DNS et le DHCP (j'ai lu qu'un DHCP est une fonction de DNSmasq), avec certainement peut-être ADS en facteur aggravant mais à votre avis : d'où peut venir le problème ? (en plus de moi 🤪 )

 

Au pire : comment puis-je désactiver complètement les effets de cette ligne du script

/bin/dnsmasq --listen-address=$dnsmasq_listen --port=$dnsmasq_port --bind-interfaces --conf-file=$dnsmasqconfdir/dnsmasq.conf --conf-dir=$dnsmasqconfdir/dnsmasq.d

(j'ai déjà enlevé 127.0.0.53 des redirecteurs et je m'apprête à reactiver le DHCP sur le NAS)

 

Merci beaucoup de m'avoir lu ! 

(je veux peut-être en faire un peu trop avec un seul serveur et ... pardon pour le déterrage...)

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.