Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

création de site

Serveur DNS secondaire automatisé - Directadmin

Cours / tutoriel écrit le 26-08-2010 par sky
Mettre en place un serveur DNS secondaire automatisé

Est-ce que vous avez un serveur DNS Primaire qui tourne sous Directadmin et vous voulez que tous les nouveaux domaine (fichiers de zone) soit répliqué sur un serveur secondaire de façon automatique ?

Si oui, ce guide est pour vous ! Ce guide va vous aider à mettre en place un serveur DNS secondaire (esclave ou slave en anglais) pour un serveur DNS primaire qui tourne sur un serveur Directadmin.


IMPORTANT : ce guide a uniquement du sens si votre serveur DNS secondaire ne tourne pas avec Directadmin. Seul le serveur primaire doit tourner sous Directadmin.

Note : Dans le cas ou vous avez deux serveur sous Directadmin, utiliser le système de multi-serveur proposer de base dans Directadmin. Plus d'information ici : http://help.directadmin.com/item.php_id=97


Merci de remplacer l'adresse IP ci-dessous par votre propre adresse IP statique.

Serveur Primaire = Debian Linux avec DirectAdmin
Adresse IP du serveur primaire = 192.168.0.1
Nom du serveur primaire = server1
Software requis : SSH (apt-get install ssh) et BIND9 (apt-get install bind9 dnsutils)


Serveur secondaire = Debian Linux SANS DirectAdmin
Adresse IP du serveur secondaire = 192.168.0.2
Nom du serveur secondaire = server2
Software requis : SSH (apt-get install ssh) et BIND9 (apt-get install bind9 dnsutils)


On peux maintenant commencer ...


1) Générer un ensemble de clés SSH public et privé pour permettre à l'utilisateur root de se connecter du "server1" vers le "server2".

Connectez-vous sur server1 et exécuter la liste des commandes suivantes en appuyant sur "entrer" quand une question sera posée :

server1:~# cd /root/
server1:~# ssh-keygen -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): <APPUYER SUR ENTRER POUR ACCEPTER LES VALEURS PAR DEFAUT>
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <APPUYER SUR ENTRE POUR PAS DE PASSPHRASE>
Enter same passphrase again: <APPUYER SUR ENTRE POUR PAS DE PASSPHRASE>
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
41:03:aa:dc:cc:b9:39:50:65:bc:ee:7b:36:d2:64:7a root@server1


2 Copiez maintenant la clés public du server1 vers le server2...

server1:~# scp /root/.ssh/id_dsa.pub 192.168.0.2:/root/.ssh/authorized_keys

(On vous demandera surement le mot de passe root du server2)


3) Modifier la configuration de BIND sur les deux serveur pour autoriser les transferts de zone...

Ajouter ce qui suit dans le fichier /etc/bind/named.conf.options sur le server1 - quelque-part dans les options { };

notify explicit;
also-notify { 192.168.0.2; };
allow-notify { 192.168.0.2; };
allow-transfer { 192.168.0.2; };


Ajouter ce qui suit dans le fichier /etc/bind/named.conf.options du server2 - quelque-part dans les options { };

notify explicit;
also-notify { 192.168.0.1; };
allow-notify { 192.168.0.1; };
allow-transfer { 192.168.0.1; };


4) Redémarrer le serveur BIND sur les deux serveurs...

server1:~# /etc/init.d/bind9 restart

server2:~# /etc/init.d/bind9 restart


5) Créer un "custom script" Directadmin sur le server1 qui va être exécuter après la création d'un nouveau et/ou après avoir supprimer un domaine...

server1:~# touch /usr/local/directadmin/scripts/custom/dns_create_post.sh
server1:~# touch /usr/local/directadmin/scripts/custom/dns_delete_post.sh
server1:~# chmod 700 /usr/local/directadmin/scripts/custom/dns_create_post.sh
server1:~# chmod 700 /usr/local/directadmin/scripts/custom/dns_delete_post.sh
server1:~# chown diradmin:diradmin /usr/local/directadmin/scripts/custom/dns_create_post.sh
server1:~# chown diradmin:diradmin /usr/local/directadmin/scripts/custom/dns_delete_post.sh


6) Maintenant, ajouter le code bash qui suit dans les deux fichiers (dns_create_post.sh et dns_delete_post.sh) sur le server1 :

/usr/local/directadmin/scripts/custom/dns_create_post.sh :
#!/bin/sh
/usr/bin/ssh root@192.168.0.2 '/bin/echo "zone \"'$domain'\" { type slave; file \"/var/cache/bind/'$domain'\"; masters { 192.168.0.1; }; };" >> /etc/bind/named.conf; /etc/init.d/bind9 restart'
exit 0;

/usr/local/directadmin/scripts/custom/dns_delete_post.sh :
#!/bin/sh
/usr/bin/ssh root@192.168.0.2 -- /bin/sed -e "'/^zone \"$domain\"/d'" -i /etc/bind/named.conf \&\& /bin/rm -f /var/cache/bind/$domain \&\& /etc/init.d/bind9 restart
exit 0;



Voilà, c'est terminée !
A chaque ajout ou suppression d'un domaine sur le serveur primaire tous les fichiers de zones DNS seront automatiquement transférer vers le serveur DNS secondaire.



Cette article et petit cours est une traduction de czotos écrit sur le forum de Directamdin ici : http://www.directadmin.com/forum/showthread.php_t=24888

Commentaires

clem.explisit le 06-03-2011

la solutions alternative est d'utiliser BindMaster pour bind9 qui va s'occuper de cette synchro. l'avantage est qu'il n'y à pas forcément besoin de disposer de DirectAdmin sur les serveurs.

http://www.explisit.net/wiki/doku.php/project:bindmaster

Pseudo
Email
Commentaire

Merci d'écrire le code ici :