Esse é o arquivo onde são feitas as configurações de zona direta, reversa e log do serviço.
Obs.: ao usar views, todas as zonas devem estar dentro das views. Caso contrário, dará erro.
#Crie ACLs e acrescente os IPs das suas redes e de seu servidor
#ACL + nome_da_ACL + { IP da rede ou host }
acl localnet { 172.16.0.0/29; };
acl interna { 192.168.0.0/29; };
acl servidor { 172.16.0.1;192.168.0.1; };
#Crie "views" para determinar quais recursos de seu DNS estarão disponíveis às suas redes internas e externa
#com "view" devemos criar configurações distintas para cada rede usando os nomes das ACLs.
#view + nome_da_view
view rede_local {
match-clients { localnet; }; = determine qual rede terá acesso as conf. dessa view
match-destinations { localnet; }; = o mesmo que a opção anterior
recursion yes; = habilita a busca recursiva (consultas a servidores remotos)
allow-query-cache { localnet; }; = informa que terá acesso a seu cache do DNS
allow-recursion { localnet; }; = diz quem terá permissão a realizar consultas recursivas
allow-query { localnet; }; = diz quem terá acesso a consultar o seu DNS
#Configuração de zona direta (resolução de nome para IP)
zone "express.net" { & (zone = nome da zona )
type master; ( type = tipo do servidor, master ou slave, ou seja primário ou secundário)
file "/etc/bind/db.express.net"; & (file = path dos arquivos de zona)
allow-transfer { none; }; ( allow-transfer = permite que ninguém transfira suas zonas, caso tenha um DNS slave adicione o nome da ACL ou IP )
allow-update { none; }; ( allow-update = impede que façam atualizações dinâmicas nas zonas)
};
#Configurações da zona reversa () resolve IP para nome
zone "0.16.172.in-addr.arpa" {
type master;
file "/etc/bind/db.172.16.0";
allow-transfer { none; };
allow-update { none; };
};
};
view rede_interna {
match-clients { interna;servidor; };
match-destinations { interna;servidor; };
recursion yes;
allow-query-cache { interna;servidor; };
allow-recursion { interna;servidor; };
allow-query { interna;servidor; };
zone "linuxpower.net" {
type master;
file "/etc/bind/db.linuxpower.net";
allow-transfer { none; };
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.0";
allow-update { none; };
allow-transfer { none; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
};
#Configurações de log do daemon
logging {
#Crie as canais de log e após isso determine no final da sessão em que categorias os canais se encaixarão.
channel seguranca { (nome da sessão)
file "security.log" versions 3 size 5m; (file = path do arquivo de log + cria até 3 versões do arquivo após rotacionar quando atingir 5 megas)
severity dynamic; ( determina em resumo o nível de debug da informação que irá para o arquivo )
print-time yes; (mostra a hora no arquivo de log)
print-category yes; (mostra qual a categoria no arquivo de log)
print-severity yes; (mostra o grau nível de gravidade )
};
channel global {
file "geral.log" versions 3 size 5m;
severity dynamic;
print-time yes;
print-category yes;
print-severity yes;
};
channel default {
file "default.log" versions 3 size 5m;
severity dynamic;
print-time yes;
print-category yes;
print-severity yes;
};
channel BD {
file "bd.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel sec {
file "sec.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel parsing {
file "config.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel resolver {
file "resolv.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel notify_file {
file "notify.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel client_file {
file "client.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel net_file {
file "net.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
channel delegation_file {
file "delegation.log" versions 3 size 5m;
severity dynamic;
print-time yes;
};
#Aqui determina-se as categorias e em quais canais serão reportadas as informações relacionadas a cada uma delas
# category = determina qual tipo de informação irá para o log. Ex.: queries = informações de consultas ao seu DNS.
#Entre as { nome do canal; }
category queries { seguranca; };
category general { global; };
category default { default; };
category database { BD; };
category security { sec; };
category config { parsing; };
category resolver { resolver; };
category notify { notify_file; };
category client { client_file; };
category network { net_file; };
category delegation-only { delegation_file; };
};
Para mais esclarecimentos acessem: