DNS Setup · 5 min read · Oct 03, 2025
[Debian Sarge] Instalando um Sistema DNS Master/Slave Bind9
[Debian Sarge] Instalando um Sistema DNS Master/Slave Bind9
Versão: 1.0 - 23 de agosto de 2006
Bem-vindo
Neste tutorial, instalaremos 2 servidores DNS bind, um como o servidor master e o outro como o servidor slave. Por razões de segurança, faremos o chroot do bind9 em sua própria jaula.
Usar dois servidores para um domínio é uma configuração comumente utilizada e, para hospedar seu próprio domínio, você precisa ter pelo menos 2 servidores de domínio. Se um falhar, o outro pode continuar a atender seu domínio.
Nossa configuração usará o Debian Sarge 3.1 (estável) como base. Uma instalação simples, limpa e atualizada será suficiente, pois instalaremos os pacotes necessários com este tutorial.
Neste tutorial, usarei o domínio fictício “linux.lan”. Os servidores de nomes usarão 192.168.254.1 e 192.168.254.2 como seus IPs.
Algumas palavras finais antes de começarmos: eu li o tutorial do Joe (também neste site) e mais alguns tutoriais, mas nenhum deles funcionou sem algumas modificações. Portanto, fiz meu próprio tutorial. E ele DEVE funcionar de imediato :)
Instalando Software
Primeiro, você precisará de uma instalação limpa do Debian Sarge. Certifique-se de que está atualizado!
apt-get update; apt-get upgradeTambém precisamos de algumas ferramentas de construção do Debian, pois precisamos baixar pacotes fonte:
apt-get install devscriptsEm seguida, instalaremos o software necessário para o Bind. Para usar criptografia na transferência do arquivo de zona entre o master e o slave, precisamos de uma versão mais atualizada do Bind9 (versão >=9.3) do que a encontrada no repositório do Sarge. Usaremos a fonte do ramo -testing. Portanto, certifique-se de ter uma linha como esta em seu
/etc/apt/sources.list
:
deb-src http://---seu.mirrored.debian---/debian testing main contrib non-freeO Bind9 do testing depende do lsb-base do testing. Vamos pegá-lo:
(Explicação da sintaxe: o -y diz ao apt para responder sim a todas as perguntas, build-dep instala todos os pacotes necessários para -testing_packageX- do repositório do sarge e com -b a fonte é construída imediatamente.)
cd ~/a/dir/for/lsb-base/
apt-get -y build-dep lsb-base
apt-get source lsb-base -b
dpkg-i lsb-base*.deb
Em seguida, é a vez do Bind9:
cd ~/a/dir/for/bind9
apt-get -y build-dep bind9
apt-get source bind9 -b
dpkg -i *.deb
Agora todo o nosso software está instalado e pronto para ser configurado.
Configurando o Master
Primeiro, precisamos parar o bind9:
/etc/init.d/bind9 stopPara fazer o chroot do bind, precisamos definir uma opção em
/etc/default/bind9
:
De:
OPTIONS="-u bind"Para:
OPTIONS="-u bind -t /var/lib/named"Agora ele será executado como o usuário ‘bind’ chrooted em ‘/var/lib/named’.
Em seguida, editamos a linha de forwarders em
/etc/bind/named.conf.options
para corresponder ao DNS do nosso ISP:
forwarders { 194.109.6.66; };Esses passos são necessários para a jaula chroot:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
mv /etc/bind /var/lib/named/etc
ln -s /var/lib/named/etc/bind /etc/bind
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/
chown -R bind:bind /var/lib/named/var/
chown -R bind:bind /var/lib/named/etc/bind
O Bind agora tem seu próprio diretório com espaço para arquivos .pid e arquivos de configuração. Para manter as coisas claras, fizemos um symlink de volta para /etc/.
Agora edite /etc/init.d/sysklogd para permitir o registro da atividade do bind:
De:
SYSLOGD=""Para:
SYSLOGD="-a /var/lib/named/dev/log"O passo final é adicionar o IP deste servidor DNS recém-instalado (o localhost) ao seu
/etc/resolv.conf
para usá-lo: echo “search linux.lan” > /etc/resolv.conf
echo “nameserver 127.0.0.1” >> /etc/resolv.conf
Agora reinicie o sysklogd e o bind9:
/etc/init.d/sysklogd restart
/etc/init.d/bind9 start
E teste !
ping www.google.comSe você receber uma resposta, então seu servidor DNS master está funcionando e pronto para uso. Agora preencheremos e usaremos o domínio linux.lan com nosso novo servidor master.
Configurando o domínio linux.lan
O servidor DNS master está atualmente apenas encaminhando solicitações para o servidor do seu ISP. Portanto, agora instalaremos e configuraremos nosso próprio domínio e deixaremos nosso novo servidor lidar com todas as solicitações relacionadas a esse domínio.
Vamos começar criando o diretório onde armazenaremos o arquivo de zona. Este arquivo contém todas as informações sobre o domínio.
mkdir /etc/bind/zones/Em seguida, criaremos o arquivo de zonas,
/etc/bind/zones/master_linux.lan
:
$TTL 3D
@ IN SOA ns1.linux.lan. hostmaster.linux.lan. (
199802151 ; serial, data de hoje + número de série de hoje
8H ; refresh, segundos
2H ; retry, segundos
4W ; expire, segundos
1D ) ; minimum, segundos
;
TXT "Linux.LAN, servindo SEU domínio :)"
NS ns1 ; Endereço Inet do servidor de nomes
NS ns2
MX 10 mail ; Exchanger de Email Primário
localhost A 127.0.0.1
ns1 A 192.168.254.1
ns2 A 192.168.254.2
www CNAME ns1Aqui criamos um arquivo de zona simples com ambos os servidores de nomes e um alias www para ns1. Só para o caso de termos um apache em execução no ns1 ;)
Agora edite /etc/bind/named.conf.local e adicione:
zone "linux.lan" {
type master;
file "/etc/bind/zones/master_linux.lan";
};É isso, agora podemos reiniciar o bind e verificar se funciona:
/etc/init.d/bind9 restart
ping ns1.linux.lan
Neste estágio, você deve ter um servidor DNS funcionando e utilizável :)
Se disser que não consegue encontrar o domínio, talvez o dhclient tenha mudado sua entrada de servidor de nomes… Então mate-o.
Instalando o Slave
Basicamente, o slave usa o mesmo sistema básico que construímos na primeira parte (logo antes de adicionarmos o arquivo de zona). Faremos algumas pequenas mudanças tanto no master quanto no slave para que funcionem juntos. O arquivo de zonas será transferido pela rede usando criptografia.
A menos que indicado de outra forma, esses comandos são apenas para o slave.
Crie o diretório de zonas:
mkdir /etc/bind/zonesPara ambos, master E slave, edite /etc/bind/named.conf.options
e adicione:
dnssec-enable yes;Agora precisamos de uma chave segura. Isso gerará um arquivo .private e um arquivo .key. A linha ‘key=’ no arquivo .private representa a chave hash.
dnssec-keygen -a hmac-md5 -b 128 -n host linux.lanAdicione isso em seu
/etc/bind/named.conf
no master E no slave:
key "TRANSFER" {
algorithm hmac-md5;
secret "---HASHKEY---";
};No master, adicionamos o IP do slave em
/etc/bind/named.conf
:
server 192.168.254.2 {
keys {
TRANSFER;
};
};E no slave, adicionamos o IP do master em
/etc/bind/named.conf
:
server 192.168.254.1 {
keys {
TRANSFER;
};
};Adicione a
/etc/bind/named.conf.local
:
zone "linux.lan" {
type slave;
file "/etc/bind/zones/slave_linux.lan";
masters { 192.168.254.1; };
allow-notify { 192.168.254.1; };
};A última coisa necessária em AMBOS os hosts é adicionar isso a
/etc/bind/named.conf
:
include "/etc/bind/rndc.key";Para ter uma transferência de zona bem-sucedida, ambos os sistemas precisam ter um relógio sincronizado, então:
apt-get -y install ntpdate
Reinicie o bind em ambas as máquinas e note o novo arquivo de zona no slave :)
Se você está se perguntando por que as atualizações no arquivo de zona em seu master parecem falhar, verifique as configurações de expiração etc. dentro do arquivo de zona.
Boa sorte com sua nova configuração DNS master/slave!
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.