Instalando e configurando um servidor DNS no SLACKWARE
Antes vou explicar o que é um servidor DNS (Domain Name Server).
Um servidor DNS é responsável em responder pelo(s) domínio(s) e direcionar tudo que é relacionado a ele, nele por exemplo você vai apontar onde fica o www.dominio.com.br, vai apontar também quais são os servidores de entrada de email e por aí vai…
Ele também possui outras utilidades, como por exemplo em uma rede interna, com ele configurado em um servidor de sua rede, você não precisará informar o servidor DNS do seu provedor, basta somente apontá-lo para ele e até fazer com que sua empresa toda responda por hosts, por exemplo: maquina-1.dominio.com.br, maquina-2.dominio.com.br.
Bem, vamos ao que interessa…
Vou deixar bem claro que sempre uso o Slackware como servidor, acredito que em outras versões não mude muita coisa, portanto meu artigo vai ser todo baseado no Slackware.
O programa que vamos usar para o usar como server é o BIND, por padrão ele já vem instalado no Slack, mas vou começar desde o início.
Outra coisa muito importante é que você deve SEMPRE usar a última versão do BIND, por questões de segurança.
Procure em www.linuxpackages.net o pacote mais recente do Bind.
Após baixar o pacote você deve entrar no diretório que o arquivo está e dar o seguinte comando:
# installpkg bind-9.3.0-i486-1jim.tgz
Após ter instalado é hora de configurar um domínio (meudominio.com.br) no seu server para a brincadeira começar a funcionar, para isso temos que criar alguns arquivos.
O primeiro deles é o /etc/named.conf, caso esse arquivo já exista, faça um backup dele e crie um novo com o conteúdo abaixo.
transfer-format many-answers;
};
controls {
inet * port 953 allow { 127.0.0.1; }; // Para usar o rndc apenas em localhost
};
//
// a caching only nameserver config
//
zone “.” IN {
type hint;
file “caching-example/named.ca”;
};
zone “localhost” IN {
type master;
file “caching-example/localhost.zone”;
allow-update { none; };
};
zone “meudominio.com.br” IN {
type master;
file “meudominio.com.br.domain”;
allow-update { none; };
};
Agora vamos criar o /var/named/caching-example/named.ca. Se os diretórios não existirem, por favor os crie:
Agora vamos criar o /var/named/caching-example/localhost.zone. Se os diretórios não existirem por favor os crie:
1D IN NS @
1D IN A 127.0.0.1
Vamos criar o arquivo referente ao seu domínio
/var/named/meudominio.com.br.domain:
;
;Recebimento de mensagens de mail
;
meudominio.com.br. IN MX 0 mx
meudominio.com.br. IN MX 10 mx
;
; Hosts
;
localhost IN A 127.0.0.1
IN HINFO INTEL/110 LINUX
www IN A 200.162.73.7 ; o ip da sua maquina
ns1 IN A 200.162.73.7 ; o ip da sua maquina
ns2 IN A 200.162.73.7 ; o ip da sua maquina
maquina-1 IN A 192.168.69.12 ; ip qualquer da rede
maquina-2 IN A 192.168.69.13 ; ip qualquer da rede
Caso você não tenha o arquivo /etc/rc.d/rc.bind crie-o com o seguinte conteúdo:
#!/bin/sh
# Start/stop/restart the BIND name server daemon (named).
# Start bind. In the past it was more secure to run BIND
# as a non-root user (for example, with ‘-u daemon’), but
# the modern version of BIND knows how uses to use the
# kernel’s capability mechanism to drop all root privileges
# except the ability to bind() to a privileged port and set
# process resource limits, so -u should not be needed. If
# you wish to use it anyway, chown the /var/run/named
# directory to the non-root user.
#
# You might also consider running BIND in a “chroot jail”,
# a discussion of which may be found in
# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO.
bind_start() {
if [ -x /usr/sbin/named ]; then
echo “Starting BIND: /usr/sbin/named”
/usr/sbin/named
fi
}
# Stop bind:
bind_stop() {
killall named
}
# Restart bind:
bind_restart() {
bind_stop
sleep 1
bind_start
}
case “$1″ in
‘start’)
bind_start
;;
‘stop’)
bind_stop
;;
‘restart’)
;;
*)
echo “usage $0 start|stop|restart”
esac
Depois de salvo o arquivo com o conteúdo acima e dê permissão ao arquivo:
# chmod +x /etc/rc.d/rc.bind
Para iniciar o BIND basta digitar o seguinte comando:
# /etc/rc.d/rc.bind start
Vamos agora colocar o nossa brincadeira para funcionar na hora que a máquina iniciar. Existem várias formas, todos sabem, mas vou explicar a mais simples usando o nosso bom e velho /etc/rc.d/rc.local.
Coloque a linha abaixo dentro do /etc/rc.d/rc.local:
/etc/rc.d/rc.bind start
| Após tudo feito vamos colocar o nosso servidor para usar o seu próprio DNS para navegar.Edite o arquivo /etc/resolv.conf e coloque o seguinte conteudo: |
| search meudominio.com.br nameserver 192.168.69.11 |
| OBS: altere o 192.168.69.11 para o seu IP. |
Depois de tudo pronto e configurado vamos testar.
Por via das dúvidas, dê um boot na sua máquina só pra ver se está tudo iniciando direitinho, não custa nada né?
Vamos pingar o UOL:
$ ping www.uol.com.br
Se a resposta for parecida com essa é por que esta funcionando perfeitamente:
PING www.uol.com.br (200.221.2.45) 56(84) bytes of data.
64 bytes from hugo.uol.com.br (200.221.2.45): icmp_seq=1 ttl=123 time=13.9 ms
64 bytes from hugo.uol.com.br (200.221.2.45): icmp_seq=2 ttl=123 time=18.4 ms
— www.uol.com.br ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1008ms
rtt min/avg/max/mdev = 13.917/16.165/18.413/2.248 ms
Vamos pingar o www.meudominio.com.br, por que está apontando para sua máquina:
$ ping www.meudominio.com.br
Se a resposta for parecida com essa, está funcionando também:
PING www.meudominio.com.br (200.162.73.7) 56(84) bytes of data.
64 bytes from 200.162.73.7: icmp_seq=1 ttl=64 time=0.046 ms
64 bytes from 200.162.73.7: icmp_seq=2 ttl=64 time=0.041 ms
— www.markeweb.com.br ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.041/0.043/0.046/0.007 ms