Servidor DNS Recursivo, Autoritativo e Reverso com Bind9 (IPv4+IPv6) + Fail2ban (Debian8/9) [Descontinuado]
Este tutorial foi atualizado:
Acesse Servidor DNS seguro com Bind9 (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster
Não utilize este tutorial! Não apaguei o mesmo para deixa-lo para fins de estudos.
(Descontinuado)
Distribuição utilizada: Debian 8 Jessie / Debian 9 Stretch – Instalação Limpa (Tutorial de instalação aqui)
DNS RECURSIVO
O DNS recursivo é responsável por procurar os endereços IPs de servidor que você solicitou acesso. Exemplo o DNS que esta configurado na sua máquina.
DNS AUTORITIVO
É o que possui autoridade sobre um nome de domínio, assim como ns1.remontti.net.br é o DNS autoritativo de seu domínio remontti.net.br.
O DNS autoritativo dita qual será o apontamento da tabela de DNS do seu site. Ele vai responder por o domínio que você configurou nele.
DNS REVERSO
Normalmente o DNS atua resolvendo o nome do domínio de um host para um endereço IP correspondente. Já o DNS Reverso resolve o endereço IP, buscando o nome de domínio associado ao host. Ou seja, quando temos disponível o endereço IP de um host e não sabemos o endereço do domínio(nome dado à máquina ou outro equipamento que acesse uma rede), tentamos resolver o endereço IP através do DNS reverso que procura qual nome de domínio está associado aquele endereço. Os servidores que utilizam o DNS Reverso conseguem verificar a autenticidade de endereços, verificando se o endereço IP atual corresponde ao endereço IP informado pelo servidor DNS. Isto evita que alguém utilize um domínio que não lhe pertence para enviar spam, por exemplo.
Para que o DNS Reverso funcione que no registro.br você designa seu bloco apontando para o(os) seu(s) servidor(es) DNS. Se você for um provedor o correto seria você ter ao menos dois servidores DNS em sua rede, uma Master e outro Slave. Neste tutoria foi explicar como criar os dois! 😉
Vamos iniciar com a instalação do nosso servidor Master, lembrando que para isso estou usando a Distribuição linux Debian 8, com uma instalação que eu chamo de limpa, ou seja no processo de instalação foi instalado apenas o sistema básico.
Cenário para nosso exemplo
Domínio: remontti.net.br
Blocos que serei responsável IPv4 250.250.0.0/23 (255.255.254.0) / IPv6 2000:FFF::/32 minha rede ainda conta com alguns blocos de IPs inválidos bem como 192.168.0.0/16, 172.16.0.0/12 e 10.0.0.0/8 que por ventura também irei autorizar consultas recursivas.
Tenho ainda meus servidores, quais ficarão configurado com os seguintes IPs IPv4/IPv6:
ROUTER GW -> 250.250.0.1 / 2000:fff:250:250:0::1
SERV DNS MASTER -> 250.250.0.2 / 2000:fff:250:250:0::2 (ns1)
SERV DNS SLAVE -> 250.250.0.3 / 2000:fff:250:250:0::3 (ns2)
SERV WEB + FTP -> 250.250.0.4 / 2000:fff:250:250:0::4 (www,ftp)
SERV ZABBIX -> 250.250.0.5 / 2000:fff:250:250:0::5 (zabbix)
SERV E-MAILS -> 250.250.0.6 / 2000:fff:250:250:0::6 (mail,imap,pop,smtp)
SERV HOSPEDAGEM * -> 250.250.0.7 / 2000:fff:250:250:0::7 (ns3)
* Inclui outros servidor para demonstrar como irei apontar para eles alguns nos domínios que seremos autoritarivo, lá na frente você vai compreender melhor.
INSTALAÇÃO SERVIDOR DNS MASTER (NS1)
# apt install bind9 dnsutils
Pronto! Nosso servidor recursivo já está funcionando, porém ele está aberto, e isso não é nada legal! Você não vai querer qualquer um utilizando seu servidor para resolver nomes. Vamos resolver isso bem simples.
Antes de mais nada vamos alterar o DNS do nosso servidor fazendo com que ele consulte em si próprio. Essa alteração deve ser feita no arquivo /etc/resolv.conf, eu irei utilizar o editor vim, mas fique a vontade de usar o seu preferido.
# vim /etc/resolv.conf
Altere para:
nameserver 127.0.0.1
search localhost
Feito isso você pode fazer um ping para um domínio e ver se ele resolveu o host.
Agora “mão na massa”! Vamos começar acessando nosso diretório de instalação do Bind que fica em /etc/bind/
# cd /etc/bind
As configurações principal é armazenado nos seguintes arquivos:
named.conf
named.conf.local
named.conf.options
Iremos alterar o named.conf.options, o próprio nome já se auto descreve o que vamos encontrar nele.
Sempre gosto de preservar o arquivo original, então vamos fazer um backup antes de modifica-lo.
# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bkp
Agora vamos as alterações, vou deixar explicado como comentários dentro no nosso arquivo.
# vim /etc/bind/named.conf.options
//ACLs (Access Control Lists)
// ACL "permite-recursiva" vão ficar os hosts estão autorizados a fazer
// consultas recursivas através deste servidor.
acl permite-recursiva {
127.0.0.1;
::1;
250.250.0.0/23;
2000:fff::/32;
192.168.0.0/16;
172.16.0.0/12;
10.0.0.0/8;
};
options {
// O diretório de trabalho do servidor
// Quaisquer caminho não informado será tomado como padrão este directório
directory "/var/cache/bind";
//Suporte a DNSSEC
dnssec-enable yes;
dnssec-validation auto;
// Conforme RFC1035
// https://www.ietf.org/rfc/rfc1035.txt
auth-nxdomain no;
// Respondendo para IPv4 e IPv6
// Porta 53 estará aberta para ambos v4 e v6
listen-on { any; };
listen-on-v6 { any; };
// Limitação da taxa de resposta no sistema de nomes de domínio (DNS RRL)
rate-limit {
responses-per-second 15;
window 5;
};
// Melhora o desempenho do servidor, reduzindo os volumes de dados de saída.
// O padrão BIND é (no) não.
minimal-responses yes;
// Especifica quais hosts estão autorizados a fazer consultas
// recursivas através deste servidor.
// Aqui que você vai informar os IPs da sua rede que você irá permitir consultar os DNS.
allow-recursion {
permite-recursiva;
};
// Endereço estão autorizados a emitir consultas ao cache local,
// sem acesso ao cache local as consultas recursivas são inúteis.
allow-query-cache {
permite-recursiva;
};
// Especifica quais hosts estão autorizados a fazer perguntas DNS comuns.
allow-query { any; };
// Especifica quais hosts estão autorizados a receber transferências de zona a partir do servidor.
// Seu servidor Secundário, no nosso caso vou deixar então o ips dos dois servidores v4 e v6.
allow-transfer {
250.250.0.3;
2000:fff:250:250:0::3;
};
also-notify {
250.250.0.3;
2000:fff:250:250:0::3;
};
// Esta opção faz com que o servidor slave ao fazer a transferência de zonas
// mastes deste servidor nao compile o arquivo, assim no outro servidor o arquivo
// da zona terá um texto "puro"
masterfile-format text;
// Para evitar que vase a versao do Bind, definimos um nome
version "RR DNS Server";
};
Pronto nosso servidor Recursivo já está funcionando! Caso você não queria seu servidor sendo recursivo apenas altere allow-recursion e allow-query-cache para apenas localhost. Esta também será feita no servidor Slave (ns2).
Agora precisamos apenas dar um restart no bind para que as opções tenham efeito.
# /etc/init.d/bind9 restart
IP REVERSO (NS1 Master)
Vamos a configuração do nosso reverso. Particularmente gosto de dentro da pasta /etc/bind/ criar alguns diretórios quais separo as configurações.
# mkdir /etc/bind/reverse
Somos “donos” do bloco 250.250.0.0/23 que representam dois blocos /24 (250.250.0.0/24 + 250.250.1.0/24). Para facilitar vou fazer a configuração em dois arquivos separando cada bloco /24. É possível colocar tudo em um mesmo arquivo? Sim, mais eu particularmente não gosto 😀
Vamos ter que dar nomes a todos nossos 512 IPs representado pelo nosso /23, no exemplo não vou criar todos, vou por um […] q representa que você deve completar com os demais ips, também vou usar como parado o nome para os IP o próprio endereço IP porém com um abreviação “rev-250-250-X-Y” com exceção nossos servidor já conhecido, ns1, ns2, mail … Vale lembrar que todos esses nomes de hosts serão configurado exatamente posterior na configuração sobre o domínio. Para que quando vc consulte o nome de um IP ele resolva em um nome e ao você consultar este nome ele resolva em um IP, por isso o nome de reverso!
Primeiro arquivo 250.250.0.rev
# vim /etc/bind/reverse/250.250.0.rev
Preste atenção em 0.250.250.in-addr.arpa. essa linha (são duas no arquivo a baixo) ela deve ser alterada com o inverso do seu IP, se seu bloco fosse ex.: 100.200.300.0/24 ficaria 300.200.100.in-addr.arpa. fica ligado 😛
Outra coisa importante é o serial (2017010100) ele esta presente em todos os arquivos e deve ser alterado toda vez que for alterado. Ele segue o padrão [ano-mes-dia-sequencial].
$ORIGIN .
$TTL 86400 ; 1 day
0.250.250.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
$ORIGIN 0.250.250.in-addr.arpa.
0 PTR 250-250-0-000.remontti.net.br.
1 PTR router-gw.remontti.net.br.
2 PTR ns1.remontti.net.br.
3 PTR ns2.remontti.net.br.
4 PTR www.remontti.net.br.
5 PTR zabbix.remontti.net.br.
6 PTR mail.remontti.net.br.
7 PTR ns3.remontti.net.br.
8 PTR 250-250-0-8.remontti.net.br.
9 PTR 250-250-0-9.remontti.net.br.
10 PTR 250-250-0-10.remontti.net.br.
11 PTR 250-250-0-11.remontti.net.br.
;
; [...] complete com todos os IPs/Nomes
;
254 PTR 250-250-0-254.remontti.net.br.
255 PTR 250-250-0-255.remontti.net.br.
; fim
Segundo arquivo 250.250.1.rev (observe 1.250.250.in-addr.arpa)
# vim /etc/bind/reverse/250.250.1.rev
$ORIGIN .
$TTL 86400 ; 1 day
1.250.250.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
$ORIGIN 1.250.250.in-addr.arpa.
0 PTR 250-250-1-0.remontti.net.br.
1 PTR 250-250-1-1.remontti.net.br.
2 PTR 250-250-1-2.remontti.net.br.
3 PTR 250-250-1-3.remontti.net.br.
4 PTR 250-250-1-4.remontti.net.br.
5 PTR 250-250-1-5.remontti.net.br.
6 PTR 250-250-1-6.remontti.net.br.
7 PTR 250-250-1-7.remontti.net.br.
8 PTR 250-250-1-8.remontti.net.br.
9 PTR 250-250-1-9.remontti.net.br.
10 PTR 250-250-1-10.remontti.net.br.
;
; [...] complete com todos os IPs/Nomes
;
253 PTR 250-250-1-253.remontti.net.br.
254 PTR 250-250-1-254.remontti.net.br.
255 PTR 250-250-1-255.remontti.net.br.
; fim
Se possui bloco maiores e diferente, e com um padrão de nomes iguais o modo GENERATE ajuda muito, ficando da seguinte forma:
;;;;;;;;;;;;;;;;;;;;;;;
;;;; 250.250.0.rev ;;;;
;;;;;;;;;;;;;;;;;;;;;;;
$ORIGIN .
$TTL 86400 ; 1 day
0.250.250.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
$ORIGIN 0.250.250.in-addr.arpa.
0 PTR 250-250-0-000.remontti.net.br.
1 PTR router-gw.remontti.net.br.
2 PTR ns1.remontti.net.br.
3 PTR ns2.remontti.net.br.
4 PTR www.remontti.net.br.
5 PTR zabbix.remontti.net.br.
6 PTR mail.remontti.net.br.
7 PTR ns3.remontti.net.br.
; Os gerados auto
$ORIGIN 0.250.250.in-addr.arpa.
$GENERATE 8-255 $ PTR 250-250-0-$.remontti.net.br.
;;;;;;;;;;;;;;;;;;;;;;;
;;;; 250.250.1.rev ;;;;
;;;;;;;;;;;;;;;;;;;;;;;
$ORIGIN .
$TTL 86400 ; 1 day
1.250.250.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
$ORIGIN 1.250.250.in-addr.arpa.
$GENERATE 0-255 $ PTR 250-250-1-$.remontti.net.br.
Barabada não!? 🙂
Não podemos esquecer nosso reverso do IPv6!
Terceiro arquivo 2000.fff.rev
# vim /etc/bind/reverse/2000.fff.rev
$TTL 86400 ; 1 day
@ IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR router-gw.remontti.net.br.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR ns1.remontti.net.br.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR ns2.remontti.net.br.
4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR www.remontti.net.br.
5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR zabbix.remontti.net.br.
6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR mail.remontti.net.br.
7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa. IN PTR ns3.remontti.net.br.
;
; OU Mais compacto.
;
;$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.2.0.0.5.2.0.f.f.f.0.0.0.0.2.ip6.arpa.
;1 PTR router-gw.remontti.net.br.
;2 PTR ns1.remontti.net.br.
;3 PTR ns2.remontti.net.br.
;4 PTR www.remontti.net.br.
;5 PTR zabbix.remontti.net.br.
;6 PTR mail.remontti.net.br.
;7 PTR ns3.remontti.net.br.
Este site http://rdns6.com/hostRecord pode ser bem útil para gerar seus PTRs.
Para finalizar acertando as permissões.
# chown bind. -R /etc/bind/reverse
Precisamos informar nossas zones “lincar nossos arquivos” para serem interpretado pelo bind, esse arquivo é o named.conf.local, como estamos configurando nosso servidor master essas zonas serão do tipo (type) master e para informar o arquivo onde está a configuração da zone usamos o parâmetro file /caminho-completo/arquivo
# vim /etc/bind/named.conf.local
Adicione nele:
// Reverso IPv4
zone "0.250.250.in-addr.arpa" {
type master;
file "/etc/bind/reverse/250.250.0.rev";
};
zone "1.250.250.in-addr.arpa" {
type master;
file "/etc/bind/reverse/250.250.1.rev";
};
// Reverso IPv6
zone "f.f.f.0.0.0.0.2.ip6.arpa" {
type master;
file "/etc/bind/reverse/2000.fff.rev";
};
Restart o serviço.
# /etc/init.d/bind9 restart
Vamos ver se ele já está resolvendo nosso IP então!
# dig -x 250.250.0.2 @localhost # dig -x 2000:fff:250:250:0::2 @localhost
Vamos configurar agora nosso domínio autoritativo remontti.net.br.
Para ficar organizado vou criar a pasta master também.
# mkdir /etc/bind/master # chown bind. -R /etc/bind/master
Criamos então nosso arquivo remontti.net.br.hosts na pasta master.
# vim /etc/bind/master/remontti.net.br.hosts
$ORIGIN .
$TTL 86400 ; 1 day
remontti.net.br IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
A 250.250.0.4
AAAA 2000:fff:250:250:0::4
MX 20 mail.remontti.net.br.
TXT "v=spf1 a mx -all"
SPF "v=spf1 a mx -all"
$ORIGIN remontti.net.br.
$TTL 10800 ; 3 hours
rev-250-250-0-000 A 250.250.0.0
router-gw A 250.250.0.1
AAAA 2000:fff:250:250:0::1
ns1 A 250.250.0.2
AAAA 2000:fff:250:250:0::2
hostmaster A 250.250.0.2
AAAA 2000:fff:250:250:0::2
ns2 A 250.250.0.3
AAAA 2000:fff:250:250:0::3
www A 250.250.0.4
AAAA 2000:fff:250:250:0::4
ipv6 AAAA 2000:fff:250:250:0::4
ftp A 250.250.0.4
AAAA 2000:fff:250:250:0::4
zabbix A 250.250.0.5
AAAA 2000:fff:250:250:0::5
mail A 250.250.0.6
AAAA 2000:fff:250:250:0::6
imap A 250.250.0.6
AAAA 2000:fff:250:250:0::6
pop A 250.250.0.6
AAAA 2000:fff:250:250:0::6
smtp A 250.250.0.6
AAAA 2000:fff:250:250:0::6
ns3 A 250.250.0.7
AAAA 2000:fff:250:250:0::7
250-250-0-8 A 250.250.0.8
250-250-0-9 A 250.250.0.9
250-250-0-10 A 250.250.0.10
;[...]
;[...]
; complete com toda a faixa do seu bloco
; no nosso exemplo 250.250.0.0/23
;[...]
;[...]
250-250-0-254 A 250.250.0.254
250-250-0-255 A 250.250.0.255
250-250-1-0 A 250.250.1.0
250-250-1-1 A 250.250.1.1
;[...]
;[...]
250-250-1-254 A 250.250.1.254
250-250-1-255 A 250.250.1.255
; final
Usando GENERATE:
$ORIGIN .
$TTL 86400 ; 1 day
remontti.net.br IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2017010100 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.remontti.net.br.
NS ns2.remontti.net.br.
A 250.250.0.4
AAAA 2000:fff:250:250:0::4
MX 20 mail.remontti.net.br.
TXT "v=spf1 a mx -all"
SPF "v=spf1 a mx -all"
$ORIGIN remontti.net.br.
$TTL 10800 ; 3 hours
250-250-0-0 A 250.250.0.0
router-gw A 250.250.0.1
AAAA 2000:fff:250:250:0::1
ns1 A 250.250.0.2
AAAA 2000:fff:250:250:0::2
hostmaster A 250.250.0.2
AAAA 2000:fff:250:250:0::2
ns2 A 250.250.0.3
AAAA 2000:fff:250:250:0::3
www A 250.250.0.4
AAAA 2000:fff:250:250:0::4
ipv6 AAAA 2000:fff:250:250:0::4
ftp A 250.250.0.4
AAAA 2000:fff:250:250:0::4
zabbix A 250.250.0.5
AAAA 2000:fff:250:250:0::5
mail A 250.250.0.6
AAAA 2000:fff:250:250:0::6
imap A 250.250.0.6
AAAA 2000:fff:250:250:0::6
pop A 250.250.0.6
AAAA 2000:fff:250:250:0::6
smtp A 250.250.0.6
AAAA 2000:fff:250:250:0::6
ns3 A 250.250.0.7
AAAA 2000:fff:250:250:0::7
; Os gerados auto
$ORIGIN remontti.net.br.
$GENERATE 8-255 250-250-0-$ A 250.250.0.$
; Os gerados auto
$ORIGIN remontti.net.br.
$GENERATE 8-255 250-250-1-$ A 250.250.1.$
Criamos uma zone para nosso dominio remontti.net.br em named.conf.local
# vim /etc/bind/named.conf.local
Adicione ao final do arquivo:
// Zonas Master
zone "remontti.net.br" IN {
type master;
file "/etc/bind/master/remontti.net.br.hosts";
};
Restart o serviço.
# /etc/init.d/bind9 restart
Testamos agora para ver se está resolvendo nosso nomes
# dig ANY ns1.remontti.net.br @localhost # host remontti.net.br
Parabéns! Seu servidor master está pronto!
INSTALAÇÃO SERVIDOR DNS SLAVE (NS2)
Praticamente o processo se repete, com algumas alterações.
# apt install bind9 dnsutils
Alterar o DNS do servidor:
# vim /etc/resolv.conf
Altere para:
nameserver 127.0.0.1
search localhost
Criamos um backup do named.conf.options
# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bkp
No named.conf.options unica coisa que vai alterar é em allow-transfer, como esse servidor é slave, ele não não tem a necessidade de informar o IP de outro(s) servidores que slaves. Como dito antes, se você não quiser que seu servidor seja recursivo apenas altere allow-recursion e allow-query-cache para localhost.
# vim /etc/bind/named.conf.options
//ACLs (Access Control Lists)
// ACL "permite-recursiva" vão ficar os hosts estão autorizados a fazer consultas
// recursivas através deste servidor.
acl permite-recursiva {
127.0.0.1;
::1;
250.250.0.0/23;
2000:fff::/32;
192.168.0.0/16;
172.16.0.0/12;
10.0.0.0/8;
};
options {
// O diretório de trabalho do servidor
// Quaisquer caminho não informado será tomado como padrão este directório
directory "/var/cache/bind";
//Suporte a DNSSEC
dnssec-enable yes;
dnssec-validation auto;
// Conforme RFC1035
// https://www.ietf.org/rfc/rfc1035.txt
auth-nxdomain no;
// Respondendo para IPv4 e IPv6
// Porta 53 estará aberta para ambos v4 e v6
listen-on { any; };
listen-on-v6 { any; };
// Limitação da taxa de resposta no sistema de nomes de domínio (DNS RRL)
rate-limit {
responses-per-second 15;
window 5;
};
// Melhora o desempenho do servidor, reduzindo os volumes de dados de saída.
// O padrão BIND é (no) não.
minimal-responses yes;
// Especifica quais hosts estão autorizados a fazer consultas recursivas através deste servidor.
// Aqui que você vai informar os IPs da sua rede que você irá permitir consultar os DNS.
allow-recursion {
permite-recursiva;
};
// Endereço estão autorizados a emitir consultas ao cache local,
// sem acesso ao cache local as consultas recursivas são inúteis.
allow-query-cache {
permite-recursiva;
};
// Especifica quais hosts estão autorizados a fazer perguntas DNS comuns.
allow-query { any; };
// Especifica quais hosts estão autorizados a receber transferências de zona a partir do servidor.
// Como esse já é o secundário, vamos deixar como none.
allow-transfer { none; };
// Esta opção faz com que o servidor slave ao fazer a transferência de zonas
// mastes deste servidor nao compile o arquivo, assim no outro servidor o
// arquivo da zona tera um texto "puro"
masterfile-format text;
// Para evitar que vase a versao do Bind, definimos um nome
version "RR DNS Server";
};
IP REVERSO (SLAVE)
Para organizar criamos duas pastas slave-rev para nossos reveros e slave para nossos dominios slave e alteramos as permissões para nosso user bind poder escrever nelas.
# mkdir /etc/bind/slave-rev # mkdir /etc/bind/slave # chown bind. -R /etc/bind/slave*
Não é mais necessário criar os arquivos pois esses serão transferidos do nosso servidor master. Basta informarmos em nossas zonas do arquivo named.conf.local, que serão do tipo (slave) e apontaremos o IP do master para que nosso servidor slave faça a transferência do master.
# vim /etc/bind/named.conf.local
Adicione nele:
// Reverso IPv4
zone "0.250.250.in-addr.arpa" {
type slave;
file "/etc/bind/slave-rev/250.250.0.rev";
masters { 250.250.0.2; };
allow-notify { 250.250.0.2; };
};
zone "1.250.250.in-addr.arpa" {
type slave;
file "/etc/bind/slave-rev/250.250.1.rev";
masters { 250.250.0.2; };
allow-notify { 250.250.0.2; };
};
// Reverso IPv6
zone "f.f.f.0.0.0.0.2.ip6.arpa" {
type slave;
file "/etc/bind/slave-rev/2000.fff.rev";
masters { 2000:fff:250:250:0::2; };
allow-notify { 2000:fff:250:250:0::2; };
};
// Zonas Slave
zone "remontti.net.br" IN {
type slave;
file "/etc/bind/slave/remontti.net.br.hosts";
masters { 250.250.0.2; };
allow-notify { 250.250.0.2; };
};
Restart o serviço e veja se dentro dos diretórios slave e slave-rev os arquivos foram criados.
# /etc/init.d/bind9 restart # ls -lh slave*
Vamos aos testes.
# dig -x 250.250.0.4 @localhost # dig ANY ns1.remontti.net.br @localhost
No nosso cenário temos um servidor de hospedagem nesse terei dois domínios, então também quero que meu servidor slave responda por eles. Para isso basta nos adicionar no nosso arquivo named.conf.local:
# vim /etc/bind/named.conf.local
// Zonas Slave do servidor de Hospedagem
zone "meudominio1.net.br" {
type slave;
file "/etc/bind/slave/meudominio1.com.br.hosts";
masters { 250.250.0.7; };
allow-notify { 250.250.0.7; };
};
zone "meudominio2.net.br" {
type slave;
file "/etc/bind/slave/meudominio2.com.br.hosts";
masters { 250.250.0.7; };
allow-notify { 250.250.0.7; };
};
Restarte o bind e não esqueça que é necessário que seu servidor de hospedagem tenha o IP do seu servidor slave para poder fazer os allow-transfer.
Não esqueça também de alterar nas configurações da sua placa de rede dos seus servidores (dns-nameservers e dns-search).
#
# /etc/network/interfaces
#
auto eth0
iface eth0 inet static
address 186.250.168.14
netmask 255.255.255.224
network 186.250.168.0
broadcast 186.250.168.31
gateway 186.250.168.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1
dns-search localhost
iface eth0 inet6 static
pre-up modprobe ipv6
address 2000:fff:250:250:0::2
netmask 64
gateway 2000:fff:250:250:0::1
DICA DE SEGURANÇA:
As consultas recursivas são fechada para outros IPs que não esteja na sua ACL permetidos, porém esses IPs tem resposta com negação. Para visualizar esses logs faça o seguinte:
# vim /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
logging {
channel security_file {
file "/var/log/named/security.log" versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};
};
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Agora crie o diretório que ficarão os logs e de permissão:
# mkdir /var/log/named/ # chown bind. /var/log/named/ # /etc/init.d/bind9 restart
Agora quando alguem não autorizado tentar usar seu DNS sera gerado um log.
Agora vamos a instalação do fail2ban para coloca ordem na casa.
# apt install fail2ban
Vamos habilitar o modulo para começar a proteção, vale lembrar que o modulo SSH já vem ativo por padrão.
Debian 9
#vim /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[named-refused]
enabled = true
Para debian 8 altere as linhas no arquivo /etc/fail2ban/jail.conf.
Se você gosta da coisa “violenta” como eu mude o padrão para DROP!
# vim /etc/fail2ban/action.d/iptables-multiport.conf
Procure:
actionban = -I f2b- 1 -s -j
# Altere para:
actionban = iptables -A INPUT -s -j DROP
actionunban = -D f2b- -s -j
# Altere para:
actionunban = iptables -D INPUT -s -j DROP
Agora reinicie o serviço
# /etc/init.d/fail2ban restart
Os IPs que tiverem tentando usar seu DNS serão avisado 5x depois irão tomar um DROP 😛
Para ver as regras do iptables use:
# iptables -nL
DICA ROOT SERVERS E KEYs ATUALIZADO:
Atualize os root servers ele é a alma do seu servidor. Faça isso tanto nos Master quanto no Slave.
# mv /etc/bind/db.root /etc/bind/db.root.`date +%Y%m%d` # wget https://www.internic.net/domain/named.root -O /etc/bind/db.root --no-check-certificate # mv /etc/bind/bind.keys /etc/bind/bind.keys.`date +%Y%m%d` # wget https://ftp.isc.org/isc/bind9/keys/9.11/bind.keys.v9_11 -O /etc/bind/bind.keys --no-check-certificate # /etc/init.d/bind9 restart
Dica de leitura:
https://pt.wikipedia.org/wiki/Servidor-raiz
NÃO TEM IPv6 CONFIGURADO?:
Se seu servidor não tiver IPv6 configurado recomendo que desative o ipv6 no bind (o que é triste) mas se não tem…
# vim /etc/default/bind9
em OPTIONS=”-u bind” adicione um -4 OPTIONS=”-4 -u bind”
# vim /etc/bind/named.conf.options
listen-on-v6 { any; };
#para:
listen-on-v6 { none; };
FIM! 🙂
Gostou? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também, se preferir acesse o menu Consultoria lá você encontra meios de falar comigo!
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!
Abraço!
Fonte: https://ftp.isc.org/isc/bind/9.9.5/doc/arm/
http://www.zytrax.com/books/dns/ch7/statements.html
EXEMPLOS EXTRAS:
Delegando um bloco menor ex /26 para outros servidor.
Entenda melhor. Assista: https://www.youtube.com/watch?v=VIa1dHtmQ4U (~20min)
Base: rfc2317:
$ORIGIN 2.0.192.in-addr.arpa.
@ IN SOA my-ns.my.domain. hostmaster.my.domain. (...)
;...
; <<0-127>> /25
0/25 NS ns.A.domain.
0/25 NS some.other.name.server.
;
1 CNAME 1.0/25.2.0.192.in-addr.arpa.
2 CNAME 2.0/25.2.0.192.in-addr.arpa.
3 CNAME 3.0/25.2.0.192.in-addr.arpa.
;
; <<128-191>> /26
128/26 NS ns.B.domain.
128/26 NS some.other.name.server.too.
;
129 CNAME 129.128/26.2.0.192.in-addr.arpa.
130 CNAME 130.128/26.2.0.192.in-addr.arpa.
131 CNAME 131.128/26.2.0.192.in-addr.arpa.
;
; <<192-255>> /26
192/26 NS ns.C.domain.
192/26 NS some.other.third.name.server.
;
193 CNAME 193.192/26.2.0.192.in-addr.arpa.
194 CNAME 194.192/26.2.0.192.in-addr.arpa.
195 CNAME 195.192/26.2.0.192.in-addr.arpa.
$ORIGIN 0/25.2.0.192.in-addr.arpa.
@ IN SOA ns.A.domain. hostmaster.A.domain. (...)
@ NS ns.A.domain.
@ NS some.other.name.server.
;
1 PTR host1.A.domain.
2 PTR host2.A.domain.
3 PTR host3.A.domain.
Bom dia,
Gostei muito do material. Realmente é bem completo.
Tenho uma dúvida em relação ao DNS reverso. Hoje eu tenho um DNS autoritativo com uma empresa que hospeda o meu site e eu gostaria de habilitar o DNS reverso em um servidor no meu ambiente. Segui os passos do seu artigo, mas não consegui cadastrar no Registro BR. Sabe dizer se tenho que solicitar alguma mudança no DNS autoritativo?
Boa noite<
No caso de 2 blocos diferentes, como proceder? tipo: 192.168.1.0/24 e 172.16.1.0/24.
comando named-checkzone não funciona debian 10
bash: named-checkzone: comando não encontrado
Não deve ter virado root com
Ola amigo, boa tarde. Estou implantando ele aqui. Mas me deparei com um problema: O recursivo não resolve os endereços. Só quando eu troco no resolv.conf para um dns externo que começa a resolver. E, olho nos logs, aparentemente tudo normal:
Dec 5 12:10:26 ns1 named[2831]: zone 0.in-addr.arpa/IN: sending notifies (serial 1)
Dec 5 12:10:26 ns1 named[2831]: zone 255.in-addr.arpa/IN: sending notifies (serial 1)
Dec 5 12:10:26 ns1 named[2831]: zone 127.in-addr.arpa/IN: sending notifies (serial 1)
Dec 5 12:10:26 ns1 named[2831]: zone localhost/IN: sending notifies (serial 2)
Dec 5 12:10:47 ns1 named[2831]: resolver priming query complete
Dec 5 12:15:12 ns1 named[2831]: resolver priming query complete
Dec 5 12:15:22 ns1 named[2831]: resolver priming query complete
Como eu poderia fazer no caso de gerar automático do 8 ao 55 ai ter do 56 a 60 estáticos por exemplo e depois gerar automaticamente de novo, há essa possibilidade?
ola parabéns pelo seu trabalho, são poucas pessoas que pensam como vc e nos ajuda e muito com essa maravilhosa colaboração, gostaria de tirar uma duvida no velocímetro n esta aparecendo o nome da empresa, como consigo fazer pra aparecer?
Veja se no maxmind seus dados estão corretos: https://www.maxmind.com/en/geoip-demo
Bom dia, Rudimar !!….Parabéns pelo seu material é de muita Qualidade e de muita ajuda em Disponibiliza-lo !!…Rudimar por favor apenas uma questão , por favor ? ..Eu gostaria de saber como eu Configuro meu DNS recursivo para responder internamente na minha LAN consultas, onde, eu gostaria que ele apontasse todas as consultas para um IP só (do meu roteador 192.168.0.1,quero 2 gateway na minha rede) ??…..Muito obrigado e forte abraço desde já meu muito obrigado !!…..
response-policy
Bom dia Rudimar, amigo so uma duvida. ao criar um servidor dns seguindo o tutorial eu posso usar o mesmo para meus domínios ou domínios de clientes, por exemplo dns1.elmofilho.com.br, esse dns eu poderia usar como servidor de dns no meu dominio registrado no registro br ?
desde já agradeço e parabéns pela didática e pelo conteúdo do blog
Valeu!
Sim, pode cadastrar quantos domínios (zonas) quiser.
Excelente, era justamente o que eu estava precisando.
Muito obrigado ao autor do post.
depois dos DNS master e slave configurados, se eu fizer a edição alguma entrada no master ele replica no slave automaticamente? se sim com que frequência isso acontece?
Sim replica para o slave desde que vc altere o serial no master e restarte o bind no master.
Boa noite,
Muito bom o material, parabéns e obrigado por disponibilizar de 0800 para todos.
uma pergunta: tem como eu deixar o master e o slave no mesmo servidor ou tem de ser em maquinas separadas?
Obrigado, sim vc pode deixar no mesmo servidor, porém vai ter q adicionar 2 ips no mesmo servidor.
Parabéns amigo, tutorial top! Estou tendo um problema, acredito que seja da configuração da máquina (Debian 9). Quando eu retiro o dns do resolv.conf e coloco localhost ele para de resolver, quando eu coloco um DNS qualquer, ele resolve como o DNS colocado.
No caso seu bind deve esta com algum erro, configurado sem permissões para localhost, ideal é vc verificar nos logs, e ver se o servico do bind esta rodando.
Bom dia, primeiramente parabéns pelo trabalho 🙂 esse domínio vai aparecer nos velocímetros exemplo: ookla? meu domínio no bind9 pode ser só uma nome sem .com.br exemple: REMONTTI?
Vai pegar o nome do servidor reverso em muitos serviços, o ookla se não me engano pega dados do nome do AS ou das base de geolocalização. Verifique em https://www.maxmind.com/en/geoip-demo
Oq aparece em ISP, vc pode solicitar a correção no menu suporte.
Muito bom esse post, saberia dizer se para a zona reversa do ipv6, tem como eu usar o recurso $ GENERATE $ igual ao ipv4?
Sim, porem não para gerar milhares de combinações. ex:
Rudimar, ja viu o https://pi-hole.net.
Nossa instalei ele no Ubuntu muito TOP, estou apanhando pra implementar ele com o bind em vez de FTL do pi-hole.
Você ja viu ele?
Não recomento uso do ubuntu! Ele não usa um repositório muito estável (é quase um tiro no pé). Quanto ao FTLDNS não cheguei a testar.
Parabéns amigo pelo Post, mt show. Amigo configurei aqui porém está ignorando a zona reversa.
/etc/bind/reverse/45.174.0.rev:6: ignoring out-of-zone data (0.174.45.in-addr.arpa)
segue parte da conf
$ORIGIN .
$TTL 86400 ; 1 day
0.174.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
2019040500 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.infinitynt.com.br.
NS ns2.infinitynt.com.br.
$ORIGIN 0.174.45.in-addr.arpa.
0 PTR 0-0-174-45.infinitynt.com.br.
1 PTR 1-0-174-45.infinitynt.com.br.
2 PTR 2-0-174-45.infinitynt.com.br.
3 PTR 3-0-174-45.infinitynt.com
sabe oq pode ser? dez de já agradeço
/etc/bind/reverse/45.174.0.rev:6 esse 6 ai quer dizer a linha do erro. eu nao sei ql seria essa linha, mas veja q vc deixou o remontti.net….
Olá, Rudimar.
Primeiramente, gostaria de agradecer por compartilhar os seus conhecimentos. Conteúdo muito bom!
Não sei se vc consegue me ajudar, muitos menos, se eu consigo exemplificar uma dificuldade que estou tento para criar a minha zona DNS dentro do CWP 7.
Contratei uma VPS da OVH.
instalei o CWP7, onde o bind já vem nativo.
dentro do painel do centos já vem apontando o ns1.centos.exemplo.com. Alterei para o meu dominio e ele cria a “seguinte” zona automaticamente.
; Zone file for meudominio.com.br
$TTL 14400
@ 86400 IN SOA ns1.centos.exemplo.com. meu.email.com. (
2019040457 ; serial, todays date+todays
3600 ; refresh, seconds
7200 ; retry, seconds
1209600 ; expire, seconds
86400 ) ; minimum, seconds
@ 86400 IN NS ns1.centos.exemplo.com.
@ 86400 IN NS ns2.centos.exemplo.com.
Coloquei meu dominio.com.br dentro do painel do cliente da ovh. Lá ele cria automaticamente outra Zona.
$TTL 3600
@ IN SOA dns.ovh.exemplo.com. tech.ovh.exemplo.com. (2019040400 86400 3600 3600000 60)
3600 IN NS dns.ovh.exemplo.com..
3600 IN NS dns2.ovh.exemplo.com..
3600 IN A 111.000.00.0
600 IN TXT “1|www.meudominio.com.br”
ftp 3600 IN CNAME meudominio.com.br.
mail 3600 IN CNAME ssl0.exemplo.com.
Eles me forneceram um IP referente ao servidor da VPS. 222.000.00.0
No exemplo da zona do dns criado pelo painel da ovh, o IP é 111.000.00.0
Minha dúvida é como juntar isso tudo em uma Zona DNs só e, principalmente, como criar a zona reversa com todas essas informações.
Peço desculpas se não consegui explicar direito, não sou um profissional da área. Mas se consegui, seria muito bem-vinda uma orientação.
Desde já, agradeço.
Um abraço.
Não sei se entendi muito bem, mas vc precisa ser donos dos ips para fazer o reverso, eles precisam estar delegado para vc/seu servidor e vc fazer a configuracao do mesmo, no fina do tutorial tem um ex, de como o dono do ip teria q fazer.
Primeiramente, te agradeço pelo retorno.
Sim, eles me delegaram o ip e um reverso… no exemplo citei o IP 222.000.00.0… “esse” veio no email com o acesso root.
Seus exemplo foram baseados no Debian e a minha “licença” foi adquirida com o CentOS… o Bind instalado no CWP não contem os mesmos caminhos e arquivos… por exemplo: etc/bind/named.conf.options, não existe.
Se eu instalar somente o bind, perco o CWP e vise e versa…crio conflito.
Como comentei anteriormente, sem ver, realmente é difícil…rsrs.
Vou repassar novamente seguindo as suas orientações e pesquisar mais sobre o assunto. Realmente tentar entender o conceito como um todo.
Muito obrigado.
Grande abraço
Tudo muito bem detalhado, obrigado por compartilhar seu conhecimento Remontti!!! tem alguma dica do que possa estar ocorrendo: fiz todo o procedimento conforme o tutorial e testes internamente na rede e utilizando o servidor responde normalmente o reverso,posteriormente foi publicado os servidores no REGISTRO BR sem erros acusados na pagina, mas já faz 2 dias da publicação no registro, porém quando faço testes de outro local na internet para ver meu reverso de alguns de meus ips os mesmos não retornam o nome do host, tem idéia do que possa ser?
Verifica no maxmind como esta sua geolocalização: https://www.maxmind.com/en/geoip-demo
Teste alguns ips, se tiver faltando dados solicite atualização em https://support.maxmind.com/geoip-data-correction-request/
Vai demorar ~ 1 mês
Grande aula essa .
meu amigo segui todos os seus passos e depois de alguns dias estou recebendo esse tipo de mensagem quando eu fico monitorando os logs
“36405 (x25.txhfazji.com): rate limit drop NXDOMAIN response to ( ip x.x.x.x )
“36395 (x27.imttkypo.com): rate limit slip NXDOMAIN response to ( ip x.x.x.x )
estou usando DNS como recursivo apenas para minha rede interna porém é muita log que sobe , estava lendo sobre e acredito que possa ser um DDoS vindo do cliente ou a maquina dele virou um botnet
Se vc estiver fazendo NAT/CGNAT e compartilhando o mesmo ip com vários, pode abrir muitas conexões, se for isso comente as linhas:
Primeiramente vlw pelo ótimo tutorial, mas estou tendo problemas, tenho um servidor cloud da uol com 1 ip público, confuso na parte dos blocos de ip, não entendi essa parte, queria saber como faço para descobrir o bloco de ip
“descobrir o bloco de ip” Como assim?
Parabéns, Rudimar. Teu tutorial ficou perfeito. Super completo. Só precisei seguir os passos e o DNS está funcionando perfeitamente. Obrigado mesmo.
Olá, parabéns pelo seu Blog! Muito bom.
Meu cenário é o seguinte. Compro link dedicado de uma empresa e recebo apenas 1 IP público e este não está designado à minha empresa no registro.br. Tenho um DNS server unbound na minha rede trabalhando de forma recursiva. Existe alguma forma de, considerando meu cenário, eu conseguir fazer com que o nome da minha empresa apareça nos sites de teste de velocidade?
Sua operadora precisa pelo menos designar um /29 para vc montar seus dois dns, e eles apontarem para q o reverso desse /29 esta nos ips seus.
Parabéns pelo blog, estava procurando algo do tipo e seu blog me parece bem organizado.
Vou tentar replicar o seu ambiente.
🙂
Muito Fera, muito solícito, colocou meu server em ordem e ainda de quebra configurou no registro br. Muito Obrigado Rudimar.
Ótimo post, deixo meus parabéns pela iniciativa. Com atenção, seguindo cada passo, não ha erro.
Amigo, muito obrigado pelo belíssimo passo-a-passo. Eu ia contratar um servidor DNS pago, mas acho que sua ajuda vai solucionar meus problemas… aqui, eu instalei só o Recursivo por enquanto.
Se possível me tirar uma dúvida… tem alguma forma de eu ver o quanto o DNS está sendo usado?
Pode usar o statistics-channels
Depois acesse: http://IP-SERVIDOR:8053/
Com um bom estudo vc pode usar statistics-channels para integrar com zabbix, monitorix e ter belos gráficos…
Olá Rudimar, estou com um problema, acredito que seja alguma configuração de qui fiz de forma incorreta, quando desativo o Recursivo o Reverso também para de funcionar, poderia me dar uma luz? hehehe
Sua colocação ficou meio confusa rsrsr
Quando eu coloco em allow recursion e allow query cache apenas localhost, o meu servidor para de funcionar
Tente:
Mais uma duvida, eu tive meus dois servidores adicionados a uma blacklist por conta de uma má configuração de serviço de email, porem eu não tenho servidor de email, saberia me dizer como posso evitar isso? Desde já agradeço.
Alguma coisa fez eles cair na black, solicite a remoção. E se esta tudo ok, não vai mais cair. Não tem receita milagrosa para esse caso.
Mesmo com essa configuração não obtive sucesso.
allow-recursion {
127.0.0.1;
::1;
localhost;
};
allow-query-cache {
127.0.0.1;
::1;
localhost;
};
Teria mais algo pra alterar?
Só olhando para te dizer algo, pois o erro pode estar ligado a outra coisa…
Olá Rudimar, como faço para que o Registro.br leia o meu reverso? É como se ele nao lesse o dns1.eitelecom.com.br
Você precisa configurar o autoritativo antes no registro br, para depois fazer a delegação do reverso. (Todo mundo erra nessa hehehe)
Boa tarde Rudimar, estou com problema no meu servidor, na resolução de paginas esta dando erro de NXDOMAIN, saberia me dizer onde pode ser que eu tenha errado, para estar apresentando este erro? Desde já agradeço
Pode ser muita coisa, recomendo olhar nos logs, normalmente é dito a linha do erro e outros detalhes…
Boa noite, Marcos.
Verifique se você não declarou nxdomains 2 vezes no named.conf.options
Ótimo tutorial, o mais completo que achei. Porém tenho uma dúvida, hoje tomei a frente de um ISP que estava abandonado pelo antigo administrador, o mesmo não configurou os reversos para o bloco de IP do provedor e o recursivo apresentou falhas e tive que desativar. A pergunta é a seguinte, tenho um servidor Dell 2950, estou pensando em subir um promox nele e dividir em 4 servidores (4x400gb, 4 cores e 4 giga de ram para cada) 1 recursivo, 2 reversos e 1 win7lite, dessa maneira funcionária corretamente?
Vai depender do que for rodar em cada VM, mas tem pouca RAM. Mas o bind 1gb da conta se nao for muitas consultas.
Rudimar Remontti, bom dia
Antes, quero parabenizá-lo pelo excelente trabalho, estou querendo montar um DNS autoritativo, reverso em dns cache na mesma maquina, isso e possível? como?, eu ja tenho o DNS cache funcionando inclusive aplique alguma o fail2ban como vc menciona acima e tb fiz alguns bloqueio no iptables seguinto este link:(https://www.vultr.com/docs/how-to-setup-fail2ban-on-debian-9-stretch e https://www.logcg.com/en/archives/1681.html), pois nao consegui utilizar sua regra do fail2ban.
Abaixo segue minhas configurações, não sou nenhum especialista, então fique a vontade para sugerir melhorias na conf como na segurança, nos outros comentários vi que vc não aconselha utilizar Forwarders, pq? eu achei que ele somava no bind no meu caso com chave, pq toda vez que reiniciamos o bind9 o cache zera?, exite uma manira de não zera?, exite algum site online que possa testa todo meu DNS tanto nas config como segurança?
Obrigado,
# vi /etc/bind/named.conf.options
// ACLs (Access Control Lists)
// ACL “permite-recursiva” vão ficar os hosts estao autorizado a fazer
// consultas recursivas atraves deste servidor.
acl permite-recursiva {
170.xxx.xxx.xxx/22;
10.0.254.0/24;
localhost;
localnets;
};
// ACL “tranf-secundarios” serao os hosts que estao autorizados a receber
// transferencias de zona a partir do servidor.
#acl tranf-secundarios {
# xxx.xxx.xxx.xxx;
#};
options {
directory “/var/cache/bind”;
managed-keys-directory “/var/cache/bind/dynamic”;
auth-nxdomain no;
listen-on-v6 { none; };
listen-on { permite-recursiva; };
allow-query { any; };
recursion yes;
forwarders {
// DNS Cloudflare
1.1.1.1;
1.0.0.1;
// Google servers
8.8.8.8;
8.8.4.4;
// Gtei Level3
4.2.2.1;
4.2.2.2;
4.2.2.3;
4.2.2.4;
4.2.2.5;
4.2.2.6;
209.244.0.3;
209.244.0.4;
// GigaDNS
189.38.95.95;
189.38.95.96;
//Opendns
208.67.222.222;
208.67.222.220;
//DNS watch
84.200.69.80;
84.200.70.40;
};
// Limita o uso da memoria RAM
datasize 256M;
version “Nao Disponivel”;
### DNSSEC ###
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
rate-limit {
ipv4-prefix-length 32;
window 10;
responses-per-second 25;
errors-per-second 5;
nxdomains-per-second 5;
slip 2;
};
};
#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 query_log {
file “/var/log/security.log” versions 3 size 30m;
severity info;
print-time yes;
};
category default {
query_log;
};
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; };
};
Forwarders só vai encaminhar, seu servidor só é uma ponte. É natural o cache esvaziar quando reiniciar o serviço. dnssec-enable é obrigatoriamente estar ativo para conversar com os roots servers… Precisaria ajustes melhores…
forward
forward ( only | first );
forward is only relevant in conjunction with a valid forwarders statement. If set to ‘only’ the server will only forward queries, if set to ‘first’ (default) it will send the queries to the forwarder and if not answered will attempt to answer the query. This statement may be used in a zone, view or a global options clause.
forwarders
forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; … ] };
forwarders { 10.2.3.4; 192.168.2.5; };
forwarders defines a list of IP address(es) (and optional port numbers) to which queries will be forwarded. Only relevant when used with the related forward statement. This statement may be used in a zone, view or a global options clause.
Boa tarde, Rudimar.
Seu blog é muito legal parabéns pelo conteúdo e organização.
Gostaria de configurar meus servidores DNS da seguinte maneira:
NS1 (Master) este cara seria o Reverso e o Autoritativo.
NS2 (Slave) este cara iria trabalhar apenas como Reverso.
Como efetuo a configuração para funcionar corretamente?
Aguardo seu retorno
Só seguir o tutorial, ou me contratar hehehe!
Passa seu contato ai por favor.
https://blog.remontti.com.br/meucontato
Bom dia; parabéns pelo conteúdo, muito bem produzido e de extrema utilidade, se puder me ajudar em mais uma questão, fiz a configuração do DNS Reverso porem quando dou o comando: dig -x iP @localhost, ele da o seguinte erro: connection timed out; no servers could be reached. saberia me dizer a causa desse erro?
Tente colocar o ips que vc usou na ACL direto na string { } em vez de usar o nome da ACL .
Tive alguns relatos com este mesmo erro, e a solução foi esta, pelo que percebi “belo” windows+putty a levando algum carácter do capeta que faz ele não entender a ACL.
Fiz o procedimento, mas o erro persiste.
Então tem alguma outra coisa errada rsrsrs, as vezes é um simples ponto virgual… Verifica nos logs se ele não esta dizendo qual a linha esta o erro, veja sei o bind esta rodando usando /etc/init.d/bind9 status
Qual quer coisa presto consultoria, só chamar pelas redes sociais ou pelo telegram @remontti
Boa noite gustavo
Tente checar os arquivos de configuração:
named-checkconf /etc/bind/named.conf.local
named-checkconf /etc/bind/named.conf.options
named-checkconf /etc/bind/arquivo_do_reverso
etc..
e ainda faça check das zonas:
named-checkzone seudominio.com.br /etc/bind/arquivo.do.seudominio.com.br
etc..
Primeiramente parabéns pelas dicas com bind! Adaptei o seu exemplo para a minha realidade e dentro da rede funcionou perfeitamente. Agora quando tento acessar de fora da empresa, um domínio que está hospedado no servidor, simplesmente não funciona. Eu utilizo um domínio válido, registrado no registro.br. (Apontei os DNS master e slave também no registro.br mas mesmo assim não funciona) Você poderia me ajudar???
Deve estar relacionado a seu roteamento esse problema, já que localmente funciona, veja se não tem nenhuma regra de firewall…
Boa tarde,
Primeiro gostaria de agradecer pelo post, muito bom.
Mais estou tendo um problema, na parte da edição do vim /etc/bind/named.conf.options.
Eu substitui o conteúdo, pelo descrito no site, porém a resolução de nomes não funciona no próprio servidor.
Eu substitui o meu bloco de ips pelo seu. Você tem algum comando que possa testar o named.conf.options?
Olhe nos logs do sistema /var/log/syslog se tiver erro vai dizer lá.
Boa tarde,
Subir os meus servidores DNS reverso já tem uns dias e hoje recebir um email informando sobre Alerta: servico mDNS habilitado, como posso fazer pra resolver esse problema.
Desde já grato pela a atenção.
Você deve ter configurado o recursivo errado, deixando aberto. Ou esta usando o tutorial em cima de uma distribuição q não é o debian.
Bom dia, ótimo tuto parabéns, uma duvida o servidor dns diminui o ping? configurei aqui mas se usar dig ele da 0ms e se uso ping ele da o mesmo tempo que um dns publico, exemplo ping http://www.google.com é isso mesmo ou falta alguma coisa?
Não diminui. Mas com base na geolocalização do seu IP, a resolução de nomes poderá ser feita por hosts mais próximos da localização sua.
Pessoal me tire uma duvida, vejo muitos falarem que não é para utilizar o dns publico na empresa por motivos de segurança, no caso é para configurar um servidor de dns na empresa para resolver os hostnames externos, eu utilizo no resolv.conf o dns da google 8.8.8.8, mas gostaria de saber quando eu configurar o bind para ser meu servidor dns ele resolveria os nomes locais e nomes externos ele resolveria como?, pois para resolver os nomes externos tenho que colocar o opção abaixo, não seria a mesma coisa eu colocando no resolv.conf de qualquer forma ele não encaminharia para o dns da google?
forwarders {
8.8.8.8;
208.67.222.222;
};
A principal vantagem que você terá um tempo de resposta baixo (recursivo). Quanto a segurança vejo muita gente fazendo servidor de DNS e fazendo tudo errado, deixando recursivo aberto, usando distribuições que usam pacotes instáveis cheio de vulnerabilidade (quanto a isso o debian sempre vai estar na frente quando se fala em pacotes seguros. total seguro? não! mas com certeza vai e relação a outras distros) e ai a segurança já era, melhor vc usar um dns publico.
Usar forwarders? NÃO! Se é pra montar um servidor com forwarders melhor continue então usando dns publico!
“Monte um servidor DNS de verdade!” Se precisar consultoria entre em contato pelo telegram @remontti
Antes de tudo entenda com um DNS funciona:
-> https://www.youtube.com/watch?v=ACGuo26MswI
-> https://www.youtube.com/watch?v=epWv0-eqRMw
Aguém tem exemplo de GENERATE pra PTR do ipv6?
Não tem.
Boa tarde Rudimar, belo post, estou seguindo seu tutu para a montagem de um server DNS recursivo e autoritativo, porem empaquei na hora de dar um dig -x X.X.XX @localhost, ele esta me retonando a segunte mensagem (; <> DiG 9.10.3-P4-Debian <> -x 179.106.3.4 @localhost ;; global options: +cmd ;; connection timed out; no servers could be reached), ja revisei todos tudo mas não estou passando dai, porem se eu colocar DNS 8.8.8.8 ele me retorna o resultado do DIG mas não faz consulta locar como quero, você teria alguma ideia do que poderia ser ?
Chama la no telegram!
Segui todas as configurações, testei outras mas sempre me retorna o Answer 0….
Não estou conseguindo configurar o Reverso e Autoritativo, poderia me dar alguma ajuda??
Resolvido pelo telegram! 😉
Em uma caso que a rede esta em OSPF e os servidores estão em /30, como ficaria nesse caso a configuração dos arquivos do reverso
;;;;;;;;;;;;;;;;;;;;;;;
;;;; 100.200.0.rev ;;;;
;;;;;;;;;;;;;;;;;;;;;;;
$ORIGIN .
$TTL 86400 ; 1 day
0.200.100.in-addr.arpa IN SOA ns1.exemplo.com.br. hostmaster.exemplo.com.br. (
2018010300 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
2419200 ; expire (4 weeks)
300 ; minimum (5 minutes)
)
NS ns1.exemplo.com.br.
NS ns2.exemplo.com.br.
$ORIGIN 0.200.100.in-addr.arpa.
0 PTR 100-200-0-000.exemplo.com.br.
21 PTR ns1.exemplo.com.br.
25 PTR ns2.exemplo.com.br.
29 PTR zabbix.exemplo.com.br.
33 PTR radius.exemplo.com.br.
; Os gerados auto
$ORIGIN 0.250.250.in-addr.arpa.
$GENERATE 50-255 $ PTR 250-250-0-$.exemplo.com.br.
Não entendi… no caso vc tem uma rede menor que /24? OSPF ta usando ip valido? Ta confuso heheheh qlqr coisa chama no telegram.
Exemplo: Tenho um /22 que são 4 /24, seperai um desses /24 para colocar meus servidores, e coloco /30 em cada um deles.
Borda BGP 192.168.0.1/30 DNS1 192.168.0.2/30
.5/30 DNS2 192.168.0.6/30
.8/30 Zabix 192.168.0.9/30
Não segue uma sequencia, 1,2,3,4 entende?
A sequencia é 2,6,9.
Desculpe, comecei a estudar o assunto agora e me surgiu essa duvida. 😀
Vc da os nomes normalmente, vc so quebra uma unica vez os /24, os menores vc nao precisa quebrar, vc declara tudo no arquivo do /24. Dica pq vc nao quebrou para os servidores um bloco maior? /30 vc ta perdendo 3 ips por servidores… reveja ai rsrsrs
Deu certo aqui amigo, é só pular de 4 em 4 até chegar no host e depois usar o generate, obrigado, otimo post
Como você conseguiu fazer ai cara? Estou com o mesmo problema mas não entendi seu raciocínio.
Poderia me ajudar?
Parabéns Cara.. Excelente seu tutorial.. Ajuda muito nós iniciantes..
Este é o melhor procedimento para configuração de servidor DNS! Sempre recorro a esta página para seguir o procedimento e configurar corretamente um servidor DNS completo!
Na hora que vc deixa ( […] complete com todos os IPs/Nomes ) preciso declarar todos os ips ? , pois no meu bloco de Ips possuem 1024 ips que seriam /22, teria que declarar 1024 ips? pq isso provavelmente levaria horas , não ah uma maneira de declarar apenas uma vez um bloco inteiro? obg
Sim, logo em seguida tem um modelo como usar GENERATE.
Ola amigo como vai, em como eu faço para atualizar meu Bind9 e manter ele sempre atualizado?
Parabens pelo trabalho
Uma vez por semana rode os comandos, alem do Bind existem atualizações do sistema…
# apt update
# apt upgrade
Opa, ola amigo sigo seu blog deixa eu tirar uma duvida, o bind 9 como faz para atualizar ele e manter sempre as verçoes mais recente , ex. dia 11 teve a atualização das chaves DNSsec , sera que ele atualizou altomaticamante, se nao, como faz ?
fico no agrardo grande abraço OTIMO trabalho.
Fiz uma atualização no post antes do dia 11 deixando redondinho para trab com dnssec nas consultas com os servidores raizez. Para mantes atualizado basta apt update/upgrade.
Olá,
Grato pela conteúdo, fiz aqui deu tudo certo!
Mais com meu link cair o registro.br me aviso que não vai anunciar mais por com de perda de comunição!
Contratei uma VPS, como ficaria um exemplo de configuração com DNS fora da rede?
Da mesma forma… só precisa entender a topologia da rede… Falamos pelo telegram
Ola, amigo!
parabens pelo blog, e por este tutorial de excelente qualidade!
bom… estou configurando o bind9 aqui, numa vps debian, seguindo seu tutorial… fiz tudo conforme prescrito, mas nao consegui alterar o dns, para o dns do proprio servidor… e ao fazer um teste, vejo que e nao esta funcionando as zonas autoritativas, so funciona resursivo….
queria saber, portanto, se e’ obrigatorio alterar o dns, para o dns do proprio servidor, para que esta funcionalidade de certo, ou senao, se pode esta ocorrendo outro problema…
tento alterar o dns pelo /etc/resolv.conf, mas quando reinicio a maquina, nao surti efeito; volta as configuracoes anteriores, com o dns que ja estava anteriormente, o dns do proprio servidor… e se altero o dns pelo arquivo /etc/network/interfaces quando reinicio, nao consigo me conectar mais ao vps via ssh, dai tenho que formatar o servidor, para poder voltar e fazer tudo do zero…
Ja conferi as configuracoes do bind, mas aparentemente esta tudo OK…
entao, tenho esta duvida, se e’ mesmo obrigatorio alterar o dns, para que o servidor use seu proprio dns, e se for pelo mais dicas para faze-lo… ou entao, o que mais poderia ser o problema?
bom, queria contar com tua ajuda, e aguardo anciosamente por sua resposta…
cumprimentos,
Douglas de Souza
Ola, Rudimar! Tudo certo?
Bom, primeiramente gostaria de parabeniza-lo pelo seu blog, que tem um conteudo aprofundado e bem elaborado; que o faz se diferenciar de muitos outros blogs com informacoes superficiais, que vemos por ai.
Mas entao, meu caro….acontece que estou com um problema aqui no para configurar o bind9 e queria ver se pode me ajudar…
Acontece que gostaria de deixar o bind9 funcionando como um DNS recursivo aberto, e ter acesso a logs com todos os sites acessados… Eu fiz as configuracoes do seu tutorial, deixando o rescursivo habilidado no arquivo de opcoes, mas dai o DNS funcionou apenas em paginas que tenho autoridade, paginas em geral so fica carregando e nao funciona…
Mas ai fico a entender, que isto pode ser, porque o DNS autoritativo nao pode ser acessado senao por maquinas especificadas na configuracao, seria isto? Mas ai, depois formatei o VPS, e fiz tudo do zero, apenas instalando o bind9, sem fazer configuracoes de dns autoritativo, que tem uma parte no inicio do seu tutorial, que voce diz que ja esta funcionando recursivo, mas ao testar vi que mesmo assim nao funciona de forma recursiva… Ja ate mesmo desativei o iptables e o ufw, para descartar a possibilidade de firewall estar bloqueando alguma porta. E ja testei em duas VPSs diferentes e nao deu certo. Estou fazendo no Ubuntu 16.04…
Enfim, no que poder me ajudar, ficarei muito grato… Ja coloquei seu blog como favorito e estarei acompanhando o mesmo frequentemente…
Desde ja agradeco…
E um forte abraco!
Para deixar ele recursivo aberto, basta vc instalar o bind9, é por no named.cond.options
allow-recursion { any; };
allow-query-cache { any; };
allow-query { any; };
Mas tenha em mente que seu DNS vai virar escravo dos chinês/russo 🙂
Não sei ql a finalidade… Mas tá aí sua solução.
Aehehe! show de bola, meu caro!!! A solucao estava no { any; }; que nao tinha colocado….
Mas agora sim!, desta forma que voce falou deu certo!
E so mais uma coisa… sobre logs, voces saberia me dizer como habilitar…? gostaria de visualizar as paginas acessadas, ips, hora, o que for possivel… . isto para tambem ter algum controle de que chineses e russos nao estao no territorio sem meu concentimento… ahahhahh rsrs
Mais uma vez, muito obrigado! 🙂
Esse tipo de log não que vc quer não. No final do tuto tem sobre o fail2ban vc consegue ver quem esta bloqueado com iptables.
Rudimar, eu nao consigo acessar o editor vim /etc/bind/named.conf.options, pelo terminal o que pode ser?
Ele precisa ser instalado
# apt install vim
// ACL “permite-recursiva” vão ficar os hosts estão autorizados a fazer
// consultas recursivas através deste servidor.
acl permite-recursiva {
127.0.0.1;
::1;
250.250.0.0/23;
2000:fff::/32;
192.168.0.0/16;
172.16.0.0/12;
10.0.0.0/8;
quando uso o allow-recursion permite-recursiva , preciso colocar os ips ou ele pega da acl,
Otimo blog vc está de parabéns
Pega da ACL, pra não ter q ficar repetindo.
ola td bem, quando dei o comando ls -lh slave* não é possivel acessar slave*, outra duvida , quando vc usa a frase entre “” , temos que colocar assim tb correto?
ex // Reverso IPv4
zone “0.250.250.in-addr.arpa” {
type slave;
file “/etc/bind/slave-rev/250.250.0.rev”;
masters { 250.250.0.2; };
allow-notify { 250.250.0.2; }
e parabéns , me ajudou muito
Vc tem q alterar os IPs para os de seu servidor.
ola boa tarde , e parabéns está me ajudando muito só me surgiu uma duvida , que acho que é até boba mas vamos lá
$ORIGIN remontti.net.br.
$TTL 10800 ; 3 hours
250-250-0-0 A 250.250.0.0
esse ip representa o que ?
Representante o nome do ip reverso, vc deve alterar de acordo com o seus IPs.
Grande Rudimar! Seria bom acrescentar em seu post essa nova informação. http://www.telesintese.com.br/melhora-da-seguranca-no-dns-pode-levar-apagao-da-internet/ . Já está 100% com isso fecha nos 110% kkkkk. Abraço
Já está de acordo! 🙂
Muito bom amigo!! Preciso de ajuda pois quando dou um tracert de dentro da minha rede aparece router.gw…. ,as quando dou de fora da rede não aparece.
Você precisa delegar seus blocos no registro.br
como fazer o $GENERATE do ipv6 pra por nome em todos os ips ?
$GENERATE tem pouco a oferecer na geração de endereços reversos IPv6, e é praticamente impossível você gerar reverso de todas as possíveis combinações, isso tb demandaria um alto gasto de hardware do servidor, por isso o recomendado é fazer apenas o reverso dos endereços estáticos.
Rudimar seu blog é demais, este post então nem se fala
so tenho uma duvida, para eu colocar no registro.br apontando para os ips, sempre da tempo esgotado, o que seria?
Valeu!!! 🙂
Verifica se não tem nenhum firewall na frente.
Ou pode ter algum erro.
Verifica: /etc/init.d/bind9 status
Esta dando este log
● bind9.service – BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-08-05 12:17:14 -03; 9s ago
Docs: man:named(8)
Process: 506 ExecStop=/usr/sbin/rndc stop (code=exited, status=1/FAILURE)
Main PID: 584 (named)
Tasks: 7 (limit: 4915)
CGroup: /system.slice/bind9.service
└─584 /usr/sbin/named -f -u bind
Muito bacana seu site. Conteúdo de qualidade, parabéns!
Para a delegação de DNS menores que /24 (256 IP`s), utiliza-se a norma RFC-2317 para delegar. Como seria feito essas configurações? Preciso delegar para um cliente um /27.
Encontrei algo parecido abaixo, más não entendi bem.
Se alguém puderes ajudar, desde já agradeço!
Segue o que encontrei;
ORIGEM $ 32-47.0.168.192.in-addr.arpa.
@ IN SOA ns1.[dominio_ip2]. .[seu_email]. (…)
@ NS ns1.dominio_2.
@ NS ns2.dominio_2.
;
32 PTR host1.dominio_2.
33 PTR host2.dominio_2.
;…
47 PTR host3.dominio_2.
Assista: https://www.youtube.com/watch?v=VIa1dHtmQ4U (~20min)
Veja um ex.:http://www.zytrax.com/books/dns/ch9/reverse.html
Conforme a rfc2317 ficaria:
Rudimar Remontti,
Muito Obrigado, até que em fim consegui fazer funcionar.
É sempre bom contar com pessoas assim como você, humilde e por sua vez com um conhecimento espetacular.
Obrigado de coração, no que precisar estou à disposiçao.
Sou um profissional mais voltado para roteamento, BGP, OSPF, Redes DWDM… No que precisar pode contar comigo.
Obrigado, que bom que conseguiu!!! Abraço.
Parabéns Rudimar, fico top. muito bem explicado. é bom de tempos em tempos que alguém que entenda atualize esse tipo de tutorial. tem vários, mas muito confusos. o seu ficou muito claro. Obrigado!
amigo como fica a questao de delegar /30 para um cliente no registro.br
https://youtu.be/VIa1dHtmQ4U
A interface do registro.br está só mais atualizada, mas a lógica a fica a mesma. Por volta dos ~20min que tem a sua resposta.
Não precisa fazer nenhum apontamento no recursivo para os reversos?
José Eduardo Siqueira Baum
Autoritativo/Reverso são uma coisa. Recursivo outra.
O que você esta querendo fazer?
Se precisar ajuda me chame no telegram @remontti
Desculpe minha ignorância, mas e e eu quisesse separar o recursivo do autoritativo reverso do provedro como ficaria as configurações do recursivo?
José Eduardo S. Baum
No seus autoritativo no arquivo named.local.options vc não permite consultas recursivas:
E no recursivo você informa os blocos de ips da sua rede que podem consultar… Ou use um ACL com o bloco/ips.
Opa , entao eu resouvi de outra maneira ,
Retirando a seguintes linhas
// Evita problemas com pacotes UDP grande com mais de 512-byte
server ::/0 {
edns no;
};
server 0.0.0.0/0 {
edns no;
};
e habilitando o dnssec como vem no padrao do Bind9 9.8 >
//Suporte a DNSSEC
dnssec-validation auto;
E o seguinte site acusa que esta OK
https://dnssec.vs.uni-due.de/
O que teria de Opções para aumentar a Segurança ?
Obrigado.
LUAN:
Bacana! Você fechando as consulta recursivas para apenas sua rede já deixa bem seguro.
Mas se você quiser elevar a segurança você pode instalar o fail2ban e em /etc/fail2ban/jail.conf vc procura pelo bind vai encontrar no próprio arquivo uma “documentação” do que deve ser feito. (Basicamente é colocar o bind gerar logs em um dir para que o fail monitore esses logs) baseado nos erros de reject o fail vai criar regras de firewall (iptables) bloqueando os ips q ficam tentando usar seu dns (por mais q ele nao responda) mas tento um firewall ele vai negar ja a conexão.
Amigo , saberia me informar como habilitar DNSSEC ?
LUAN:
Para habilitar bastar trocar as opções em /etc/bind/named.conf.options dentro de options { }:
Depois utilize os comandos dnssec-*** para criar os arquivos/configurações, e altere em sua zona para os arquivo criado…
Quem sabe não sai em um próximo tuto sobre DNSSEC 🙂
quais seria os comando do dnssec??
Em breve vou montar um tutorial de DNSSEC.
Boa tarde,
Amigo como vai tudo bem ?
Então realizei todos os processos do dns reverso que você posto no seu site, fiquei com uma pequena duvida, como faço dentro do bind pra quando eu digita um site ele automaticamente responder com outro?
Fico muito grato pelo o conteúdo do site Remontti me ajudou bastante fiz os procedimentos e ficou legal. valeu mesmo
Fico muito grato se me ajuda com esse ajuste.
Um forte abraço….
FABIO:
Não compreendi sua duvida:
“Como faço dentro do bind pra quando eu digita um site ele automaticamente responder com outro?”
Se quiser pode me chamar no Telegram @remontti fica mais fácil.
Muito bom,
So um detalhe no meu quando trasnferiu as zonas ela veio toda desformatada do master para o slave o que pode ser.
EDNEI:
Verifica no /etc/bind/named.conf.options se vc tem a opção: masterfile-format text;
Meu caro muito bom o conteúdo, mas se possível gostaria de uma ajuda. No meu caso o slave não cria os arquivos. Dei a permissão chown. Mas não cria. Estou só configurando um Master que está em uma vps e um slave que está em outra. Qual as maiores chances de erro? O master rodou direitinho.
Gilvan Muniz
Verifica se você está autorizando o IP do SLAVE no MASTER. allow-transfer
Veja também se no seu SLAVE você está apontando para o ip do MASTER. No tutorial tinha um erro encontrado pelo Gaspar Poletto, onde esta apontando para o próprio servidor SLAVE.
Um Duvida na configuração dos IP Reverso do Slave, segundo a sua lista de ips o IP 250.250.0.3 é o IP do servidor slave.
Então gostaria de saber se no lugar do 250.250.0.3 no arquivo de configuração do reverso do slave não seria o IP 250.250.0.2?
Gaspar Poletto
Você está certo sim! Acabei informando o IP do slave, no próprio slave heheh, vou corrigir.
Parabéns, muito bem observado.
Excelente tutorial Rudimar, vou configurar uma Ubiquiti EdgePro como servidor DNS e acredito que estas discas serão de grande serventia. Parabéns!
Obrigado Rudimar Remontti! Resolvido com seu exemplo. Mais uma vez parabéns.
Excelente tutorial! Ajudou bastante e adicionei seu site nos favoritos também. Parabéns! Mas tenho uma duvida se eu quiser fazer o reverso de forma automática com alguns IP já cadastrado.
Exemplo:
50.168.192.in-addr.arpa. 86400 IN SOA ns1.teste.com.br. hostmaster.teste.com.br. (
2015070702 ;serial
10800 ;refresh
1800 ;retry
604800 ;expire
86400 ) ;minimum
50.168.192.in-addr.arpa. 86400 IN NS ns1.teste.com.br.
50.168.192.in-addr.arpa. 86400 IN NS ns2.teste.com.br.
1.50.168.192.in-addr.arpa. 86400 IN teste.teste.com.br.
$GENERATE 2-255 $ PTR clientes.192-168-50-$.static.teste.com.br.
Não funciona! Não resolve nem o teste.teste.com.br e nem os dinâmicos gerados pelo GENERATE. Se eu tirar a linha 1.50.168.192.in-addr.arpa. 86400 IN teste.teste.com.br. funciona o GENERATE normal.
Obrigado Alex. Que bom ter ajudado!
Para usar o GENERATE você pode seguir o exemplo abaixo:
Equivale:
3 PTR ns3.teste.com.br.
4 PTR ns4.teste.com.br.
5 PTR ns5.teste.com.br.
[…]
255 PTR ns255.teste.com.br.
Pode ler mais sobre o assunto em: https://ftp.isc.org/isc/bind/9.9.5/doc/arm/Bv9ARM.ch06.html#id2599541
Muto bom cara, já adicionei seu blog nos favoritos, ultimamente estou migrando do Unbound para o Bind por causa de um sevidor Samba DC AD, este tuto me ajudou bastante