Installation de MyDNS et du panneau de configuration MyDNSConfig sur CentOS 5.1
Dans ce tutoriel, je vais décrire comment installer et configurer MyDNS et MyDNSConfig sur CentOS 5.1. MyDNS est un serveur DNS qui utilise une base de données MySQL comme backend au lieu de fichiers de configuration comme, par exemple, Bind ou djbdns. L'avantage est que MyDNS lit simplement les enregistrements de la base de données, et il n'a pas besoin d'être redémarré/rechargé lorsque les enregistrements DNS changent ou que des zones sont créées/modifiées/supprimées. Un serveur de noms secondaire peut être facilement configuré en installant une deuxième instance de MyDNS qui accède à la même base de données ou, pour être plus redondant, utilise les fonctionnalités de réplication maître/esclave de MySQL pour répliquer les données sur le serveur de noms secondaire.
MyDNSConfig est une interface Web facile à utiliser pour MyDNS. MyDNSConfig peut créer tous les types d'enregistrements DNS disponibles dans MyDNS et ajoute des fonctionnalités telles que la gestion des utilisateurs et les privilèges d'accès.
Je n'émets aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.0.100. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant.
2 Installation des prérequis
Nous activons d'abord le référentiel RPMforge sur notre système CentOS car certains des packages que nous allons installer au cours de ce didacticiel ne sont pas disponibles dans les référentiels CentOS 5.1 officiels :
rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
MyDNSConfig est une interface Web pour MyDNS écrite en PHP. Cela nécessite un serveur Web avec PHP activé et le serveur de base de données MySQL. Si vous avez déjà installé Apache, PHP et MySQL, vous pouvez ignorer cette étape. Nous installons également phpMyAdmin ici afin que vous disposiez d'une interface Web vers la base de données MySQL au cas où vous en auriez besoin :
yum install httpd mysql-server php php-mysql php-mbstring phpmyadmin
Démarrer MySQL :
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
Définissez ensuite des mots de passe pour le compte root MySQL :
mysqladmin -u root password votrerootsqlpassword
mysqladmin -h server1.example.com -u root password votrerootsqlpassword
Maintenant, nous configurons phpMyAdmin. Nous modifions la configuration d'Apache afin que phpMyAdmin autorise les connexions non seulement à partir de l'hôte local (en commentant la strophe
vi /etc/httpd/conf.d/phpmyadmin.conf
# # Web application to manage MySQL # #<Directory "/usr/share/phpmyadmin"> # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 #</Directory> Alias /phpmyadmin /usr/share/phpmyadmin Alias /phpMyAdmin /usr/share/phpmyadmin Alias /mysqladmin /usr/share/phpmyadmin |
Ensuite, nous changeons l'authentification dans phpMyAdmin de cookie à http :
vi /usr/share/phpmyadmin/config.inc.php
[...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
Ensuite, nous créons les liens de démarrage du système pour Apache et le démarrons :
chkconfig --levels 235 httpd sur
/etc/init.d/httpd start
Vous pouvez maintenant diriger votre navigateur vers http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ et vous connecter avec le nom d'utilisateur root et votre nouveau mot de passe root MySQL.
3 Installation de MyDNSConfig
Connectez-vous à MySQL et créez la base de données :
mysql -u root -p
CREATE DATABASE mydns ;
ACCORDER SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFIED BY 'mydnspassword' ;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost.localdomain' IDENTIFIED BY 'mydnspassword' ;
FLUSH PRIVILEGES ;
quitter ;
Remplacez le mot mydnspassword dans les commandes ci-dessus par un mot de passe de votre choix.
Télécharger MyDNSConfig :
cd /tmp
wget http://mesh.dl.sourceforge.net/sourceforge/mydnsconfig/MyDNSConfig-1.1.0.tar.gz
tar xvfz MyDNSConfig-1.1.0.tar.gz
cd MyDNSConfig-1.1.0
Installez MyDNSConfig :
mkdir /usr/share/mydnsconfig
cp -rf interface/* /usr/share/mydnsconfig/
ln -s /usr/share/mydnsconfig/web/ /var/www/html/mydnsconfig
Installez la base de données MySQL MyDNSConfig :
mysql -u root -p mydns < install/mydnsconfig.sql
La commande ci-dessus demande un mot de passe, veuillez entrer le mot de passe de l'utilisateur root MySQL.
Modifiez la configuration de MyDNSConfig ; assurez-vous de remplir les paramètres de base de données corrects :
vi /usr/share/mydnsconfig/lib/config.inc.php
<?php /* Copyright (c) 2005, Till Brehm, Falko Timme, projektfarm Gmbh All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of ISPConfig nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ini_set('register_globals',0); $conf["app_title"] = "MyDNSConfig"; $conf["app_version"] = "1.1.0"; $conf["rootpath"] = "/usr/share/mydnsconfig"; $conf["fs_div"] = "/"; // File system divider, \\ on windows and / on linux and unix $conf["classpath"] = $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes"; $conf["temppath"] = $conf["rootpath"].$conf["fs_div"]."temp"; /* Database Settings */ $conf["db_type"] = 'mysql'; $conf["db_host"] = 'localhost'; $conf["db_database"] = 'mydns'; $conf["db_user"] = 'mydns'; $conf["db_password"] = 'mydnspassword'; /* External programs */ $conf["programs"]["wput"] = $conf["rootpath"]."/tools/wput/wput"; /* Themes */ $conf["theme"] = 'grey'; $conf["html_content_encoding"] = 'text/html; charset=iso-8859-1'; $conf["logo"] = 'themes/default/images/mydnsconfig_logo.gif'; /* Default Language */ $conf["language"] = 'en'; /* Auto Load Modules */ $conf["start_db"] = true; $conf["start_session"] = true; /* DNS Settings */ $conf["auto_create_ptr"] = 1; // Automatically create PTR records? $conf["default_ns"] = 'ns1.example.com.'; // must be set if $conf['auto_create_ptr'] is 1. Don't forget the trailing dot! $conf["default_mbox"] = 'admin.example.com.'; // Admin email address. Must be set if $conf['auto_create_ptr'] is 1. Replace "@" with ".". Don't forget the trailing dot! $conf["default_ttl"] = 86400; $conf["default_refresh"] = 28800; $conf["default_retry"] = 7200; $conf["default_expire"] = 604800; $conf["default_minimum_ttl"] = 86400; ?> |
Ensuite, supprimez le programme d'installation MyDNSConfig du répertoire /tmp :
cd /tmp
rm -rf MaConfigDNS-1.1.0/
rm -f MaConfigDNS-1.1.0.tar.gz
Installation de MyDNS et du panneau de configuration MyDNSConfig sur CentOS 5.1 - Page 2
4 Installer MyDNS
Ensuite, nous téléchargeons le package mydns-mysql rpm depuis http://mydns.bboy.net/download/ et l'installons comme suit :
wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
Ouvrez le fichier de configuration MyDNS /etc/mydns.conf, remplissez les détails corrects de la base de données, autorisez les transferts de zone en définissant allow-axfr sur yes, activez TCP (allow-tcp =yes) et spécifiez un résolveur récursif (c'est-à-dire un résolveur valide serveur de noms, par exemple de votre FAI ; par exemple récursif =213.191.92.86) afin que MyDNS puisse répondre aux requêtes pour les domaines pour lesquels il n'est pas autorisé :
vi /etc/mydns.conf
## ## /etc/mydns.conf ## Wed Jan 18 17:18:48 2006 ## For more information, see mydns.conf(5). ## # DATABASE INFORMATION db-host = localhost # SQL server hostname db-user = mydns # SQL server username db-password = mydnspassword # SQL server password database = mydns # MyDNS database name # GENERAL OPTIONS user = nobody # Run with the permissions of this user group = nobody # Run with the permissions of this group listen = * # Listen on these addresses ('*' for all) no-listen = # Do not listen on these addresses # CACHE OPTIONS zone-cache-size = 1024 # Maximum number of elements stored in the zone cache zone-cache-expire = 60 # Number of seconds after which cached zones expires reply-cache-size = 1024 # Maximum number of elements stored in the reply cache reply-cache-expire = 30 # Number of seconds after which cached replies expire # ESOTERICA log = LOG_DAEMON # Facility to use for program output (LOG_*/stdout/stderr) pidfile = /var/run/mydns.pid # Path to PID file timeout = 120 # Number of seconds after which queries time out multicpu = 1 # Number of CPUs installed on your system recursive = 213.191.92.86 # Location of recursive resolver allow-axfr = yes # Should AXFR be enabled? allow-tcp = yes # Should TCP be enabled? allow-update = no # Should DNS UPDATE be enabled? ignore-minimum = no # Ignore minimum TTL for zone? soa-table = soa # Name of table containing SOA records rr-table = rr # Name of table containing RR data soa-where = # Extra WHERE clause for SOA queries rr-where = # Extra WHERE clause for RR queries |
Ensuite, créez les liens de démarrage du système pour MyDNS et démarrez MyDNS :
chkconfig --levels 235 mydns on
/etc/init.d/mydns start
Enfin, nous devons corriger les liens de démarrage du système pour MyDNS. MyDNS dépend de MySQL, donc MyDNS doit démarrer après le démarrage de MySQL, sinon il échouera. Les liens de démarrage par défaut pour MyDNS le font démarrer avant MySQL, ce qui est faux, nous corrigeons donc cela comme suit :
cd /etc/rc.d/rc3.d
mv S52mydns S99mydns
cd /etc/rc.d/rc4.d
mv S52mydns S99mydns
cd /etc/rc. d/rc5.d
mv S52mydns S99mydns
MySQL utilise les liens de démarrage S64mysql, donc renommer les liens de démarrage MyDNS de S52mydns en S99mydns garantit que MyDNS démarre après MySQL.
L'installation de base de MyDNS et MyDNSConfig est maintenant terminée. Pour vous connecter à l'interface MyDNSConfig, ouvrez un navigateur Web et saisissez l'URL suivante :
http://<your_ip_address>/mydnsconfig/
Remplacez
Le nom d'utilisateur et le mot de passe par défaut de MyDNSConfig sont :
Nom d'utilisateur :admin
Mot de passe :admin
N'oubliez pas de changer le mot de passe après la connexion sous Système> Utilisateurs.
5 Utilisation de MyDNSConfig
Dans ce chapitre, je vais montrer comment utiliser MyDNSConfig en créant un exemple de zone test.com et un enregistrement A www.test.com.
Première connexion :
Cliquez sur le bouton Ajouter une nouvelle zone :
Le formulaire de l'onglet SOA est prédéfini avec des valeurs par défaut. Remplissez test.com. (veuillez noter le dernier point !) dans le champ Origine et apportez des modifications aux autres champs, si nécessaire. Le champ Transferts de zone peut être laissé vide, ce qui signifie que n'importe quel serveur peut se connecter à notre serveur MyDNS pour initier un transfert de zone; si vous renseignez une adresse IP, seul ce système pourra se connecter :
Après avoir cliqué sur Enregistrer, vous trouverez votre nouvelle zone répertoriée sur la page Zones (SOA). Cliquez sur test.com. lien pour accéder aux propriétés de la zone :
Cliquez ensuite sur l'onglet Enregistrements :
Cliquez ensuite sur le bouton Ajouter un nouvel enregistrement pour créer un enregistrement (A/MX/CNAME/...) :
Pour créer l'enregistrement A www.test.com, remplissez www dans le champ Nom, sélectionnez A comme Type, saisissez l'adresse IP de www.test.com dans le champ Données (par exemple 1.2.3.4) et spécifiez le TTL ( en secondes). Le champ Préférence/Priorité peut être laissé vide pour les enregistrements A; il est nécessaire pour les enregistrements MX :
Après avoir cliqué sur Enregistrer, vous trouverez www.test.com dans la liste des enregistrements de la zone test.com :
C'est déjà fait - aucun redémarrage n'est nécessaire. Vous pouvez maintenant tester si MyDNS peut résoudre www.test.com :
dig @localhost www.test.com
Si tout se passe bien, le résultat devrait ressembler à ceci :
[[email protected] ~]# dig @localhost www.test.com
; <<>> DiG 9.5.0a6 <<>> @localhost www.test.com
; (1 serveur trouvé)
;; options globales : printcmd
; ; J'ai réponse :
;; ->>HEADER<<- opcode : QUERY, statut : NOERROR, id : 55393
; ; drapeaux : qr aa rd ra ; REQUÊTE : 1, RÉPONSE : 1, AUTORITÉ : 0, SUPPLÉMENTAIRE : 0
;; SECTION DES QUESTIONS :
;www.test.com. DANS A
;; SECTION DE RÉPONSE :
www.test.com. 86400 IN A 1.2.3.4
;; Temps de requête : 24 ms
; ; SERVEUR : 127.0.0.1#53(127.0.0.1)
; ; QUAND : Lun 3 décembre 23:47:14 2007
[[email protected] ~]#
6 liens
- MonDNS :http://mydns.bboy.net
- MyDNSConfig :http://www.mydnsconfig.org
- CentOS :http://www.centos.org