Installazione di MyDNS e del pannello di controllo MyDNSConfig su CentOS 5.1
In questo tutorial descriverò come installare e configurare MyDNS e MyDNSConfig su CentOS 5.1. MyDNS è un server DNS che utilizza un database MySQL come backend invece di file di configurazione come, ad esempio, Bind o djbdns. Il vantaggio è che MyDNS legge semplicemente i record dal database e non deve essere riavviato/ricaricato quando i record DNS vengono modificati o le zone vengono create/modificate/eliminate. Un server dei nomi secondario può essere facilmente configurato installando una seconda istanza di MyDNS che accede allo stesso database o, per essere più ridondanti, utilizza le funzionalità di replica master/slave MySQL per replicare i dati sul server dei nomi secondario.
MyDNSConfig è un'interfaccia web per MyDNS facile da usare. MyDNSConfig può creare tutti i tipi di record DNS disponibili in MyDNS e aggiunge funzionalità come la gestione degli utenti e i privilegi di accesso.
Non garantisco che questo funzionerà per te!
1 Nota preliminare
In questo tutorial utilizzo l'hostname server1.example.com con l'indirizzo IP 192.168.0.100. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.
2 Installazione dei prerequisiti
Per prima cosa abilitiamo il repository RPMforge sul nostro sistema CentOS poiché alcuni dei pacchetti che installeremo nel corso di questo tutorial non sono disponibili nei repository CentOS 5.1 ufficiali:
rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
MyDNSConfig è un'interfaccia basata sul Web per MyDNS scritta in PHP. Ciò richiede un server web con PHP abilitato e il server di database MySQL. Se hai già installato Apache, PHP e MySQL, puoi saltare questo passaggio. Installiamo anche phpMyAdmin qui in modo da avere un'interfaccia web per il database MySQL nel caso ne avessi bisogno:
yum install httpd mysql-server php php-mysql php-mbstring phpmyadmin
Avvia MySQL:
chkconfig --levels 235 mysqld su
/etc/init.d/mysqld start
Quindi imposta le password per l'account root MySQL:
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
Ora configuriamo phpMyAdmin. Cambiamo la configurazione di Apache in modo che phpMyAdmin consenta connessioni non solo da localhost (commentando la stanza
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 |
Quindi cambiamo l'autenticazione in phpMyAdmin da cookie a http:
vi /usr/share/phpmyadmin/config.inc.php
[...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
Quindi creiamo i collegamenti di avvio del sistema per Apache e lo avviamo:
chkconfig --levels 235 httpd su
/etc/init.d/httpd start
Ora puoi indirizzare il tuo browser a http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/ e accedere con il nome utente root e la tua nuova password MySQL di root.
3 Installazione di MyDNSConfig
Accedi a MySQL e crea il database:
mysql -u root -p
CREATE DATABASE mydns;
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* TO 'mydns'@'localhost' IDENTIFICATO DA 'mydnspassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydns.* A 'mydns'@'localhost.localdomain' IDENTIFICATO DA 'mydnspassword';
FLUSH PRIVILEGES;
chiudi;
Sostituisci la parola mydnspassword nei comandi precedenti con una password a tua scelta.
Scarica 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
Installa MyDNSConfig:
mkdir /usr/share/mydnsconfig
cp -rf interface/* /usr/share/mydnsconfig/
ln -s /usr/share/mydnsconfig/web/ /var/www/html/mydnsconfig
Installa il database MySQL MyDNSConfig:
mysql -u root -p mydns < install/mydnsconfig.sql
Il comando sopra richiede una password, inserisci la password dell'utente root MySQL.
Modifica la configurazione di MyDNSConfig; assicurati di compilare le corrette impostazioni del database:
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; ?> |
Successivamente, rimuovere il programma di installazione di MyDNSConfig dalla directory /tmp:
cd /tmp
rm -rf MyDNSConfig-1.1.0/
rm -f MyDNSConfig-1.1.0.tar.gz
Installazione di MyDNS e del pannello di controllo MyDNSConfig su CentOS 5.1 - Pagina 2
4 Installazione di MyDNS
Quindi scarichiamo il pacchetto rpm mydns-mysql da http://mydns.bboy.net/download/ e lo installiamo come segue:
wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
Aprire il file di configurazione MyDNS /etc/mydns.conf, inserire i dettagli del database corretti, consentire i trasferimenti di zona impostando allow-axfr su yes, abilitare TCP (allow-tcp =yes) e specificare un risolutore ricorsivo (cioè un valido nameserver, ad esempio dal tuo ISP; ad esempio ricorsivo =213.191.92.86) in modo che MyDNS possa rispondere a query per domini per i quali non è autorevole:
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 |
Quindi, crea i collegamenti di avvio del sistema per MyDNS e avvia MyDNS:
chkconfig --levels 235 mydns su
/etc/init.d/mydns start
Infine, dobbiamo correggere i collegamenti di avvio del sistema per MyDNS. MyDNS dipende da MySQL, quindi MyDNS deve essere avviato dopo l'avvio di MySQL, altrimenti fallirà. I collegamenti di avvio predefiniti per MyDNS lo fanno iniziare prima di MySQL, il che è sbagliato, quindi risolviamo il problema come segue:
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 utilizza i collegamenti di avvio S64mysql, quindi rinominando i collegamenti di avvio di MyDNS da S52mydns a S99mydns si assicura che MyDNS venga avviato dopo MySQL.
L'installazione di base di MyDNS e MyDNSConfig è ora terminata. Per accedere all'interfaccia MyDNSConfig, apri un browser web e inserisci il seguente URL:
http://<your_ip_address>/mydnsconfig/
Sostituisci
Il nome utente e la password predefiniti di MyDNSConfig sono:
Nome utente:admin
Password:admin
Non dimenticare di modificare la password dopo l'accesso in Sistema> Utenti.
5 Utilizzo di MyDNSConfig
In questo capitolo dimostrerò come utilizzare MyDNSConfig creando una zona di esempio test.com e un record A www.test.com.
Primo accesso:
Fare clic sul pulsante Aggiungi nuova zona:
Il modulo nella scheda SOA è preimpostato con valori predefiniti. Compila test.com. (notare il punto finale!) nel campo Origine e apportare le modifiche agli altri campi, se necessario. Il campo Trasferimenti di zona può essere lasciato vuoto, il che significa che qualsiasi server può connettersi al nostro server MyDNS per avviare un trasferimento di zona; se inserisci un indirizzo IP, solo quel sistema può connettersi:
Dopo aver cliccato su Salva, troverai la tua nuova zona elencata nella pagina Zone (SOA). Fare clic su test.com. link per accedere alle proprietà della zona:
Quindi, fai clic sulla scheda Record:
Quindi fare clic sul pulsante Aggiungi nuovo record per creare un record (A/MX/CNAME/...):
Per creare il record A www.test.com, compilare www nel campo Nome, selezionare A come Tipo, digitare l'indirizzo IP di www.test.com nel campo Dati (es. 1.2.3.4) e specificare il TTL ( in secondi). Il campo Preferenza/Priorità può essere lasciato vuoto per i record A; è necessario per i record MX:
Dopo aver cliccato su Salva, troverai www.test.com nell'elenco dei record per la zona test.com:
Questo è già tutto:non sono necessari riavvii. Ora puoi verificare se MyDNS può risolvere www.test.com:
dig @localhost www.test.com
Se tutto va bene, l'output dovrebbe essere simile a questo:
[[email protected] ~]# dig @localhost www.test.com
; <<>> DiG 9.5.0a6 <<>> @localhost www.test.com
; (1 server trovato)
;; opzioni globali: printcmd
;; Hai risposta:
;; ->>HEADER<<- codice operativo: QUERY, stato: NOERROR, id: 55393
;; flag: qr a rd ra; DOMANDA: 1, RISPOSTA: 1, AUTORITÀ: 0, AGGIUNTA: 0
;; SEZIONE DOMANDA:
;www.test.com. IN A
;; SEZIONE RISPOSTA:
www.test.com. 86400 IN A 1.2.3.4
;; Tempo di query: 24 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; QUANDO: lun dic 3 23:47:14 2007
;; MSG SIZE rcvd: 46
[[email protected] ~]#
6 link
- MyDNS:http://mydns.bboy.net
- MyDNSConfig:http://www.mydnsconfig.org
- CentOS:http://www.centos.org