Activer et utiliser named sous MacOSX
Par Rémi TAUPIN le lundi 13 juin 2011, - Lien permanent
Le démon DNS named est présent sur les
machines MacOSX mais il est désactivé par défaut. L'activer et l'utiliser pour
résoudre les requêtes DNS peut être utile si on veut accélérer le surf sur
internet ou si on ne veut plus être tributaire des DNS de son FAI (censure,
trace, etc.)
Configuration de named
Nous allons commencer par ouvrir une fenêtre de terminal et nous connecter en root :
MacBook:~ Remi$ sudo su -
root
Password:********
Ensuite, la première étape est de créer le fichier de clé /Private/etc/rndc.conf qui va servir à authentifier les accés au démon named.
MacBook:~ root# rndc-confgen -a
wrote key file "/private/etc/rndc.key
Vérifier que ce fichier ne soit en rw que pour root.
Nous allons maintenant éditer le fichier /etc/named.conf afin de lui indiquer les forwarders, c'est à dire les adresses IP des serveurs DNS à utiliser lorsque notre serveur ne saura pas résoudre les réquêtes tout seul. Les forwarders doivent être mis dans la section options comme ceci :
MacBook:~ root# vi /etc/named.conf
options {
directory "/var/named";
forwarders {
8.8.8.8;
8.8.4.4;
};
};
Note : ici nous utilisons les adresses IP des serveurs DNS de Google qui sont censés être parmi les plus rapides.
Il faut maintenant créer les fichiers qui vont servir au démarrage automatique du démon named. Ces fichiers se trouvent dans le répertoire /System/Library/StartupItems/BIND :
MacBook:~ root# mkdir -p /System/Library/StartupItems/BIND
MacBook:~ root# vi
/System/Library/StartupItems/BIND/BIND
#!/bin/sh
. /etc/rc.common
if [ "${DNSSERVER}" = "-YES-" ]; then
/usr/sbin/named
fi
On rend le fichier exécutable :
MacBook:~ root# chmod +x /System/Library/StartupItems/BIND/BIND
Dans le même répertoire, créer le fichier suivant :
MacBook:~ root# vi /System/Library/StartupItems/BIND/StartupParameters.plist
{
Description = "DNS Server";
Provides = ("DNS Server");
OrderPreference = "None";
Messages =
{
start = "Starting BIND…";
stop = "Stopping BIND…";
};
}
Pour que le serveur DNS se lance au boot de la machine, il faut modifier le fichier de configuration suivant en modifiant ou en ajoutant la ligne DNSSERVER :
MacBook:~ root# vi /etc/hostconfig
DNSSERVER=-YES-
Maintenant on peut lancer le serveur DNS soit en rebootant la machine, soit en le lancant manuellement pour une première utilisation avec la commande :
MacBook:~ root# /System/Library/StartupItems/BIND/BIND
BIND doit maintenant avoir démarré. Pour voir si c'est la cas, vérifier avec la commande :
MacBook:~ root# ps aux | grep named
root 23404 0.0 0.2 2440208 3532 ?? Ss Fri03PM 00:08.35 /usr/sbin/named
Une ligne qui ressemble à celle ci-dessus doit apparaitre.
On peut aussi lancer quelques requêtes DNS pour vérifier que celui-ci fonctionne bien :
MacBook:~ root# nslookup
> server
127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> www.antiseches.net
Server: 172.16.204.5
Address: 172.16.204.5#53>
Non-authoritative answer:
www.antiseches.net canonical name = blogs.vip.gandi.net.
blogs.vip.gandi.net canonical name = blogs-users.vip.gandi.net.
Name: blogs-users.vip.gandi.net
Address: 217.70.184.34
Utilisation de serveur
Maintenant que le serveur BIND fonctionne, il faut paramèter la partie cliente du mac pour qu'elle l'utilise. Pour ce faire, aller dans le menu Préférences Système / Réseau, puis sélectionner la carte réseau utilisée (wifi, ethernet,...). Cliquer sur le bouton Avancé et aller dans l'onglet DNS. Remplacer alors les DNS courants par 127.0.0.1 puis valider.
Pour vérifier que le système utilise bien l'adresse 127.0.0.1 comme DNS, taper la commande suivante :
MacBook:~ root# scutil --dns
On doit voir apparaitre les infos suivantes :
DNS configuration
resolver #1
domain : config
nameserver[0] : 127.0.0.1
order : 200000
....
On voit que le serveur utilisé est l'adresse de localhost, 127.0.0.1.
Note importante : Si vous utilisez le terminal, vous devez savoir que certaines commandes comme nslookup ou dig n'utiliseront pas notre serveur DNS, mais les informations inscritent dans le fichier /etc/resolv.conf. Le fichier /etc/resolv.conf devra donc être modifié à la main pour y mettre notre fameux 127.0.0.1 comme serveur DNS.
Utile...
Si on a besoin de faire des tests de serveur DNS, il peut être utilise de vider le cache :
MacBook:~ root# rndc -p 54 flush && dscacheutil -flushcache
Ici, on a utilisé les serveurs DNS de Google. En voiçi d'autres :
OpenDNS : 208.67.222.222 & 208.67.220.220
Norton DNS : 198.153.192.1 & 198.153.194.1
OpenNIC : 92.243.8.139 (pour la France)
VivilProject DNSTest : http://80.247.230.136/dns.htm