Pdnsd : Différence entre versions

De ArchwikiFR
m (a déplacé Pdnsd (Français) vers Pdnsd)
m (Robot : Enlève modèles : I18n, Lang, Stub, Translateme)
Ligne 1 : Ligne 1 :
{{i18n|Pdnsd}}
+
 
 
<tt>pdnsd</tt> est un serveur DNS conçu pour mettre en cache localement des informations DNS. Correctement configuré, il permet d’augmenter la vitesse de surf de manière significative sur Internet.
 
<tt>pdnsd</tt> est un serveur DNS conçu pour mettre en cache localement des informations DNS. Correctement configuré, il permet d’augmenter la vitesse de surf de manière significative sur Internet.
  
Ligne 107 : Ligne 107 :
  
 
; Q) Pourquoi est-ce plus lent qu’avant ? : '''R''') Vous avez sans doute mis l’option <tt>proxy_only</tt> à <tt>off</tt> dans l’une des sections serveur de pdnsd.conf. Par défaut, pdnsd fait fréquemment des requètes sur un domaine à plusieurs serveurs DNS pour avoir la réponse la plus précise possible. L’option <tt>proxy_only</tt> désactive cette fonctionnalité. Il devrait être mis à <tt>on</tt> si vous utilisez le serveur DNS fournit par votre FAI.
 
; Q) Pourquoi est-ce plus lent qu’avant ? : '''R''') Vous avez sans doute mis l’option <tt>proxy_only</tt> à <tt>off</tt> dans l’une des sections serveur de pdnsd.conf. Par défaut, pdnsd fait fréquemment des requètes sur un domaine à plusieurs serveurs DNS pour avoir la réponse la plus précise possible. L’option <tt>proxy_only</tt> désactive cette fonctionnalité. Il devrait être mis à <tt>on</tt> si vous utilisez le serveur DNS fournit par votre FAI.
 +
[[Category:Necessite relecture]]

Version du 18 mars 2011 à 21:33

pdnsd est un serveur DNS conçu pour mettre en cache localement des informations DNS. Correctement configuré, il permet d’augmenter la vitesse de surf de manière significative sur Internet.

Installation

pdnsd est disponible sur le dépôt community.

pacman -S pdnsd

Configuration

Préparation

Le fichier exemple de configuration qui vient avec pdnsd a besoin de quelques modification avant de démarrer le daemon. Tout d’abord, copier le fichier au bon endroit :

cp /etc/pdnsd.conf.sample /etc/pdnsd.conf

Le format

Le fichier pdnsd.conf utilise un format assez simple mais il comporte quelques differences par rapport à la plupart des fichiers que vous avez l’habitude de rencontrer. Il comporte différentes sections. Une section commence avec le nom du type de section et une accolade ouvrante ({) puis se termine avec une accolade fermante (}). Les sections ne peuvent pas s’imbriquer.

Dans chaque bloc, il y a une série d’options avec le format suivant :

option_name=option_value;

Vous êtes obligés de mettre un point virgule à la fin ; ce n’est pas optionnel contrairement à d’autres formats.

Les commentaires commence soit par « # » ou « /* ». Le « # » pour commenter jusqu’à la fin de la ligne et le « /* » pour commenter jusqu’à ce qu’il rencontre un « */ ».

Serveurs DNS

pdnsd a besoin de connaître l’adresse d’au moins un serveur DNS pour en collecter des informations DNS. Cette partie d’installation peut différer selon que vous avez une connexion de haut débit ou RTC (bas débit). Ceux qui sont en haut débit doivent utiliser la première section serveur comme point de départ et les utilisateurs bas débit la seconde en laissant les autres sections serveurs commentées.

label 
L’option label est utilisée pour identifier de manière unique la section serveur. Le nom est totalement arbitraire, mais un bon choix est de mettre par exemple le nom de votre FAI.
ip 
Cette option, utilisée dans la configuration par défaut en haut débit, dit à pdnsd quelle sont les adresses DNS à utiliser. Quand il y a plusieurs adresses, elles doivent être séparées par une simple virgule, avec un éventuel espace avant ou après la virgule. Vous pouvez copier les adresses provenant de /etc/resolv.conf.
file 
L’option file peut être utilisée au lieu de ip pour spécifier un pool d’IP de serveurs DNS. Leur valeur est le chemin vers un fichier contenant des serveurs listés se calquant sur le même format que resolv.conf. La configuration par défaut pour le bas débit l’utilise parce que le client PPP écrit dans /etc/ppp/resolv.conf avec les adresses provenant du serveur PPP (point to point protocol). Vous ne devez pas le changer à moins que vous vouliez utiliser un serveur DNS différent que celui donné par votre FAI par défaut.

Le reste de la section serveur fonctionnera sans avoir quoique ce soit à modifier. Pour en savoir plus sur les différentes options disponibles, veuillez vous référer au manuel pdsnd.

Sécurité

La configuration par défaut comporte une faille de sécurité. Le daemon se lance en tant qu’utilisateur nobody, un compte standard souvent utilisé pour donner à cet utilisateur le moins de permissions possibles. C’est une mauvaise idée avec pdnsd car le daemon a besoin d’un accès en lecture/écriture sur le cache DNS. Si un utilisateur malveillant trouve une vulnérabilité dans un autre processus lancé en tant que nobody, il peut avoir la possibilité d’injecter de fausses données DNS dans le cache (en tête d’éventuels autres problèmes).

Afin d’éviter de courir ce risque, vous devrez lancer pdnsd en un autre utilisateur. Créez-le d’abord :

groupadd pdnsd
useradd -d /var/cache/pdnsd -g pdnsd -s /bin/false pdnsd

/var/cache/pdnsd a été choisi en tant que répertoire home parce que c’est à cet endroit que pdnsd enregistre ses données.

Ensuite, revenez sur pdnsd.conf. Cette fois-ci, nous allons éditer la section global en haut du fichier. Modifier la valeur nobody de run_as en pdnsd. Vous devez aussi ajouter l’option strict_setuid pour apporter une sécurité supplémentaire. Mettez-le à on.

Cependant, nous avons un peu trop limité le serveur. pdnsd a besoin d’écrire sur un répertoire situé sous /var/cache, mais il ne peut pas car il n’a pas les privilèges root. Remédions à ce problème :

mkdir /var/cache/pdnsd
chown pdnsd:pdnsd /var/cache/pdnsd
chmod 700 /var/cache/pdnsd

Si vous êtes allés trop vite et si vous avez essayé de démarrer le daemon avant d’avoir cette section, vous avez déjà un fichier pdnsd.cache, et il appartient à l’utilisateur pdnsd. Si c’est le cas, alors supprimer-le. Ce fichier sera automatiquement regénéré.

Test

Vous devriez désormais avoir un deamon pdnsd fonctionnel. Lancez-le, et découvrez par vous-même.

/etc/rc.d/pdnsd start

Vous pouvez le tester avec l’utilitaire nslookup (du paquet dnsutils).

nslookup www.google.com 127.0.0.1

Si tout fonctionne, vous devriez voir une liste d’adresses IP associée avec www.google.com.

Installation au niveau système

Maintenant il est temps de faire fonctionner votre système avec votre tout nouveau serveur DNS.

Si vous utilisez DHCP pour configurer votre réseau, vous aurez besoin de faire un bref détour dans le fichier de config /etc/conf.d/dhcpcd. Ajoutez-y -C resolv.conf en fin de chaîne de la variable idoine — ce qui évite d’écraser /etc/resolv.conf. Ça doit ressembler à quelque chose comme ça :

DHCPCD_ARGS="-t 10 -h $HOSTNAME -C resolv.conf"

Maintenant, il suffit d’éditer /etc/resolv.conf et de remplacer le contenu avec ceci :

nameserver 127.0.0.1

Et tout ce qui reste à faire maintenant est d’ajouter pdnsd dans votre liste des daemons situé dans /etc/rc.conf. Il doit être placé juste après le daemon qui gère le réseau.

Félicitations ! vous en avez terminé !

Extras

Partage du serveur avec votre réseau local

Si vous disposer de plusieurs ordinateurs connectés au réseau, vous voulez sans doute faire en sorte que pdnsd soit disponible pour tous. Cela permet à l’ensemble de votre réseau de partager un unique cache DNS et ainsi d’accélérer fortement les résolutions de nom. Pour ce faire, positionner server_ip dans la section global avec le nom de votre interface réseau (habituellement eth0). Si vous avez configuré un pare-feu, il faut que vous le configuriez afin qu’il permette les connections sur le port 53 des adresses en provenance de votre réseau.

Désormais, vous pouvez configurer les autres ordinateurs du réseau pour utiliser l’ordinateur qui fait tourner pdnsd et ses serveurs DNS primaires.

Blocage des noms

pdnsd vous permet de spécifier des noms d’hôtes ou des noms de domaines pour lesquels il ne retournera pas de résultat. Cela vous permet de l’utiliser comme un bloqueur de pub de basique ou de contenu, entre autre. Créez une nouvelle section neg dans pdnsd.conf. Les sections neg ont deux options principales. name est le nom de l’hôte ou du domaine que vous voulez bloquer. types peut être positionné à domain pour bloquer tous les hôtes dans un domaine donné. Le fichier pdnsd.conf par défaut donne un exemple qui bloque toutes pubs en provenance de doubleclic.net.

FAQ

Q) Ça ne me semble pas beaucoup plus rapide. Pourquoi ? 
R) Le gain de vitesse acquis depuis un serveur DNS tournant en local dépend de combien de temps ça met pour se connecter à un serveur. Le débit n’est en aucun cas affecté. La différence est notable lorsque vous surfez sur le Web car cela implique de petits téléchargements en provenance de plusieurs serveurs. Avec des connections plus lentes, notammentles connexions 56k RTC, le débit est le principal goulot d’étranglement, With slower connections, especially dial-up, throughput is the primary bottleneck, so there won't be as large a difference percentage-wise.
Q) Pourquoi est-ce plus lent qu’avant ? 
R) Vous avez sans doute mis l’option proxy_only à off dans l’une des sections serveur de pdnsd.conf. Par défaut, pdnsd fait fréquemment des requètes sur un domaine à plusieurs serveurs DNS pour avoir la réponse la plus précise possible. L’option proxy_only désactive cette fonctionnalité. Il devrait être mis à on si vous utilisez le serveur DNS fournit par votre FAI.