meta données pour cette page
Utiliser unbound pour cacher et bloquer des requêtes DNS
Installation
Nous aurons donc besoin du paquet correspondant :
apt install unbound
Caching
Sécurité
include: “/etc/unbound/unbound.conf.d/*.conf”
use-syslog: yes logfile: /var/log/unbound.log
cache-min-ttl: 3600 cache-max-ttl: 86400
hide-identity: yes hide-version: yes
000tristanprod.free.fr
Blocking
Voici le script qui va permettre de récupérer les domaines que l'on ne souhaite pas résoudre :
nano /etc/unbound/get_dns_blacklists.sh
- get_dns_blacklists.sh
#!/bin/sh TMPFILE=$( mktemp get_dns_blacklists-XXXXXXXXX ) trap 'rm -f $TMPFILE; exit 1' EXIT KILL INT QUIT TERM ( curl -s https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | grep ^0.0.0.0 | awk '{ print $2 }' curl -s http://mirror1.malwaredomains.com/files/justdomains curl -s http://sysctl.org/cameleon/hosts | grep ^127.0.0.1 | awk '{ print $2 }' curl -s https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist curl -s https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt curl -s https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt curl -s https://hosts-file.net/ad_servers.txt | grep ^127.0.0.1 | awk '{ print $2 }' curl -s https://raw.githubusercontent.com/quidsup/notrack/master/trackers.txt | awk '{ print $1 }' ) | tr -d "\r" | tr 'A-Z' 'a-z' | sed -e 's/\.$//' | grep -v -e '^#' | grep '\.' | sort -u | while read domain; do echo local-zone: \"$domain\" redirect echo local-data: \"$domain. A 0.0.0.0\" done > $TMPFILE mv $TMPFILE /etc/unbound/unbound.conf.d/ad-blacklist.conf /etc/init.d/unbound restart
chmod u+x /etc/unbound/get_dns_blacklists.sh
Ainsi lorsqu'une requête sera adressé au serveur, celui-ci répondra par l'IP 0.0.0.0 soit une absence de résolution.
Automatisons la regénération du fichier de blockage dans une table cron :
crontab -e * * */7 * * /bin/bash /etc/unbound/get_dns_blacklists.sh
Ainsi le serveur écoute sur le port 53 et prêt à répondre au client.