Bind DNS - Slave não funciona se acessado de fora

1. Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 22/08/2018 - 16:53h

Olá.
Meu servidor slave DNS está atrás de um pfSense. Nele tenho o bind configurado como slave e o master está fora da rede.
Já liberei tudo no firewall e configurei o bind como acho que está correto, porém ele não retorna o IP se eu pesquiso de fora da rede.

Testes que eu fiz: numa máquina dentro da rede, digitei no cmd nslookup dominio.com.br 10.1.1.15 (IP do slave DNS) e ele me retornou o IP correto.
De fora da rede, ele não retorna IP algum, informando apenas isto:
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

Também já parei o bind e digitei nc -l 53 e fui fora da rede digitando nc ipexterno 53 e funcionou.
Isto significa que o acesso a porta 53 do meu slave DNS está funcionando e (talvez) que o bind também esteja funcionando normalmente.

Alguém tem ideia do que está errado?

named.conf:
options {
listen-on port 53 { 127.0.0.1; 10.1.1.15; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
allow-recursion { 127.0.0.1; };


dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

#zone "." IN {
# type hint;
# file "named.ca";
#};

zone "." IN {
type forward;
forward only;
forwarders { 213.186.33.99; 8.8.8.8; 8.8.4.4; };
};


zone "dominio1.com.br" IN {
type slave;
file "bak.dominio1.com.br";
masterfile-format text;
masters { ipmasterdns; };
};

zone "dominio2.com.br" IN {
type slave;
file "bak.dominio2.com.br";
masterfile-format text;
masters { ipmasterdns; };
};
zone "dominio3.com.br" IN {
type slave;
file "bak.dominio3.com.br";
masterfile-format text;
masters { ipmasterdns; };
};

zone "13.55.137.in-addr.arpa" IN {
type slave;
file "bak.dominio1.com.br-reverso";
masterfile-format text;
masters { ipmasterdns; };
};


include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";



  


2. Re: Bind DNS - Slave não funciona se acessado de fora

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 22/08/2018 - 17:08h

Cara, acredito q não há nada de errado com o seu DNS, mas a forma q vc liberou esse server pra fora. Como vc disponibilizou o DNS Slave pra fora? Quando vc faz a consulta de fora pra dentro, vc vê o pacote aparecendo nos logs do pfsense?
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


3. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 22/08/2018 - 17:52h

renato_pacheco escreveu:

Cara, acredito q não há nada de errado com o seu DNS, mas a forma q vc liberou esse server pra fora. Como vc disponibilizou o DNS Slave pra fora? Quando vc faz a consulta de fora pra dentro, vc vê o pacote aparecendo nos logs do pfsense?



Fiz um NAT permitindo tudo de qualquer destino/porta na interface WAN:53, redirecionando pra 10.1.1.15 na porta 53.
Nisto, quando dou um nmap ou nc de fora, a porta aparece como open.

Não tenho certeza se os pacotes estão chegando, pois não vejo os mesmos em Status > System Logs > Firewall > Normal View.
Porém, se eu acesso via nc, eu consigo me comunicar com o 10.1.1.15 na porta 53 (parando o bind, óbvio).



4. Re: Bind DNS - Slave não funciona se acessado de fora

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/08/2018 - 12:59h

Vc permitiu tudo o q? Permita apenas UDP. Seu teste não está correto. Vc deve usar o nc de outra forma (por ser UDP).


$ nc -vu IP_EXTERNO 53


Tente, tb, com o nmap:


# nmap -sU -p53 IP_EXTERNO


Não libere 53/TCP pq ele serve apenas de zona de transferência entre o seu servidor DNS master com o slave. Faça os filtros dentro do named.conf.options (allow-transfer) e faça isso internamente, mesmo. Outra coisa: o seu IP do DNS slave tá registrado no registro.br?
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


5. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 23/08/2018 - 13:37h

renato_pacheco escreveu:
Não libere 53/TCP pq ele serve apenas de zona de transferência entre o seu servidor DNS master com o slave.

Modifiquei o NAT para somente UDP:
https://scontent.fccm1-1.fna.fbcdn.net/v/t1.15752-9/39916163_2136179593264109_8708745134142914560_n....

nmap de fora da rede:
nmap -sU -Pn ipexterno -p53

PORT STATE SERVICE
53/udp open|filtered domain

Faça os filtros dentro do named.conf.options (allow-transfer) e faça isso internamente, mesmo.

Você diz colocar allow-transfer dentro do Master? Se sim, já está:

options {
listen-on port 53 { 127.0.0.1; IP; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { IPSLAVE; };
notify yes;
also-notify { IPSLAVE; };
recursion yes;
allow-recursion { 127.0.0.1; ::1; };
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type forward;
forward only;
forwarders { 213.186.33.99; 8.8.8.8; 8.8.4.4; };
};

zone "dominio1.com.br" IN {
type master;
file "db.dominio1.com.br";
allow-update { IPSLAVE; };
};
zone "dominio2.com.br" IN {
type master;
file "db.dominio2.com.br";
allow-update { IPSLAVE; };
};
zone "dominio3.com.br" IN {
type master;
file "db.dominio3.com.br";
allow-update { IPSLAVE; };
};

zone "13.55.137.in-addr.arpa" IN {
type master;
file "db.dominio1.com.br-reverso";
allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


Outra coisa: o seu IP do DNS slave tá registrado no registro.br?

Não registrei o DNS slave no registro.br pois o mesmo não deixa: Servidor DNS Slave 1: Tempo esgotado.
Já testei por https://registro.br/cgi-bin/nicbr/dnscheck e também não funciona.



6. Re: Bind DNS - Slave não funciona se acessado de fora

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/08/2018 - 13:52h

Hum, então verifique se o datagrama (UDP) tá chegando no seu firewall, pelo menos, e confira se o datagrama tá chegando no servidor DNS slave. Se o datagrama chegar no seu servidor DNS, significa q o firewall não tá sabendo retornar a resposta para a origem.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


7. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 23/08/2018 - 14:40h

renato_pacheco escreveu:

Hum, então verifique se o datagrama (UDP) tá chegando no seu firewall, pelo menos, e confira se o datagrama tá chegando no servidor DNS slave. Se o datagrama chegar no seu servidor DNS, significa q o firewall não tá sabendo retornar a resposta para a origem.


Segundo o Diagnostics > Packet Capture do pfSense, as requisições nem chegam no firewall. Já liguei para a empresa da internet e liberei a porta 53/UDP e nada.
No firewall e no 10.1.1.15 só aparecem requisições da Google.


8. Re: Bind DNS - Slave não funciona se acessado de fora

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/08/2018 - 14:49h

Ih, então o problema nem tá contigo. Force a barra com esse provedor seu, aí.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


9. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 23/08/2018 - 17:21h

Renato, liguei para lá e eles checaram comigo. A porta 53 UDP está realmente aberta.

Sobre o bind, eu notei um coisa: dentro do meu Master DNS, se dou um nslookup umsitequalquer localhost, ele resolve o IP normalmente, mas se dou nslookup no Slave DNS de uma máquina local (ex: 10.1.1.30), ele dá Query refused.
Fucei um pouco mais o tio Google e adicionei isto no named.conf:
allow-recursion { any; };
allow-recursion-on { any; };

Agora consigo dar nslookup de dentro da rede até o 10.1.1.15.
Porém ainda não consigo de fora. Acha que é questão de tempo até o DNS se propagar ou estou falando besteira?



10. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 24/08/2018 - 09:28h

mateusscheper escreveu:

Renato, liguei para lá e eles checaram comigo. A porta 53 UDP está realmente aberta.

Sobre o bind, eu notei um coisa: dentro do meu Master DNS, se dou um nslookup umsitequalquer localhost, ele resolve o IP normalmente, mas se dou nslookup no Slave DNS de uma máquina local (ex: 10.1.1.30), ele dá Query refused.
Fucei um pouco mais o tio Google e adicionei isto no named.conf:
allow-recursion { any; };
allow-recursion-on { any; };

Agora consigo dar nslookup de dentro da rede até o 10.1.1.15.
Porém ainda não consigo de fora. Acha que é questão de tempo até o DNS se propagar ou estou falando besteira?

Edit: Esperei até o outro dia e nada, então parece que eu estava falando besteira sim, haha.

Enfim. Em meu log, vejo erros assim:
error (network unreachable) resolving '61.139.209.120.in-addr.arpa/PTR/IN': 2001:dc0:2001:0:4608::25#53
error (unexpected RCODE REFUSED) resolving '63.139.209.120.in-addr.arpa/PTR/IN': 120.193.103.86#53


Para o erro network unreachable, adicionei em /etc/sysconfig/named a linha OPTIONS=-4. Creio que esteja resolvido (ainda não apareceu erro relacionado no log).

Sobre o erro unexpected RCODE REFUSED, vi na net o pessoal falando sobre spam e tudo mais, então fiquei confuso. Se estou recebendo este tipo de conexão, como não consigo resolver de fora da rede IP algum com o nslookup?




11. Re: Bind DNS - Slave não funciona se acessado de fora

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 24/08/2018 - 09:50h

Vc misturou 2 coisas: os erros no log e o acesso externo ao DNS Slave. Há relação entre eles? Vc já está conseguindo consultar no DNS Slave de fora? Sobre a opção allow-recursion, tente restringir apenas aos IPs interno e externo da sua rede, não libere para qualquer um, não. Veja nos logs do DNS Master se as consultas AXFR estão sendo realizadas normalmente (sem aparecer Denied). Depois, tente consultar no DNS Slave tanto de dentro quanto de fora.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


12. Re: Bind DNS - Slave não funciona se acessado de fora

Mateus Scheper
mateusscheper

(usa CentOS)

Enviado em 27/08/2018 - 15:59h

renato_pacheco escreveu:

Vc misturou 2 coisas: os erros no log e o acesso externo ao DNS Slave. Há relação entre eles? Vc já está conseguindo consultar no DNS Slave de fora? Sobre a opção allow-recursion, tente restringir apenas aos IPs interno e externo da sua rede, não libere para qualquer um, não. Veja nos logs do DNS Master se as consultas AXFR estão sendo realizadas normalmente (sem aparecer Denied). Depois, tente consultar no DNS Slave tanto de dentro quanto de fora.

Olá, Renato. Perdão pela demora.
Mencionei os erros no log para ver se tinha algo a ver com o problema em questão.
Quanto ao allow-recursion, coloquei assim:
        allow-recursion { 127.0.0.1; 10.1.1.0/24; };
allow-recursion-on { 127.0.0.1; 10.1.1.0/24; };

Está correto?

No DNS Master, as consultas AXFR estão ok.
Consigo consultar apenas de dentro da rede, dando ";; connection timed out; no servers could be reached" ao executar nslookup de fora.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts