MyDNS · 9 min read · Jan 10, 2026
Executando um Servidor DNS Baseado em MySQL: MyDNS - Página 2
2 Instalar Uma Interface Web Para MyDNS
Nos passos a seguir, assumo que você está usando Debian Sarge; o diretório raiz do documento padrão do Debian Apache é /var/www, então instalarei as interfaces web aqui. Além disso, assumo que o nome do host é ns1.example.com.
2.1 phpMyAdmin
phpMyAdmin foi instalado no início deste tutorial ( apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin), então você deve ser capaz de acessá-lo em http://ns1.example.com/phpmyadmin. Em seguida, selecione o banco de dados mydns, e você deve ver as tabelas rr e soa. Dê uma olhada aqui para uma explicação da estrutura/campos do banco de dados, etc.: http://mydns.bboy.net/doc/html/mydns_8.html#SEC8
2.2 A Interface Web Original do MyDNS
Para instalar a interface web original do MyDNS (que vem com as fontes do MyDNS que ainda devem estar no diretório /tmp), faça o seguinte:
cp /tmp/mydns-1.0.0/contrib/admin.php /var/www
Em seguida, edite /var/www/admin.php e configure as variáveis na primeira parte desse script, por exemplo, assim:
| /*************************************************************************** OPÇÕES CONFIGURÁVEIS ***************************************************************************/ /* Defina as quatro variáveis a seguir para o nome do host do seu servidor SQL, o nome de usuário e a senha usados para acessar esse servidor, e o nome do ** banco de dados onde seus dados do MyDNS residem. */ $dbhost = "localhost"; $dbuser = "mydns"; $dbpass = "mydns_password"; $dbname = "mydns"; /* Este script usa MySQL por padrão. Para usar PostgreSQL em vez disso, defina '$use_pgsql' para '1'. */ $use_pgsql = 0; /* As duas variáveis a seguir informam a este script o nome da sua tabela SOA e o nome da sua tabela RR. */ $soa_table_name = "soa"; $rr_table_name = "rr"; /* Os dois valores a seguir configuram o número de registros exibidos por página no navegador de zonas e no editor de registros de recursos, respectivamente. */ $zone_group_size = 25; $rr_group_size = 20; /* Este script pode atualizar automaticamente o número de série para uma zona sempre que um cliente modifica qualquer registro nessa zona. ** Definir '$auto_update_serial' para '1' ativará esta opção. */ $auto_update_serial = 1; /* Este script pode atualizar automaticamente os registros PTR quando você modifica, adiciona ou exclui registros A. Para habilitar essa funcionalidade, defina '$auto_update_ptr' para '1'. Se você habilitar isso, certifique-se de preencher os valores para '$default_ns' e '$default_mbox', abaixo, para que ** novos registros SOA tenham as informações corretas. */ $auto_update_ptr = 1; /* Se esta opção for diferente de zero, este script não reclamará se o TTL para um registro for definido abaixo do mínimo da zona. Note que se $ttl_min abaixo for diferente de zero, esse valor ainda será ** verificado. */ $ignore_minimum_ttl = 1; /* Os valores a seguir são usados por este script para impor valores mínimos para registros SOA e RR. O script impedirá que os clientes insiram ** valores inferiores a esses números. */ $ttl_min = 300; $refresh_min = 300; $retry_min = 300; $expire_min = 86400; /* As duas variáveis a seguir especificam o servidor de nomes padrão para novos registros SOA e a caixa de correio do administrador padrão para novos registros SOA. ** Estes serão preenchidos automaticamente sempre que uma nova zona for criada. */ $default_ns = "ns1.example.com."; $default_mbox = "admin.example.com."; /* O seguinte array especifica registros padrão para novos registros SOA. Estes são inseridos automaticamente sempre que um SOA é inserido. ** O formato de cada registro é (nome, tipo, aux, dados). */ $default_records = array( array("", "NS", 0, "ns1.example.com."), /* array("", "MX", 10, "mail.example.com.") */ ); /* Os cinco valores a seguir serão usados como valores padrão sempre que novas zonas forem criadas. */ $default_ttl = 86400; $default_refresh = 28800; $default_retry = 7200; $default_expire = 604800; $default_minimum_ttl = 86400; /* ** O restante dessas variáveis habilita alterações cosméticas. */ $fontsize = 12; /* Tamanho da fonte padrão (pixels) */ $font_color = "#663300"; /* Cor da fonte */ $page_bgcolor = "white"; /* Cor de fundo da página */ $help_bgcolor = "#FFFFCC"; /* Cor de fundo da caixa de ajuda da tela principal */ $soa_bgcolor = "#FFFF99"; /* Cor de fundo do editor SOA */ $list_bgcolor_1 = "#FFFFCC"; /* Cor de fundo dos itens da lista #1 */ $list_bgcolor_2 = "#FFFFAA"; /* Cor de fundo dos itens da lista #2 */ $query_bgcolor = "#FFFFCC"; /* Cor de fundo da entrada de consulta de pesquisa */ $query_fgcolor = "black"; /* Cor da fonte da entrada de consulta de pesquisa */ $input_bgcolor = "white"; /* Cor de fundo da caixa de entrada de texto */ $input_fgcolor = "black"; /* Cor da fonte da caixa de entrada de texto */ /** Fim das opções configuráveis *****************************************/ |
Certifique-se de preencher os detalhes corretos do banco de dados. Além disso, eu defini $auto_update_serial e $auto_update_ptr como 1 e especifiquei valores em $default_ns e $default_mbox para que os números de série sejam incrementados automaticamente em caso de alterações e os registros PTR também sejam criados automaticamente. Mas, claro, isso depende de você se desejar esse comportamento.
Agora você pode acessar a interface web em http://ns1.example.com/admin.php.
2.3 Instalar MyDNSConfig
MyDNSConfig é uma interface escrita por mim usando PHP. Eu descobri que a interface web original do MyDNS é difícil de lidar para iniciantes porque não possui descrições de campo (é fácil de gerenciar se você vem do mundo do Bind, devido ao design da interface que se assemelha aos arquivos de zona do Bind).
Você pode baixar o MyDNSConfig em http://www.mydnsconfig.org.
Agora vamos supor que você tenha baixado mydnsconfig-
cd /tmp
tar xvfz mydnsconfig-
cd mydnsconfig
cp -fr
Em seguida, você deve ajustar /var/www/lib/config.inc.php. O meu fica assim:
| |
Certifique-se de preencher os detalhes corretos do banco de dados! Se você quiser que o MyDNSConfig crie automaticamente registros DNS reversos ( registros PTR) quando você criar novos registros DNS, então defina $conf[‘auto_create_ptr’] como 1 e especifique um servidor de nomes padrão em $conf[‘default_ns’] (não se esqueça do ponto no final!) e um endereço de e-mail do administrador em $conf[‘default_mbox’] (também com um ponto no final, e o sinal @ deve ser substituído por um ponto!).
Em seguida, precisamos alterar a tabela rr e soa no banco de dados mydns e criar uma nova tabela necessária pelo MyDNSConfig:
mysql -u root -p
Digite a senha:
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, ‘’, ‘Administrador’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘en’, ‘1,2’, 1);
quit;
Agora você pode acessar o MyDNSConfig em http://ns1.example.com. O nome de usuário padrão para login é admin, a senha também é admin. Por favor, altere a senha após seu primeiro login em Sistema -> Editar usuário.
2.4 Use dig Para Testar Seus Registros
Depois de criar registros DNS usando uma das três interfaces web que descrevi aqui, você pode testar seus registros usando dig. Vamos supor que você tenha criado a zona test.com. (com um ponto no final!) com o registro A www. Quando você executar
dig @localhost www.test.com
a saída deve ser parecida com isto:
| :~# dig @localhost www.test.com ; <> DiG 9.2.4 <> @localhost www.test.com ;; opções globais: printcmd ;; Recebeu resposta: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12658 ;; flags: qr aa rd; QUERY: 1, RESPOSTA: 1, AUTORIDADE: 0, ADICIONAL: 0 ;; SEÇÃO DE PERGUNTAS: ;www.test.com. IN A ;; SEÇÃO DE RESPOSTA: www.test.com. 86400 IN A 1.2.3.4 ;; Tempo da consulta: 20 msec ;; SERVIDOR: 1.2.3.4#53(localhost) ;; QUANDO: Sex Dez 16 14:14:19 2005 ;; TAMANHO MSG recebido: 45 |
Se você ativou a criação automática de registros PTR na interface web original do MyDNS ou no MyDNSConfig, então você também pode verificar o registro DNS reverso. Se www.test.com aponta para 1.2.3.4, então
dig @localhost -x 1.2.3.4
deve mostrar algo como isto:
| ~# dig @localhost -x 1.2.3.4 ; <> DiG 9.2.4 <> @localhost -x 1.2.3.4 ;; opções globais: printcmd ;; Recebeu resposta: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46572 ;; flags: qr aa rd; QUERY: 1, RESPOSTA: 1, AUTORIDADE: 0, ADICIONAL: 0 ;; SEÇÃO DE PERGUNTAS: ;4.3.2.1.in-addr.arpa. IN PTR ;; SEÇÃO DE RESPOSTA: 4.3.2.1.in-addr.arpa. 86400 IN PTR www.test.com. ;; Tempo da consulta: 15 msec ;; SERVIDOR: 1.2.3.4#53(localhost) ;; QUANDO: Sex Dez 16 14:21:05 2005 ;; TAMANHO MSG recebido: 69 |
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.