MyDNS avec MyDNSConfig Control Panel et DNSMasq sur Ubuntu 6.10
Dans ce tutoriel, je vais décrire comment installer et configurer MyDNS et MyDNSConfig. 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.
Cette configuration utilise Ubuntu 6.10, mais elle devrait également fonctionner avec Debain Etch.
Installation des prérequis
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.
Installation du serveur Web MySQL et Apache :
apt-get install libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl mysql-client mysql-client-5.0 mysql-server mysql-common apache2 phpmyadmin libapache2-mod-php5
Définissez le mot de passe root MySQL :
mysqladmin -u root password yourrootsqlpassword
Remplacez yourrootsqlpassword par un mot de passe de votre choix.
Installation de MyDNSConfig
J'utiliserai le package MyDNS du référentiel de l'univers Ubuntu. Avant de passer aux étapes suivantes, assurez-vous que le référentiel d'univers est activé dans /etc/apt/sources.list.
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/mydnsconfig
Installez la base de données SQL 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 :
vi /usr/share/mydnsconfig/lib/config.inc.php
Le fichier devrait ressembler à ceci :
<?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
Installez maintenant le package MyDNS d'Ubuntu. Comme nous avons déjà créé une base de données nommée mydns qui contient toutes les tables nécessaires pour MyDNS, nous pouvons choisir de ne pas créer la base de données dans la configuration suivante.
apt-get install mydns-mysql
-> localhost
-> mydns
-> no
-> mydns
-> mydnspassword
Modifiez le fichier de configuration MyDNS pour que MyDNS écoute également sur TCP et autorise les transferts de zone :
vi /etc/mydns.conf
allow-tcp = yes allow-axfr = yes
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.
Installer DNSMasq
MyDNS ne contient pas de résolveur DNS capable de résoudre les enregistrements DNS pour lesquels MyDNS n'est pas autorisé. Dans l'étape suivante, je vais installer et configurer le résolveur DNS et mettre en cache DNSMasq pour agir en tant que résolveur DNS local et configurer MyDNS pour utiliser DNSMasq pour résoudre les domaines externes. Si vous ne voulez pas que votre serveur résolve les domaines externes, vous pouvez ignorer cette partie.
Créez un résolveur DNS sur l'IP 127.0.0.1 :
apt-get install dnsmasq
Cela installe le package dnsmasq Ubuntu. Nous devrons maintenant modifier les fichiers de configuration DNSMasq et MyDNS pour nous assurer que les deux paquets n'écouteront pas sur le même port sur toutes les adresses IP.
vi /etc/dnsmasq.conf
listen-address=127.0.0.1 no-dhcp-interface= bind-interfaces
Modifiez maintenant le fichier mydns.conf pour configurer MyDNS sur pas écouter sur 127.0.0.1 :
vi /etc/mydns.conf
no-listen = 127.0.0.1 recursive = 127.0.0.1
Modifiez ensuite /etc/resolv.conf :
vi /etc/resolv.conf
et ajoutez la ligne suivante en première ligne afin que le cache DNS DNSMasq soit également utilisé pour toutes les requêtes DNS locales :
nameserver 127.0.0.1
Liens
- Tutoriel MyDNSConfig 1.0 par Falko Timme
- Page d'accueil MyDNS
- Page d'accueil MyDNSConfig
- Page d'accueil DNSMasq