terça-feira, 17 de novembro de 2015

Linux - Servidor DNS como cache

Bind trabalhando como servidor de Cache DNS + CentOS 6


E ai galera, aqui vou abordar a instalação de um servidor DNS somente para cache, em alguns casos precisamos de um servidor de dns somente para agilizar um serviço de proxy ou trabalhar como encaminhador de um servidor DNS Windows, com isso podemos configurar o Bind para trabalhar somente fazendo cache.

  • Rede que vou levar em consideração que vai poder consultar o servidor: 10.13.0.0/24
Prepare o seu sistema com o seguinte script http://www.douglas.wiki.br/doku.php?id=confinicialcentos6 para que não falte nenhum pacote ou configuração.
Agora vamos instalar o DNS Bind
Vamos instalar os pacotes necessários
yum install bind-chroot bind-utils bind-libs -y
Agora vamos inserir ele na inicialização do sistema
chkconfig named on
Agora vamos reiniciar o serviço para que ele monte a jaula
/etc/init.d/named restart
Agora vamos fazer backup do arquivo de configuração do Bind
cp -Rfa /etc/named.conf{,.bkp}
Vamos agora ajustar o /etc/resolv.conf
vim /etc/resolv.conf
nameserver 127.0.0.1
Agora vamos acertar o arquivo de controle da versão e acesso ao dns
vim /etc/named.conf
#/etc/named.conf
options {
 listen-on port 53 { 127.0.0.1; 10.13.0.0/24; };
 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; 10.13.0.0/24; };
 recursion yes;
 version "Não Disponível";
};
 
#Controles 
include "/etc/rndc.key";
 
controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
};
 
#LOGS
logging {
 channel xfer-log {
 file "/var/log/named.log";
 print-category yes;
 print-severity yes;
 print-time yes;
 severity info;
 };
 category xfer-in { xfer-log; };
 category xfer-out { xfer-log; };
 category notify { xfer-log; };
 
 channel update-debug {
 file "/var/log/named-update-debug.log";
 severity  debug 3;
 print-category yes;
 print-severity yes;
 print-time      yes;
 };
 channel security-info    {
 file "/var/log/named-auth-info.log";
 severity  info;
 print-category yes;
 print-severity yes;
 print-time      yes;
 };
 category update { update-debug; };
 category security { security-info; };
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
include "/etc/named.rfc1912.zones";
Agora vamos gerar a chave do rndc, geralmente este comando demora !
rndc-confgen -a -c /etc/rndc.key -k rndc-key -b 256
Agora precisamos acertar as permissões dos arquivos
chown root:named /etc/rndc.key
chmod 640 /etc/rndc.key
Agora já podemos reiniciar o nosso bind
/etc/init.d/named restart
Vamos analisar os logs para ver se não temos nada de errado
tail -f /var/log/messages 
Jul  5 21:20:00 centos6 named[1280]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Jul  5 21:20:00 centos6 named[1280]: command channel listening on 127.0.0.1#953
Jul  5 21:20:00 centos6 named[1280]: managed-keys-zone: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 0.in-addr.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone localhost/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone localhost.localdomain/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: all zones loaded
Jul  5 21:20:00 centos6 named[1280]: running
Vamos fazer uma consulta para testar se o nosso servidor esta respondendo
nslookup www.uol.com.br
Server:  127.0.0.1
Address: 127.0.0.1#53
 
Non-authoritative answer:
Name: www.uol.com.br
Address: 200.147.67.142
Name: www.uol.com.br
Address: 200.221.2.45
Agora vamos fazer um teste com o dig
dig -t any bol.com.br
 
; <<>> DiG 9.9.0-RedHat-9.9.0-1.el6 <<>> -t any bol.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3663
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 3, ADDITIONAL: 5
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bol.com.br.   IN ANY
 
;; ANSWER SECTION:
bol.com.br.  300 IN A 200.147.3.199
bol.com.br.  46800 IN MX 20 mx3.bol.com.br.
bol.com.br.  3600 IN TXT "v=spf1 ip4:200.147.0.248/29 ip4:200.147.96.168/29 include:uol.com.br -all"
bol.com.br.  3600 IN SOA eliot.uol.com.br. nsmaster.bol.com.br. 2012032601 3600 1800 432000 3600
bol.com.br.  3600 IN NS charles.uol.com.br.
bol.com.br.  3600 IN NS eliot.uol.com.br.
bol.com.br.  3600 IN NS borges.uol.com.br.
 
;; AUTHORITY SECTION:
bol.com.br.  3600 IN NS charles.uol.com.br.
bol.com.br.  3600 IN NS eliot.uol.com.br.
bol.com.br.  3600 IN NS borges.uol.com.br.
 
;; ADDITIONAL SECTION:
mx3.bol.com.br.  3600 IN A 200.147.36.13
eliot.uol.com.br. 86338 IN A 200.221.11.98
borges.uol.com.br. 86338 IN A 200.147.255.105
charles.uol.com.br. 86338 IN A 200.147.38.8
 
;; Query time: 27 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jul  5 21:25:15 2012
;; MSG SIZE  rcvd: 379
Agora configurar os clientes para utilizar este servidor como servidor de DNS, ou podemos configurar ele como sendo um encaminhador do Windows ;)

Referências

  1. http://www.isc.org/software/bind/documentation

    Fonte: http://www.douglas.wiki.br/doku.php?id=pt-br:bind_trabalhando_servidor_cache_dns_centos_6_portuguese

    fonte: http://www.tecmint.com/install-caching-only-dns-server-in-centos/

     verificacao log
    http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch07_05.htm

    estatisticas:
    http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch07_06.htm
    https://evandhoffman.wordpress.com/2010/12/07/perl-script-to-calculate-dns-queries-per-second-in-bind-named/

    logrotate:
    http://lambie.org/2008/09/03/rotating-logs-with-logrotate/

0 comentários: