MyDNS Setup · 8 min read · Jan 10, 2026

Esecuzione di un server DNS basato su MySQL: MyDNS - Pagina 2

2 Installa un’interfaccia web per MyDNS

Nei seguenti passaggi presumo che tu stia usando Debian Sarge; la radice del documento Apache predefinita di Debian è /var/www quindi installerò le interfacce web qui. Inoltre presumo che il nome host sia ns1.example.com.

2.1 phpMyAdmin

phpMyAdmin è stato installato all’inizio di questo tutorial ( apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin), quindi dovresti essere in grado di accedervi all’indirizzo http://ns1.example.com/phpmyadmin. Quindi seleziona il database mydns, e dovresti vedere le tabelle rr e soa. Dai un’occhiata qui per una spiegazione della struttura/campi del database, ecc.: http://mydns.bboy.net/doc/html/mydns_8.html#SEC8

2.2 L’interfaccia web originale di MyDNS

Per installare l’interfaccia web originale di MyDNS (che viene fornita con le sorgenti di MyDNS che dovrebbero essere ancora nella directory /tmp), fai così:

cp /tmp/mydns-1.0.0/contrib/admin.php /var/www

Quindi modifica /var/www/admin.php e configura le variabili nella prima parte di quello script, ad esempio in questo modo:

| /*************************************************************************** OPZIONI CONFIGURABILI ***************************************************************************/ /* Imposta le seguenti quattro variabili sul nome host del tuo server SQL, il nome utente e la password utilizzati per accedere a quel server, e il nome del ** database in cui risiedono i tuoi dati MyDNS. */ $dbhost = "localhost"; $dbuser = "mydns"; $dbpass = "mydns_password"; $dbname = "mydns"; /* Questo script utilizza MySQL per impostazione predefinita. Per utilizzare PostgreSQL invece, imposta '$use_pgsql' su '1'. */ $use_pgsql = 0; /* Le seguenti due variabili dicono a questo script il nome della tua SOA tabella e il nome della tua tabella RR. */ $soa_table_name = "soa"; $rr_table_name = "rr"; /* I seguenti due valori configurano il numero di record mostrati per pagina nel browser delle zone e nell'editor dei record di risorse, rispettivamente. */ $zone_group_size = 25; $rr_group_size = 20; /* Questo script può aggiornare automaticamente il numero di serie per una zona ogni volta che un client modifica un record in quella zona. ** Impostare '$auto_update_serial' su '1' abiliterà questa opzione. */ $auto_update_serial = 1; /* Questo script può aggiornare automaticamente i record PTR quando modifichi, aggiungi o elimini record A. Per abilitare questa funzionalità, imposta '$auto_update_ptr' su '1'. Se abiliti questo, assicurati di compilare i valori per '$default_ns' e '$default_mbox', qui sotto, in modo che ** i nuovi record SOA abbiano le informazioni corrette. */ $auto_update_ptr = 1; /* Se questa opzione è diversa da zero, questo script non si lamenterà se il TTL per un record è impostato al di sotto del minimo della zona. Nota che se $ttl_min qui sotto è diverso da zero, quel valore sarà comunque ** controllato. */ $ignore_minimum_ttl = 1; /* I seguenti valori sono utilizzati da questo script per imporre valori minimi per i record SOA e RR. Lo script impedirà ai client di inserire ** valori inferiori a questi numeri. */ $ttl_min = 300; $refresh_min = 300; $retry_min = 300; $expire_min = 86400; /* Le seguenti due variabili specificano il nameserver predefinito per i nuovi record SOA, e la casella di posta dell'amministratore predefinita per i nuovi record SOA. ** Questi saranno compilati automaticamente ogni volta che viene creata una nuova zona. */ $default_ns = "ns1.example.com."; $default_mbox = "admin.example.com."; /* Il seguente array specifica i record predefiniti per i nuovi record SOA. Questi vengono inseriti automaticamente ogni volta che viene inserito un SOA. ** Il formato di ciascun record è (nome, tipo, aus, dati). */ $default_records = array( array("", "NS", 0, "ns1.example.com."), /* array("", "MX", 10, "mail.example.com.") */ ); /* I seguenti cinque valori saranno utilizzati come valori predefiniti ogni volta che vengono create nuove zone. */ $default_ttl = 86400; $default_refresh = 28800; $default_retry = 7200; $default_expire = 604800; $default_minimum_ttl = 86400; /* ** Il resto di queste variabili abilita modifiche cosmetiche. */ $fontsize = 12; /* Dimensione del carattere predefinita (pixel) */ $font_color = "#663300"; /* Colore del carattere */ $page_bgcolor = "white"; /* Colore di sfondo della pagina */ $help_bgcolor = "#FFFFCC"; /* Colore di sfondo della casella di aiuto principale */ $soa_bgcolor = "#FFFF99"; /* Colore di sfondo dell'editor SOA */ $list_bgcolor_1 = "#FFFFCC"; /* Colore di sfondo degli elementi della lista #1 */ $list_bgcolor_2 = "#FFFFAA"; /* Colore di sfondo degli elementi della lista #2 */ $query_bgcolor = "#FFFFCC"; /* Colore di sfondo dell'input della query di ricerca */ $query_fgcolor = "black"; /* Colore del carattere dell'input della query di ricerca */ $input_bgcolor = "white"; /* Colore di sfondo della casella di input di testo */ $input_fgcolor = "black"; /* Colore del carattere della casella di input di testo */ /** Fine delle opzioni configurabili *****************************************/ |

Fai attenzione a compilare i dettagli corretti del database. Inoltre ho impostato $auto_update_serial e $auto_update_ptr su 1 e specificato valori in $default_ns e $default_mbox in modo che i numeri di serie vengano incrementati automaticamente in caso di modifiche e i record PTR vengano creati automaticamente. Ma ovviamente, dipende da te se desideri questo comportamento.

Ora puoi accedere all’interfaccia web all’indirizzo http://ns1.example.com/admin.php.

2.3 Installa MyDNSConfig

MyDNSConfig è un’interfaccia scritta da me utilizzando PHP. Ho scoperto che l’interfaccia web originale di MyDNS è difficile da gestire per i principianti perché non ha descrizioni dei campi (è facile da gestire se provieni dal mondo di Bind però a causa del design dell’interfaccia che assomiglia ai file di zona di Bind).

Puoi scaricare MyDNSConfig da http://www.mydnsconfig.org.

Ora supponiamo che tu abbia scaricato mydnsconfig-.tar.gz in /tmp. Quindi lo installi in questo modo:

cd /tmp
tar xvfz mydnsconfig-.tar.gz
cd mydnsconfig
cp -fr
/var/www*

Quindi devi modificare /var/www/lib/config.inc.php. Il mio appare così:

| |

Assicurati di compilare i dettagli corretti del database! Se desideri che MyDNSConfig crei automaticamente record DNS inversi ( PTR records) quando crei un nuovo record DNS, allora imposta $conf[‘auto_create_ptr’] su 1 e specifica un nameserver predefinito in $conf[‘default_ns’] (non dimenticare il punto alla fine!) e un indirizzo email dell’amministratore in $conf[‘default_mbox’] (anche con un punto alla fine, e il segno @ deve essere sostituito da un punto!).

Successivamente dobbiamo modificare la tabella rr e soa nel database mydns e creare una nuova tabella necessaria da MyDNSConfig:

mysql -u root -p
Inserisci la password:

Use mydns;

ALTER TABLE rr ADD sys_userid INT NOT NULL,
ADD sys_groupid INT NOT NULL AFTER sys_userid,
ADD sys_perm_user VARCHAR( 5 ) NOT NULL AFTER sys_groupid,
ADD sys_perm_group VARCHAR( 5 ) NOT NULL AFTER sys_perm_user,
ADD sys_perm_other VARCHAR( 5 ) NOT NULL AFTER sys_perm_group;

ALTER TABLE soa ADD sys_userid INT NOT NULL,
ADD sys_groupid INT NOT NULL AFTER sys_userid,
ADD sys_perm_user VARCHAR( 5 ) NOT NULL AFTER sys_groupid,
ADD sys_perm_group VARCHAR( 5 ) NOT NULL AFTER sys_perm_user,
ADD sys_perm_other VARCHAR( 5 ) NOT NULL AFTER sys_perm_group;

CREATE TABLE sys_user (
userid int(11) NOT NULL auto_increment,
sys_userid int(11) NOT NULL default ‘0’,
sys_groupid int(11) NOT NULL default ‘0’,
sys_perm_user varchar(5) NOT NULL default ‘’,
sys_perm_group varchar(5) NOT NULL default ‘’,
sys_perm_other varchar(5) NOT NULL default ‘’,
username varchar(100) NOT NULL default ‘’,
passwort varchar(100) NOT NULL default ‘’,
modules varchar(255) NOT NULL default ‘’,
startmodule varchar(255) NOT NULL default ‘’,
app_theme varchar(100) NOT NULL default ‘default’,
typ varchar(20) NOT NULL default ‘user’,
active tinyint(4) NOT NULL default ‘1’,
name varchar(100) NOT NULL default ‘’,
vorname varchar(100) NOT NULL default ‘’,
unternehmen varchar(100) NOT NULL default ‘’,
strasse varchar(100) NOT NULL default ‘’,
ort varchar(100) NOT NULL default ‘’,
plz varchar(10) NOT NULL default ‘’,
land varchar(50) NOT NULL default ‘’,
email varchar(100) NOT NULL default ‘’,
url varchar(255) NOT NULL default ‘’,
telefon varchar(100) NOT NULL default ‘’,
fax varchar(100) NOT NULL default ‘’,
language varchar(10) NOT NULL default ‘de’,
groups varchar(255) NOT NULL default ‘’,
default_group int(11) NOT NULL default ‘0’,
PRIMARY KEY (userid)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

INSERT INTO sys_user (userid, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, username, passwort, modules, startmodule, app_theme, typ, active, name, vorname, unternehmen, strasse, ort, plz, land, email, url, telefon, fax, language, groups, default_group) VALUES (1, 1, 0, ‘riud’, ‘riud’, ‘’, ‘admin’, ‘21232f297a57a5a743894a0e4a801fc3’, ‘admin,designer,resellers,sites,dns’, ‘dns’, ‘default’, ‘admin’, 1, ‘’, ‘Administrator’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘en’, ‘1,2’, 1);

quit;

Ora puoi accedere a MyDNSConfig all’indirizzo http://ns1.example.com. Il nome utente di accesso predefinito è admin, la password è anch’essa admin. Si prega di cambiare la password dopo il primo accesso sotto Sistema -> Modifica utente.

2.4 Usa dig per testare i tuoi record

Dopo aver creato record DNS utilizzando una delle tre interfacce web che ho descritto qui, puoi testare i tuoi record utilizzando dig. Supponiamo che tu abbia creato la zona test.com. (con un punto alla fine!) con il record A www. Quando esegui

dig @localhost www.test.com

l’output dovrebbe apparire così:

| :~# dig @localhost www.test.com ; <> DiG 9.2.4 <> @localhost www.test.com ;; opzioni globali: printcmd ;; Ricevuta risposta: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12658 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; SEZIONE DOMANDA: ;www.test.com. IN A ;; SEZIONE RISPOSTA: www.test.com. 86400 IN A 1.2.3.4 ;; Tempo di query: 20 msec ;; SERVER: 1.2.3.4#53(localhost) ;; QUANDO: Ven Dic 16 14:14:19 2005 ;; DIMENSIONE MSG ricevuta: 45 |

Se hai abilitato la creazione automatica di record PTR nell’interfaccia web originale di MyDNS o in MyDNSConfig, allora puoi anche controllare il record DNS inverso. Se www.test.com punta a 1.2.3.4, allora

dig @localhost -x 1.2.3.4

dovrebbe mostrare qualcosa di simile a questo:

| ~# dig @localhost -x 1.2.3.4 ; <> DiG 9.2.4 <> @localhost -x 1.2.3.4 ;; opzioni globali: printcmd ;; Ricevuta risposta: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46572 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; SEZIONE DOMANDA: ;4.3.2.1.in-addr.arpa. IN PTR ;; SEZIONE RISPOSTA: 4.3.2.1.in-addr.arpa. 86400 IN PTR www.test.com. ;; Tempo di query: 15 msec ;; SERVER: 1.2.3.4#53(localhost) ;; QUANDO: Ven Dic 16 14:21:05 2005 ;; DIMENSIONE MSG ricevuta: 69 |

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.