Instalação do BIND-9
Vamos primeiro verificar os pacotes que devem estar instalados na maquina,
bind-chroot-9.3.6-16.P1.el5 bind-9.3.6-16.P1.el5 bind-libs-9.3.6-16.P1.el5 bind-utils-9.3.6-16.P1.el5
por padrão a pasta de configuração do bind-9 é a /var/named/chroot/ já definida dentro do arquivo /etc/sysconfig/named mas não é necessário alterar este local.
Configurando os arquivos de zona
As informações dos arquivos de zona deverão ficar dentro do arquivo /var/named/chroot/etc/named.conf (esse arquivo não foi criado na instalação dos pacotes, você deve cria-lo). Também ficam nesse arquivo as informações gerais do servidor de DNS recursivo que você vai colocar na sua rede, tais como:
options { listen-on port 53 { 127.0.0.1; 176.16.0.9; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 176.16.0.8/29; }; version "não sei não!!"; recursion yes; max-cache-size 10M; max-cache-ttl 18000; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; *listen-on port 53 { 127.0.0.1; 176.16.0.9; }; "coloque sua rede local aqui" *allow-query { localhost; 176.16.0.8/29; }; "coloque o ID de sua rede aqui"
O parâmetro ”version” foi para dificultar um possível atacante descobrir qual a versão do seu servidor de DNS.
/var/named/chroot/var/named/named.ca
Este arquivo contem a informação necessária para se inicializar o cache com os dados relativos aos root name servers.
As informações deste arquivo, embora pouco voláteis, ainda assim mudam com o tempo. O InterNIC disponibiliza este arquivo via ftp anônimo em ftp.rs.internic.net/domain/named.root . Recomenda-se a verificação deste arquivo pelo menos uma vez ao mês
; <<>> DiG 9.5.0b2 <<>> +bufsize=1200 +norec NS . @a.root-servers.net ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34420 ;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 20 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 518400 IN NS M.ROOT-SERVERS.NET. . 518400 IN NS A.ROOT-SERVERS.NET. . 518400 IN NS B.ROOT-SERVERS.NET. . 518400 IN NS C.ROOT-SERVERS.NET. . 518400 IN NS D.ROOT-SERVERS.NET. . 518400 IN NS E.ROOT-SERVERS.NET. . 518400 IN NS F.ROOT-SERVERS.NET. . 518400 IN NS G.ROOT-SERVERS.NET. . 518400 IN NS H.ROOT-SERVERS.NET. . 518400 IN NS I.ROOT-SERVERS.NET. . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:ba3e::2:30 B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 F.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2f::f G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 H.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:1::803f:235 I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 J.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:c27::2:30 K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 K.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:7fd::1 L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
Vamos ao domínio
Vamos configurar um domínio para nossa rede, o escolhido foi centos.local, segue as configurações que devem se localizar abaixo do parâmetro “options” descrito acima:
zone "centos.local" IN { type master; check-names ignore; file "centos.local"; };E o reverso deste domínio é:
zone "0.16.176.in-addr.arpa" IN { type master; check-names ignore; file "176.16.0.9"; };
A opção “file” deve conter o nome do arquivo de zona, assim o DNS poderá achar as zonas devidamente citadas acima, este local onde fica os arquivos fica na pasta /var/named/chroot/var/named/ então vamos criar nossos arquivos…
primeiro o centos.local:
$TTL 1D ; 1 dia @ IN SOA batman.centos.local. root.batman.centos.local. ( 20110509 ;serial 1D ;refresh 1H ;retry 1W ;expire 3H ) ;minimum NS batman.centos.local. ns1 IN A 176.16.0.9 ns2 IN A 176.16.0.9 smtp IN CNAME ns2 ftp IN CNAME ns2 batman A 176.16.0.9 michele A 176.16.0.10 samsung A 176.16.0.11 david A 176.16.0.12 lauro A 176.16.0.13 marcela A 176.16.0.14
O nome “batman” é o nome do servidor na rede, o hostname, vamos explicar algumas coisas:
SOA = Start of Authority este registro definio o inicio de uma zona para a qual o seu servidor sera autoridade. A @ no primeiro campo da primeira linha define o nome da zona. O quarto campo lista o hostname do seu servidor DNS, o quinto campo lista o email da pessoa responsavel pela admnistracao deste dominio (no formato: login.seu-dominio.com.br). O registro SOA lista 5 parametros entre parenteses.
serial = número de verificação para atualização do servidor DNS primário para o secundário
refresh = quantas vezes ele faz essa verificação para atualizar a base de dados
retry = de 1 em 1 hora o servidor deverá fazer uma nova tentativa de atualizar o banco de dados
expire = Tempo de vida útil do servidor secundário caso ele nao consiga se comunicar com o servidor primário em 1 semana ele apagará todo seu banco de dados de domínio.
minimum = normalmente configurado como TTL (time to live) tempo que ficará registrado no banco de dados do solicitante a informação sobre a zona
NS – Lista um servidor de nomes para este domínio.
A – Mapeamento de nomes para endereços.
PTR – Mapeamento reverso, ou de endereços para nomes.
CNAME – Nomes canônicos (para aliases).
HINFO – Informações sobre o servidor.
MX – Nome do servidor de e-mail para o dominio.
Zona Reversa deste domínio
Arquivo de dados da zona reversa
$TTL 1D @ IN SOA batman.centos.local. root.centos.local. ( 20110509 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS batman.centos.local. 9 IN PTR batman.centos.local. 10 IN PTR michele.centos.local. 11 IN PTR samsung.centos.local. 12 IN PTR david.centos.local. 13 IN PTR lauro.centos.local. 14 IN PTR marcela.centos.local.
Zona Local /var/named/chroot/var/named/named.localhost
$TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1
Zona Local /var/named/chroot/var/named/named.loopback
$TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ PTR localhost.