====== Synology Adblocker ====== ===== Information ===== Cette page va détailler les étapes pour configurer votre NAS Synology en tant que DNS filtrant la publicité en ligne. **Testé sur DSM 6.0.** ===== Installer et configurer le package DNS Server officiel ===== L'installation du DNS Server se fait par Package Center. Une fois installer, configurer comme ceci : * Dans "Zones", choisir "Créer", "Nouvelle Master Zone"\\ * Type de Domain "Forward Zone"\\ * Nom de domaine "null.zone.file"\\ * Server DNS Maitre : l'IP de votre NAS\\ * Serial Format : Date (YYYYMMDDNN)\\ Activez ensuite la résolution vers un serveur externe, comme Google et son 8.8.8.8 (ou autre). ==== Script d'autoconfiguration ==== #!/bin/sh #================================================================================ # (C)2013 dMajo # Title : ad-blocker.sh # Version : V1.02.0018 # Author : dMajo (http://forum.synology.com/enu/memberlist.php?mode=viewprofile&u=69661) # Description : Script to block add-banner servers, dns based # Dependencies: Syno DNSServer package, sed, wget # Usage : sh ad-blocker.sh #================================================================================ # Version history: # 2013.09.01 - 1.00.0001: Initial release # 2013.09.08 - 1.00.0004: Fix: changed include target to support views # 2013.09.12 - 1.00.0005: Added automatic zone file generation and some basic error handling # 2014.03.29 - 1.01.0013: Added dependencies check # 2014.03.30 - 1.02.0017: Script reorganized # 2014.04.06 - 1.02.0018: Fix: fixed serial number in zone file generation #================================================================================ # Define dirs RootDir="/var/packages/DNSServer/target" ZoneDir="${RootDir}/named/etc/zone" ZoneDataDir="${ZoneDir}/data" ZoneMasterDir="${ZoneDir}/master" cd ${ZoneDataDir} # Check if needed dependencies exists Dependencies="chown date grep mv rm sed wget" MissingDep=0 for NeededDep in $Dependencies; do if ! hash "$NeededDep" >/dev/null 2>&1; then printf "Command not found in PATH: %s\n" "$NeededDep" >&2 MissingDep=$((MissingDep+1)) fi done if [ $MissingDep -gt 0 ]; then printf "Minimum %d commands are missing in PATH, aborting\n" "$MissingDep" >&2 exit 1 fi # Download the "blacklist" from "http://pgl.yoyo.org" wget "http://pgl.yoyo.org/as/serverlist.php?hostformat=bindconfig&showintro=0&mimetype=plaintext" # Modify Zone file path from "null.zone.file" to "/etc/zone/master/null.zone.file" in order to comply with Synology bind implementation rm -f ad-blocker.new sed -e 's/null.zone.file/\/etc\/zone\/master\/null.zone.file/g' "serverlist.php?hostformat=bindconfig&showintro=0&mimetype=plaintext" > ad-blocker.new rm "serverlist.php?hostformat=bindconfig&showintro=0&mimetype=plaintext" chown -R nobody:nobody ad-blocker.new if [ -f ad-blocker.new ] ; then rm -f ad-blocker.db mv ad-blocker.new ad-blocker.db fi # Include the new zone data if [ -f ad-blocker.db ] && [ -f null.zone.file ]; then grep -q 'include "/etc/zone/data/ad-blocker.db";' null.zone.file || echo 'include "/etc/zone/data/ad-blocker.db";' >> null.zone.file # Rebuild master null.zone.file cd ${ZoneMasterDir} rm -f null.zone.file Now=$(date +"%Y%m%d") echo '$TTL 86400 ; one day' >> null.zone.file echo '@ IN SOA ns.null.zone.file. mail.null.zone.file. (' >> null.zone.file # echo ' 2013091200 ; serial number YYYYMMDDNN' >> null.zone.file echo ' '${Now}'00 ; serial number YYYYMMDDNN' >> null.zone.file echo ' 86400 ; refresh 1 day' >> null.zone.file echo ' 7200 ; retry 2 hours' >> null.zone.file echo ' 864000 ; expire 10 days' >> null.zone.file echo ' 86400 ) ; min ttl 1 day' >> null.zone.file echo ' NS ns.null.zone.file.' >> null.zone.file echo ' A 127.0.0.1' >> null.zone.file echo '* IN A 127.0.0.1' >> null.zone.file fi # Reload the server config after modifications ${RootDir}/script/reload.sh exit 0 Copiez le script dans le fichier ''/var/packages/DNSServer/target/script/ad-blocker.sh'' Donnez lui des droits d'exécution : chmod +x /var/packages/DNSServer/target/script/ad-blocker.sh Et lancez le script : sh /var/packages/DNSServer/target/script/ad-blocker.sh L'ajouter aux tâches planifiées du NAS pour l'actualisation peut être envisagé. ===== Configuration réseau ===== Il ne reste plus qu'à renseigner ce serveur DNS au niveau de votre serveur DHCP, ou bien de le configurer en dur sur les machines. Attention ! Lors du redémarrage du NAS, suite à mise à jour par exemple, il se peut que le service DNS soit en STOP. Pensez à le redémarrer. ===== Sources ===== [[https://synologytweaks.wordpress.com/2015/08/23/use-synology-as-an-ad-blocker/|synologytweaks.wordpress.com]]