Installazione di MyDNS-NG e MyDNSConfig 3 su Debian Lenny
In questo tutorial descriverò come installare e configurare MyDNS-NG e MyDNSConfig 3 su Debian Lenny. MyDNS-NG (basato su MyDNS originariamente scritto da Don Moore -http://mydns.bboy.net/) è 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-NG 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 di MySQL
Possiamo installare MySQL come segue:
aptitude install mysql-client mysql-server
Ti verranno poste le seguenti domande:
Nuova password per l'utente "root" di MySQL:<-- yourrootsqlpassword
Ripeti la password per l'utente "root" di MySQL:<-- yourrootsqlpassword
3 Installazione di Apache2, PHP, phpMyAdmin
MyDNSConfig necessita di un server web con supporto PHP; quindi installo Apache2. Installo anche phpMyAdmin in modo da poter accedere al database in un secondo momento tramite un'interfaccia web (sebbene sia opzionale):
aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick vlogger
Vedrai la seguente domanda:
Server Web da riconfigurare automaticamente:<-- apache2
Quindi esegui il comando seguente per abilitare i moduli Apache suexec, rewrite, ssl, actions e include:
a2enmod suexec rewrite ssl actions include
Proteggi phpMyAdmin eliminando il file /etc/phpmyadmin/htpasswd.setup...
rm -f /etc/phpmyadmin/htpasswd.setup
... e rimuovi o commenta la seguente sezione in /etc/phpmyadmin/apache.conf:
vi /etc/phpmyadmin/apache.conf
[...] # # Authorize for setup # <Files setup.php> # # For Apache 1.3 and 2.0 # <IfModule mod_auth.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # # For Apache 2.2 # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # Require valid-user # </Files> [...] |
Riavvia Apache in seguito:
/etc/init.d/apache2 restart
Ora puoi accedere a phpMyAdmin da http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/.
4 Installazione di MyDNS
Prima di installare MyDNS, è necessario installare alcuni prerequisiti:
aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS non è disponibile nei repository Debian Lenny, quindi dobbiamo costruirlo noi stessi come segue:
cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
tar xvfz mydns-1.2.8.27.tar.gz
cd mydns-1.2.8
./configure
make
make install
Quindi creiamo lo script di avvio/arresto per MyDNS:
vi /etc/init.d/mydns
#! /bin/sh # # mydns Start the MyDNS server # # Author: Philipp Kern <[email protected]>. # Based upon skeleton 1.9.4 by Miquel van Smoorenburg # <[email protected]> and Ian Murdock <[email protected]>. # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/mydns NAME=mydns DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet \ --exec $DAEMON echo "." ;; reload|force-reload) echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal HUP --quiet \ --exec $DAEMON echo "done." ;; restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 |
Quindi rendiamo eseguibile lo script e creiamo i collegamenti di avvio del sistema per esso:
chmod +x /etc/init.d/mydns
update-rc.d mydns defaults
Installazione di MyDNS-NG e MyDNSConfig 3 su Debian Lenny - Pagina 2
5 Installazione di MyDNSConfig 3
Possiamo installare MyDNSConfig 3 come segue:
cd /tmp
wget http://downloads.sourceforge.net/mydnsconfig/MyDNSConfig-3.0.1.tar.gz?use_mirror=
tar xvfz MyDNSConfig-3.0.1.tar.gz
cd mydnsconfig/install/
php -q install.php
Questo avvierà il programma di installazione di MyDNSConfig 3:
server1:/tmp/mydnsconfig/install# php -q install.php
----------------------- -------------------------------------------------- -------
__ __ _____ _ _ _____ _____ __ _
| \/ | | __ \| \ | |/ ____|/ ____| / _(_)
| \ / |_ _| | | | \| | (___ | | ___ _ __ | |_ _ __ _
|| |\/| | | | | | | | . ` |\___ \| | / _ \| '_ \| _| |/ _ ` |
| | | | |_| | |__| | |\ |____) | |___| (_) | | | | | | | (_| |
|_| |_|\__, |_____/|_| \_|_____/ \_____\___/|_| |_|_| |_|\__, |
>> Configurazione iniziale
Sistema operativo: Debian Lenny/Sid o compatibile
Di seguito saranno qualche domande per configurazione primaria quindi fai attenzione.
I valori predefiniti sono tra [parentesi] e possono essere accettati con
Tocca "chiudi" (senza virgolette) per interrompere l'installatore.
Seleziona lingua (en,de) [en]: <-- ENTER
Modalità installazione (standard,esperto) [standard]: <-- ENTER
Nome host completo qualificato (FQDN) del server, es server1.domain.tld [server1.example.com]: <-- ENTER
Nome host del server MySQL [localhost]: <-- ENTER
nome utente root MySQL [root]: <-- ENTER
MySQL roo t password []: <-- yourrootsqlpassword
database MySQL per creare [dbmydnsconfig]: <-- ENTER
charset MySQL [utf8]: <-- ENTER
Configurazione MyDNS
Configurazione Apache
Configurazione Firewall
Installazione MyDNSConfig
MyDNSConfig Port [8080]: <-- ENTER
Installazione Crontab
no crontab per root
Riavvio servizi ...
Riavvio server web: apache2 ... in attesa .
Installazione completata.
server1:/tmp/mydnsconfig/install#
Il programma di installazione configura automaticamente tutti i servizi sottostanti, quindi non è necessaria alcuna configurazione manuale.
Successivamente puoi accedere a MyDNSConfig 3 in http://server1.example.com:8080/ o http://192.168.0.100:8080/. Accedi con il nome utente admin e la password admin (dovresti cambiare la password predefinita dopo il primo accesso):
6 Utilizzo di MyDNSConfig 3
La scheda DNS è la parte più importante di MyDNSConfig perché è lì che puoi creare zone e record, quindi mi concentrerò su quella scheda.
Per creare una nuova zona, fai clic sul pulsante Aggiungi nuova zona DNS (SOA):
Ora puoi inserire i dettagli della zona, ad es. il nome di dominio, il nameserver principale e l'indirizzo email dell'amministratore di zona (si noti che è necessario sostituire il segno @ con un punto!); questi tre dettagli devono finire con un punto! Puoi lasciare gli altri dettagli così come sono. Ora puoi salvare la zona o andare direttamente alla scheda Record (questo salverà automaticamente i dettagli della zona):
Nella scheda dei record, ora puoi creare tutti i tipi di record DNS (A, CNAME, MX, NS, TXT, ecc.) - basta fare clic sul pulsante appropriato:
Ad esempio, ecco il modulo per creare record NS (tieni presente che se scrivi nomi host completi, devono terminare con un punto!):
Ecco la panoramica:come vedi, ho creato altri record:
7 Aggiornamento di MyDNSConfig 3
Ogni volta che è disponibile una versione più recente di MyDNSConfig 3, puoi aggiornare l'installazione di MyDNSConfig 3 come segue:
mydnsconfig_update.sh
Questo farà apparire la procedura guidata di aggiornamento. NOTA BENE:è possibile eseguire l'aggiornamento all'ultima versione stabile e alla versione svn. Si consiglia vivamente di eseguire l'aggiornamento all'ultima versione stabile poiché la versione svn viene utilizzata per lo sviluppo e potrebbe contenere bug. SEI AVVISATO!!!
8 Aggiornamento da MyDNSConfig 1.x a MyDNSConfig 3.x
Non esiste un percorso di aggiornamento diretto da MyDNSConfig 1.x a MyDNSConfig 3.x, tuttavia è facile importare i record DNS da MyDNSConfig 1.x in MyDNSConfig 3.x.
In questo capitolo presumo che il tuo vecchio MyDNSConfig 1.x utilizzi la tabella del database mydns e che la tua nuova installazione di MyDNSConfig 3 utilizzi il database dbmydnsconfig.
Per prima cosa installa MyDNSConfig 3 come segue:
cd /tmp
wget http://downloads.sourceforge.net/mydnsconfig/MyDNSConfig-3.0.1.tar.gz?use_mirror=
tar xvfz MyDNSConfig-3.0.1.tar.gz
cd mydnsconfig/install/
php -q install.php
Segui la procedura guidata di installazione. Al termine dell'installazione (e PRIMA di creare qualsiasi record nell'interfaccia web di MyDNSConfig 3!!!), apri phpMyAdmin o una shell MySQL ed esegui le seguenti query MySQL (come utente root di MySQL) per importare i record DNS dal tuo vecchio Installazione di MyDNSConfig 1.x in MyDNSConfig 3 (assicurati di utilizzare i nomi di database corretti - devi sostituire `mydns` e `dbmydnsconfig` se i nomi di database differiscono!):
ALTER TABLE `mydns`.`rr` ADD `server_id` int(11) NOT NULL default '1',
ADD `active` enum('N','Y') NOT NULL default 'Y',
ADD `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
ADD `serial` int(10) unsigned default NULL;
ALTER TABLE `mydns`.`rr` MODIFY `sys_userid` int(11) unsigned NOT NULL DOPO `id`,
MODIFY `sys_groupid` int(11) unsigned NOT NULL DOPO `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NOT NULL DOPO `sys_groupid`,
MODIFICA `sys_perm_group` varchar(5) NOT NULL AFTER `sys_perm_user`,
MODIFICA `sys_perm_other` varchar(5) NOT NULL DOPO `sys_perm_group `,
MODIFICA `server_id` int(11) NOT NULL default '1' DOPO `sys_perm_other`;
INSERISCI IN `dbmydnsconfig`.`dns_rr`
SELECT *
DA `mydns`.`rr`;
AGGIORNAMENTO `dbmydnsconfig`.`dns_rr` SET `sys_userid` =1,
`sys_groupid` =0,
`sys_perm_user` ='riud',
`sys_perm_group` ='riud',
`sys_perm_other` ='',
`server_id` =1;
ALTER TABLE `mydns`.`soa` ADD `server_id` int(11) NOT NULL default '1';
ALTER TABLE `mydns`.`soa` MODIFY `sys_userid` int(11) unsigned NOT NULL DOPO `id`,
MODIFY `sys_groupid` int(11) unsigned NOT NULL DOPO `sys_userid`,
MODIFY `sys_perm_user` varchar(5) NOT NULL DOPO `sys_groupid`,
MODIFICA `sys_perm_group` varchar(5) NOT NULL AFTER `sys_perm_user`,
MODIFICA `sys_perm_other` varchar(5) NOT NULL DOPO `sys_perm_group `,
MODIFICA `server_id` int(11) NOT NULL default '1' DOPO `sys_perm_other`;
INSERISCI IN `dbmydnsconfig`.`dns_soa`
SELECT *
DA `mydns`.`soa`;
AGGIORNAMENTO `dbmydnsconfig`.`dns_soa` SET `sys_userid` =1,
`sys_groupid` =0,
`sys_perm_user` ='riud',
`sys_perm_group` ='riud',
`sys_perm_other` ='',
`server_id` =1;
Successivamente, puoi accedere a MyDNSConfig 3 sulla porta 8080 (ad es. http://server1.example.com:8080 o http://192.168.0.100:8080); l'accesso predefinito è username admin e password admin.
Tieni presente che queste query MySQL fanno in modo che tutte le zone siano di proprietà dell'amministratore. Se hai zone che dovrebbero essere di proprietà di qualcun altro, crea un client per ogni utente in MyDNSConfig 3 e vai alla scheda DNS e seleziona il client corretto per le zone.
9 link
- MyDNS-NG:http://www.mydns.pl/
- MyDNSConfig:http://www.mydnsconfig.org/
- Debian:http://www.debian.org/