MaraDNS est un petit serveur de noms de domaine gratuit et léger. Il s'agit d'un serveur DNS open source alternatif, qui agit comme un serveur de noms de mise en cache, récursif ou faisant autorité. Il est remarquablement facile à configurer et disponible pour les plateformes Linux et Windows. Il peut être téléchargé à partir d'ici. Vous pouvez en savoir plus sur le DNS, le DNS récursif, le DNS faisant autorité ici.
Voici quelques caractéristiques intéressantes de MarDNS :
- Facile à installer
- Faible utilisation de la mémoire (utilise environ 5 Mo de RAM)
- Peut agir en tant que serveur de noms faisant autorité et serveur de noms récursif.
- A ne pas manquer, la documentation sur le site MaraDNS est très simple à comprendre.
Commençons maintenant avec MaraDNS sur CentOS 7. Les étapes ci-dessous vous guideront dans l'installation et la configuration de MaraDNS :
Installer MaraDNS
Pour l'instant, aucun RPM de MaraDNS pour CentOS 7 n'est disponible, nous allons donc l'installer et le compiler à partir de la source.
Installer gcc :
sudo yum install gcc
Téléchargez la dernière archive source à partir d'ici. Vous pouvez le faire comme :
wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2
Extrayez le contenu de l'archive :
tar -xjf maradns-2.0.11.tar.bz2
Passez au répertoire MaraDNS extrait, compilez et installez les programmes :
cd maradns-2.0.11
sudo make
sudo make install
MaraDNS est maintenant installé. Le service MaraDNS est installé dans /etc/init.d/maradns. Vous pouvez simplement démarrer le service en :
sudo /etc/init.d/maradns start
Pour démarrer le démon récursif, exécutez :
sudo /etc/init.d/maradns.deadwood start
Par défaut, le serveur de noms faisant autorité écoute sur le port 127.0.0.1 et le serveur récursif sur le port 127.0.0.2.
Assurons-nous de démarrer MaraDNS au démarrage :
chkconfig maradns on
Le script d'initialisation du serveur DNS récursif doit être rendu compatible avec chkconfig avant de pouvoir l'exécuter au démarrage. Ajoutez le contenu ci-dessous en haut du fichier /etc/init.d/maradns.deadwood :
# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true
Configurez-le pour qu'il s'exécute au démarrage :
chkconfig maradns.deadwood on
Configuration de MaraDNS en tant que serveur de noms faisant autorité
Les serveurs DNS faisant autorité "connaissent" le mappage de l'URL à l'IP pour un domaine donné. Ils sont la source des informations que les serveurs DNS récursifs envoient aux clients web comme les navigateurs (Chrome, Firefox). Vous pouvez configurer MaraDNS en tant que serveur de noms faisant autorité comme :
Modifiez le fichier de configuration de MaraDNS, c'est-à-dire /etc/mararc :
ipv4_bind_addresses = "127.0.0.1" chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"
La première ligne indique à MaraDNS d'écouter sur IP-127.0.0.1. Vous pouvez y ajouter plus d'adresses IP, séparées par une virgule. Par exemple - 127.0.0.1, x.x.x.x
La deuxième ligne chroot_dir est de mentionner le répertoire où tous les fichiers de zone seront conservés.
La troisième ligne initialise le hachage csv2 avec la commande csv2 ={}.
La quatrième ligne mentionne le fichier de zone nommé db.example.net pour le nom de domaine example.net.
Voici le fichier de zone nommé db.example.net pour le nom de domaine example.net qui est explicite :
example.net. +14400 soa ns1.example.net. [email protected] 2012010117 14400 3600 604800 14400 ~ example.net. +14400 ns ns1.example.net. ~ example.net. +14400 ns ns2.example.net. ~ ns1.example.net. +14400 a 127.0.0.1 ~ ns2.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 a 127.0.0.1 ~ www.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 mx 10 mail.example.net. ~ mail.example.net. +14400 a 127.0.0.1 ~
Vous commencez par la ligne Start Of Authority (SOA). Vous spécifiez ensuite les serveurs de noms faisant autorité et les autres enregistrements. Un enregistrement se compose du nom de domaine, du TTL (Time to live), du type d'enregistrement et de la valeur de l'enregistrement.
Deux choses à noter sont que tous les noms de domaine se terminent par un point, c'est-à-dire qu'ils doivent être des noms de domaine complets et tous les enregistrements se terminent par un caractère tilde (~). Pour en savoir plus, consultez la documentation sur le format des fichiers de zone.
Pour être plus simple, faisons juste pointer example.net vers 127.0.0.1. Voici comment procéder :
example.net. 127.0.0.1 ~
Redémarrez le service en tant que :
sudo /etc/init.d/maradns restart
Configuration de MaraDNS en tant que serveur de noms récursif
Lorsque votre navigateur Web envoie une requête DNS - en supposant que le navigateur n'a pas déjà le mappage stocké dans son cache - il est envoyé à un serveur DNS récursif. Il est également appelé redirection DNS. Il écoute par défaut sur le port 127.0.0.2 et vous pouvez y ajouter plus d'adresses IP, séparées par une virgule. Par exemple - 127.0.0.2, x.x.x.x. Vous pouvez configurer MaraDNS en tant que serveur de noms récursif en ajoutant les lignes ci-dessous au fichier /etc/dwood3rc :
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers
Redémarrez le service en tant que :
sudo /etc/init.d/maradns.deadwood restart
Vous avez terminé la configuration du serveur MaraDNS ! :)
Astuce- Si vous souhaitez que votre serveur MaraDNS réponde aux requêtes DNS externes, vous devez :
Ajoutez l'adresse IP publique de votre machine aux deux fichiers de configuration (/etc/mararc &/etc/dwood3rc) et modifiez-les comme :
/etc/mararc :
ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.
/etc/dwood3rc :
bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.
recursive_acl ="0.0.0.0/0" #Pour autoriser les connexions depuis n'importe où.
Vous pouvez obtenir ces exemples de fichiers à partir d'ici. N'oubliez pas de redémarrer les services une fois de plus.
C'est tout !