Continuando nossa série de artigos sobre o Bind, hoje vamos criar views em nosso DNS, views são seções onde podemos controlar quem pode ver qual parte de nosso DNS, assim podemos ter uma seção interna e outra externa respondendo no mesmo servidor DNS.
Lembrando o artigo da semana passada, tínhamos o seguinte conteúdo no nosso arquivo named :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
zone "empresa.net" { type master; file "db.empresa.net"; allow-transfer { 172.16.1.11; }; }; zone "exemplo.net" { type master; file "db.exemplo.net"; allow-transfer { 172.16.1.11; }; }; zone "1.16.172.in-addr.arpa" { type master; file "db.172.16.1"; allow-transfer { 172.16.1.11; }; }; |
Não tínhamos uma zona de máquinas locais e nem separação de quem podia ver cada zona. Vamos criar agora nossas views, lembrando que todas as seções existentes nos arquivos named devem estar em uma view.
Vamos criar nossa zona local acrescentando uma entrada no final do arquivo:
1 2 3 4 5 |
zone "empresa.local" { type master; file "db.empresa.local"; allow-transfer { none; }; }; |
Criaremos o conteúdo de nossa zona no arquivo db.empresa.local no diretório correto e com o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<em>$TTL 28800</em> ; tempo de vida das respostas fornecidas pelo DNS <em>@ IN SOA ns1.empresa.local. dns-admin.empresa.local. (</em> <em>2011102701</em> ; serial para controle de atualizações entre master e slave <em> 3600</em> ; tempo de atualizações entre master e slave (refresh) <em> 1800</em> ; tempo de atualizações caso o refresh falhe <em>604800</em> ; tempo de expiração do slave caso não se contate com o master <em>3600 )</em> ; tempo de vida das repostas negativas do servidor @ IN NS ns1.empresa.local. @ IN MX 10 mail.empresa.local. ns1 IN A 192.168.1.10 mail IN A 192.168.1.12 ftp IN A 192.168.1.13 www IN A 192.168.1.20</em> |
Assim vamos criar as nossas views com o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
view "externa" { match-clients { any; }; recursion no; zone "empresa.net" { type master; file "db.empresa.net"; allow-transfer { 172.16.1.11; }; }; zone "exemplo.net" { type master; file "db.exemplo.net"; allow-transfer { 172.16.1.11; }; }; zone "1.16.172.in-addr.arpa" { type master; file "db.172.16.1"; allow-transfer { 172.16.1.11; }; }; }; view "interna" { match-clients { 192.168.1.0/24; }; recursion yes; zone "empresa.local" { type master; file "db.empresa.local"; allow-transfer { none; }; }; }; |
Assim teremos uma view chamada “externa” que será de acesso a todos (any) e não permitirá consultas recursivas (recursion no), ou seja qualquer um pode consultar sobre os domínios que estão dentro dessa view, mas não podem consultar sobre nenhum outro domínio.
Já a view “interna” é de acesso apenas para clientes da rede 192.168.1.0/24 e permite que clientes dessa rede consultem sobre outros domínios mesmo que não estejam hospedados nesse servidor.
Espero que esse artigo torne seu DNS mais seguro e eficiente, no próximo artigo estaremos melhorando a segurança do DNS.
Não esqueça de votar no TopBlog e continuar a recomendar nosso Portal.