OBSD4* : wiki

Unbound : DNS Cache

Avoir un DNS cache, dans sa station, est utile pour accélérer les requêtes DNS, surtout dans la cas de domaine déjà visité, et, encore plus de pages visitées et/ou lues.

C'est une technique facile à mettre en place, d'autant que le paquet 'unbound' est intégré nativement à OBSD !

  • Pour activer unbound, tapez :
    # rcctl enable unbound
  • Pour le démarrer :
    # rcctl start unbound

Note : toutes les commandes sont à exécuter avec des droits administrateurs

ATTENTION : Si vous voulez obtenir un serveur DNS Cache en local sur votre station, ayant des communications sécurisées DNSSEC - ce que le bon sens informatique recommande -, préférez la lecture et l'usage de notre page Unbound : un résolveur cache DNS (DNSSEC + DNS/TLS). Ne pas utiliser conjointement dnscrypt-proxy !

Configuration basique

Afin d’utiliser unbound et profiter de son cache, il faut mettre dans le fichier /etc/dhclient.conf :

prepend domain-name-servers 127.0.0.1; 

Et la config anti-pub :

# ftp -n -m -C -o /var/unbound/etc/unbound_ad_servers "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext"

Puis modifiez le fichier /var/unbound/etc/unbound.conf, pour ajouter la déclaration suivante, si possible au niveau de la gestion 'local-zone', 'local-data' :

  include: /var/unbound/etc/unbound_ad_servers

Configuration "avancée"

Il faut modifier le fichier /var/unbound/etc/unbound.conf !

Voici un exemple :

server:
	interface: 192.168.1.1
	interface: 127.0.0.1
	access-control: 192.168.1.0/24 allow
	do-not-query-localhost: no
	hide-identity: yes
	hide-version: yes

forward-zone:
        name: "."
        forward-addr: 127.0.0.1@40

Il faut bien comprendre que c'est une configuration minimaliste, très basique ; néanmoins, elle montre ce qu'il faut à minima changer :

  • une déclaration 'interface' qui correspond à l'adresse ip de votre station
  • les deux déclarations 'hide-*' qui servent à cacher les informations d'identité du service unbound, ainsi que sa version.
  • et pour finir la déclaration 'forward-addr' qui est le résolveur local DNS … suivi du numéro de port que vous désirez lui attribuer !

Il est utile, voire intéressant de comprendre comment chiffrer les communications DNS, veuillez lire le chapitre suivant !

Pour de plus amples informations, veuillez ABSOLUMENT lire le manpage correspondant … en effet, il y a beaucoup de configuration proposée.

Communication "chiffrée"

dnscrypt_proxy

Pour avoir les communications DNS chiffrées, il est possible d'utiliser le paquet “dnscrypt-proxy”. Celui-ci n'est pas dans le système de base.

  • Installer : pkg_add dnscrypt-proxy … et pourquoi pas dnscrypt-proxy-plugins - suite, à l'installation, il vous est recommandé de lire le fichier pkg-readmes correspondant ; faites-le !
  • Pour l'activer :
    # rcctl enable dnscrypt_proxy

ATTENTION : bien faire attention à l'écriture du nom du package, et du nom du service. Ils sont bel et bien différents : le premier utilise le symbole '-', quant au second, le symbole '_' !

Les serveurs français qui sont connus, dans l'immédiat sont :

  • dnscrypt.org-fr
  • cs-fr et cs-fr2
  • d0wn-fr-ns2

Une liste de tous les serveurs compatibles avec le service de dnscrypt-proxy sont enregistrés localement dans le système à : /usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv ou à partir du dépôt git du site officiel : dnscrypt.org !

Vous avez choisi un des serveurs, pour l'exemple ce sera celui de 'dnscrypt.org-fr' - maintenant, il faut paramétrer le service relatif à dnscrypt-proxy, puis le démarrer :

# rcctl set dnscrypt_proxy flags -R dnscrypt.org-fr -a 127.0.0.1:40

Vous remarquez le numéro de port configuré dans les drapeaux, c'est celui que vous avez|aurez configuré, comme informé dans le chapitre “Configuration avancée”. Il est important de mettre le même !

Règles parefeu

Pour prévenir d'une fuite d'informations, il est préférable de modifier votre configuration /etc/pf.conf, tel que :

block return in log on $iface inet proto { tcp udp } from any to ! $iface port 53

Note : Modifier l'adresse ip par celle de votre station !

À-propos de dnscrypt-proxy

Revenons au but de ce petit outil, à savoir d’authentifier les communications DNS, entre votre client logiciel DNS, et les serveurs DNS que vous utilisez pour pouvoir surfer sur Internet. Il utilise des signatures cryptographiques pour communiquer. Il interroge des serveurs DNS publics, compatible avec l'outil. Il peut-être actif conjointement à votre serveur DNS cache local - pour cela, configurer unbound, comme annoncé dans le chapitre “Configuration avancée” -

ATTENTION : Bien comprendre que cela ne protège pas des failles dues à DNS, cela authentifie le traffic DNS, avec un serveur DNS compatible, et ainsi empêche qu'un serveur malintentionné se fasse passer pour un serveur authentique. Ce n'est pas non plus un service VPN, et n'a pas l'intention de fournir de tels services, vous ne pouvez pas faire passer tous vos flux TCP/IP, ni UDP, à l'intérieur … seuls ceux liés aux requêtes DNS, sur les ports 53 et 443, en UDP, normalement sont desservis. Soyez avertis aussi que les serveurs DNS compatibles peuvent très bien journaliser votre traffic !

Il fonctionne sur les protocoles IPv4 et IPv6.