Bind trabalhando como servidor de Cache DNS + Debian Wheezy
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: 192.168.1.0/24
Prepare o seu sistema com o seguinte script Easy-Debian para que não falte nenhum pacote ou configuração.
Agora vamos instalar o DNS Bind
Vamos instalar os pacotes necessários
aptitude install bind9 dnsutils -y
Agora vamos para o bind para podemos efetuar as modificações necessárias.
/etc/init.d/bind9 stop
Agora vamos criar os diretórios necessários para a jaula
mkdir -p /var/lib/named/etc mkdir -p /var/lib/named/dev mkdir -p /var/lib/named/var/log mkdir -p /var/lib/named/var/cache/bind mkdir -p /var/lib/named/var/cache/bind/dynamic mkdir -p /var/lib/named/var/run/bind/run mknod /var/lib/named/dev/null c 1 3 mknod /var/lib/named/dev/random c 1 8 mknod /var/lib/named/dev/zero c 1 5
Agora vamos acertar as permissões da jaula
chmod 666 /var/lib/named/dev/{null,random,zero} chown -R bind:bind /var/lib/named/var/*
Agora vamos ajudar a localização dos diretórios
mv /etc/bind /var/lib/named/etc ln -sf /var/lib/named/etc/bind /etc/bind cp /etc/localtime /var/lib/named/etc chown -R bind:bind /var/lib/named/etc/bind chown -R root:bind /var/lib/named/var/cache/bind/dynamic chmod -R 775 /var/lib/named/var/cache/bind/dynamic
Agora vamos acertar o arquivo default do bind para que o bind reconheça a jaula
vim /etc/default/bind9 RESOLVCONF=yes OPTIONS="-u bind -t /var/lib/named"
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/bind/named.conf.options #/etc/bind/named.conf.options options { directory "/var/cache/bind"; managed-keys-directory "/var/cache/bind/dynamic"; auth-nxdomain no; listen-on-v6 { any; }; listen-on { 127.0.0.1/32; 192.168.1.0/24; }; allow-query { any; }; recursion yes; version "Nao Disponivel"; ### DNSSEC ### dnssec-enable no; dnssec-validation no; dnssec-lookaside auto; }; #Controles include "/etc/bind/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; }; };
Agora já podemos iniciar o nosso bind
/etc/init.d/bind9 start
Vamos analisar os logs para ver se não temos nada de errado
tail -f /var/log/syslog May 31 17:58:51 deb-srv001 named[3125]: using default UDP/IPv4 port range: [1024, 65535] May 31 17:58:51 deb-srv001 named[3125]: using default UDP/IPv6 port range: [1024, 65535] May 31 17:58:51 deb-srv001 named[3125]: listening on IPv6 interfaces, port 53 May 31 17:58:51 deb-srv001 named[3125]: listening on IPv4 interface lo, 127.0.0.1#53 May 31 17:58:51 deb-srv001 named[3125]: listening on IPv4 interface eth0, 192.168.1.40#53 May 31 17:58:51 deb-srv001 named[3125]: generating session key for dynamic DNS May 31 17:58:51 deb-srv001 named[3125]: sizing zone task pool based on 5 zones May 31 17:58:51 deb-srv001 named[3125]: using built-in DLV key for view _default May 31 17:58:51 deb-srv001 named[3125]: set up managed keys zone for view _default, file '/var/cache/bind/dynamic/managed-keys.bind' May 31 17:58:51 deb-srv001 named[3125]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 254.169.IN-ADDR.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 2.0.192.IN-ADDR.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 100.51.198.IN-ADDR.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 113.0.203.IN-ADDR.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 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.0.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty 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 May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: D.F.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 8.E.F.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 9.E.F.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: A.E.F.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: B.E.F.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA May 31 17:58:51 deb-srv001 named[3125]: command channel listening on 127.0.0.1#953 May 31 17:58:51 deb-srv001 named[3125]: zone 0.in-addr.arpa/IN: loaded serial 1 May 31 17:58:51 deb-srv001 named[3125]: zone 127.in-addr.arpa/IN: loaded serial 1 May 31 17:58:51 deb-srv001 named[3125]: zone 255.in-addr.arpa/IN: loaded serial 1 May 31 17:58:51 deb-srv001 named[3125]: zone localhost/IN: loaded serial 2 May 31 17:58:51 deb-srv001 named[3125]: managed-keys-zone ./IN: loaded serial 0 May 31 17:58:51 deb-srv001 named[3125]: running
Vamos efetuar uma consultar para teste
nslookup www.terra.com.br Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: www.terra.com.br Address: 208.84.244.116
Vamos efetuar uma consulta agora com o dig
dig -t any terra.com.br ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> -t any terra.com.br ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45213 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 6 ;; QUESTION SECTION: ;terra.com.br. IN ANY ;; ANSWER SECTION: terra.com.br. 86372 IN NS a.dns.terra.com. terra.com.br. 86372 IN NS b.dns.terra.com.br. terra.com.br. 86372 IN NS d.dns.terra.com.br. terra.com.br. 86372 IN NS c.dns.terra.com. ;; AUTHORITY SECTION: terra.com.br. 86372 IN NS c.dns.terra.com. terra.com.br. 86372 IN NS b.dns.terra.com.br. terra.com.br. 86372 IN NS d.dns.terra.com.br. terra.com.br. 86372 IN NS a.dns.terra.com. ;; ADDITIONAL SECTION: a.dns.terra.com. 172772 IN A 200.215.193.1 b.dns.terra.com.br. 86372 IN A 200.215.193.1 b.dns.terra.com.br. 86372 IN AAAA 2001:12c0:0:2151:200:154:46:20 c.dns.terra.com. 172772 IN A 200.215.194.1 d.dns.terra.com.br. 86372 IN A 200.215.194.1 d.dns.terra.com.br. 86372 IN AAAA 2001:12c0:0:2151:200:154:46:21 ;; Query time: 2 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sat May 31 18:00:13 2014 ;; MSG SIZE rcvd: 287
Agora configurar os clientes para utilizar este servidor como servidor de DNS, ou podemos configurar ele como sendo um encaminhador do Windows ;)