Continuando os artigos sobre o Bind, vou criar views no 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 "class365.com.br" { type master; file "db.class365.com.br"; allow-transfer { 172.16.31.11; }; }; zone "vagnerfonseca.com.br" { type master; file "db.vagnerfonseca.com.br"; allow-transfer { 172.16.31.11; }; }; zone "1.16.172.in-addr.arpa" { type master; file "db.172.16.31"; allow-transfer { 172.16.31.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; }; }; |
Desse jeito qualquer um pode consultar nosso dns e usá-lo para saber tanto do domínio interno quanto usar nosso dns para consultar domínios de internet que não pertençam a nossa empresa. Para mudar isso criaremos o conteúdo de nossa zona no arquivo db.class365.local no diretório correto e com o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS @ IN SOA ns1.class365.local. dns-admin.class365.local. ( 2019161101 ; serial para controle de atualizações entre master e slave 3600 ; tempo de atualizações entre master e slave (refresh) 1800 ; tempo de atualizações caso o refresh falhe 604800 ; tempo de expiração do slave caso não se contate com o master 3600 ) ; tempo de vida das repostas negativas do servidor @ IN NS ns1.class365.local. @ IN MX 10 mail.class365.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 |
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 29 | view "externa" { match-clients { any; }; recursion no; zone "class365.com.br" { type master; file "db.class365.com.br"; allow-transfer { 172.16.31.11; }; }; zone "vagnerfonseca.com.br" { type master; file "db.vagnerfonseca.com.br"; allow-transfer { 172.16.31.11; }; }; zone "31.16.172.in-addr.arpa" { type master; file "db.172.16.31"; allow-transfer { 172.16.31.11; }; }; }; view "interna" { match-clients { 192.168.1.0/24; }; recursion yes; zone "class365.local" { type master; file "db.class365.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 que não esteja nela, pra clientes externos.
Já a view chamda “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.
Esse artigo tenta tornar seu DNS mais seguro e eficiente, no próximo artigo estaremos melhorando a segurança do DNS.
Não se esqueça de se inscrever no meu canal do Youtube nem de me seguir no Instagram.
Entre no nosso grupo do Telegram e vamos falar muito sobre Linux.