Mudanças entre as edições de "DNS Autoritativo"
Ir para navegação
Ir para pesquisar
Linha 5: | Linha 5: | ||
CPU: 2vCPU<br> | CPU: 2vCPU<br> | ||
− | <big>'''Firewall'''</big><br> | + | <big>'''Firewall Entrada'''</big><br> |
TCP 22 - Confiáveis | TCP 22 - Confiáveis | ||
+ | TCP/UDP 53 - Somente hosts clientes de consultas | ||
<big>'''Pacotes Essenciais'''</big><br> | <big>'''Pacotes Essenciais'''</big><br> | ||
apt-get install net-tools -y | apt-get install net-tools -y | ||
apt-get install vim -y | apt-get install vim -y | ||
+ | apt-get install nmap -y | ||
<big>'''Instalação bind9'''</big><br> | <big>'''Instalação bind9'''</big><br> | ||
Linha 27: | Linha 29: | ||
<big>'''Localizando erros de consulta'''</big><br> | <big>'''Localizando erros de consulta'''</big><br> | ||
dig @localhost google.com.br +trace | dig @localhost google.com.br +trace | ||
+ | |||
+ | <big>'''Configurando Recursivo Master'''</big><br> | ||
+ | // ACL "autorizados" essa colocamos os IPs que são autorizados a fazer consultas recursivas neste servidor. | ||
+ | // Neste caso vou incluir os IPs que foram nos delegados bem como de localhost e todos IPs privados. | ||
+ | acl autorizados { | ||
+ | 127.0.0.1; | ||
+ | ::1; | ||
+ | 192.168.0.0/16; | ||
+ | 172.16.0.0/12; | ||
+ | 100.64.0.0/10; | ||
+ | 10.0.0.0/8; | ||
+ | 45.80.48.0/22; | ||
+ | 2804:f123::/32; | ||
+ | df00::/8; | ||
+ | 2001:db8::/32; | ||
+ | fe80::/64; | ||
+ | |||
+ | }; | ||
+ | |||
+ | options { | ||
+ | // O diretório de trabalho do servidor | ||
+ | // Quaisquer caminho não informado será tomado como padrão este diretório | ||
+ | directory "/var/cache/bind"; | ||
+ | |||
+ | //Suporte a DNSSEC | ||
+ | dnssec-validation auto; | ||
+ | |||
+ | // Conforme RFC1035 | ||
+ | // https://www.ietf.org/rfc/rfc1035.txt | ||
+ | // Se o servidor deve responder negativamente (NXDOMAIN) para consultas de domínios que não existem. | ||
+ | auth-nxdomain no; | ||
+ | |||
+ | // Respondendo para IPv4 e IPv6 | ||
+ | // Porta 53 estará aberta para ambos v4 e v6 (pode ser informar apenas os IPs que ficarão ouvindo) | ||
+ | // ex listen-on { 127.0.0.1; 45.80.48.2; }; | ||
+ | // ex listen-on-v6 { ::1; 2804:f123:bebe:cafe::2; }; | ||
+ | // ou any para todos os IPs das interfaces (recomendado, pricipalmente em anycast) | ||
+ | listen-on { any; }; | ||
+ | listen-on-v6 { any; }; | ||
+ | |||
+ | // Serve como uma ferramenta de mitigação para o problema de ataques de amplificação de DNS | ||
+ | // No momento, a implementação de RRL (Response Rate Limiting)é recomendada apenas para servidores autoritativos | ||
+ | // Se seu servidor será apenas autoritativo descomente as linhas a baixo. (https://kb.isc.org/docs/aa-00994) | ||
+ | //rate-limit { | ||
+ | // responses-per-second 15; | ||
+ | // window 5; | ||
+ | //}; | ||
+ | |||
+ | // Informações adicionais em suas respostas DNS | ||
+ | // Melhora o desempenho do servidor, reduzindo os volumes de dados de saída. | ||
+ | // O padrão BIND é (no) não. | ||
+ | minimal-responses yes; | ||
+ | |||
+ | // Reduzir o tráfego da rede e aumentar o desempenho, o servidor armazena respostas negativas. | ||
+ | // é usado para definir um tempo máximo de retenção para essas respostas no servidor. (segundos) | ||
+ | // Determina por quanto tempo o servidor irá acreditar nas informações armazenadas em cache de | ||
+ | // respostas negativas (NXDOMAIN) antes de buscar novamente informações. | ||
+ | max-ncache-ttl 300; | ||
+ | |||
+ | // Desativar recursão. Por padrão já é yes. | ||
+ | // recursion no; | ||
+ | |||
+ | // 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 { autorizados; }; | ||
+ | |||
+ | // 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 { autorizados; }; | ||
+ | |||
+ | // Especifica quais hosts estão autorizados a “fazer perguntas” ao seu DNS. | ||
+ | // Se for apenas recursivo pode informa a ACL “autorizados” | ||
+ | // allow-query { autorizados; }; | ||
+ | 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 ex vou deixar então o ips dos dois servidores v4 e v6. | ||
+ | allow-transfer { | ||
+ | 45.80.48.3; | ||
+ | 2804:f123:bebe:cafe::3; | ||
+ | }; | ||
+ | also-notify { | ||
+ | 45.80.48.3; | ||
+ | 2804:f123:bebe:cafe::3; | ||
+ | }; | ||
+ | |||
+ | // Esta opção faz com que o servidor slave ao fazer a transferência de zonas | ||
+ | // mastes deste servidor no formato binário (raw) do arquivo ou texto (text) | ||
+ | // text será legível por humanos, já raw formato é mais eficiente em termos de desempenho. | ||
+ | // masterfile-format raw; | ||
+ | masterfile-format text; | ||
+ | |||
+ | // Para evitar que vase a versao do Bind, definimos um nome | ||
+ | // Reza a lenda que deixar RR DNS Server seu servidor nunca sofrerá ataques. | ||
+ | version "RR DNS Server – Do good"; | ||
+ | |||
+ | // Define a quant. máxima de memória a ser usada para o cache do servidor (bytes ou porcentagem) | ||
+ | // Por padrão no debian 10/bind9 ele reserva 90% da memoria física. Então não se apavore com log ex.: | ||
+ | // Servidor com 2GB: none:106: 'max-cache-size 90%' - setting to 1795MB (out of 1994MB) | ||
+ | // Recomendo não alterar | ||
+ | // max-cache-size 512M; | ||
+ | // max-cache-size 50%; | ||
+ | |||
+ | // Isso define o tempo mínimo para o qual o servidor armazena | ||
+ | // em cache as respostas positivas, em segundos. | ||
+ | // Ex o tiktok.com manda tempo de ttl de 20 segundos, | ||
+ | // e você quer ignorar esse valor 20 e setar que o minimo seja 90. | ||
+ | // que é o máximo permitido. | ||
+ | min-cache-ttl 90; | ||
+ | |||
+ | // Não recomendado alterar para menos que 24h. | ||
+ | // Define o tempo máximo durante o qual o servidor armazena (informado pelo dono do domínio) | ||
+ | // em cache as respostas positivas, em segundos. O max-cache-ttl padrão é 604800 (uma semana) | ||
+ | // max-cache-ttl 86400; // 24h | ||
+ | |||
+ | }; | ||
+ | |||
+ | <big>'''Checando as configurações do arquivo'''</big><br> | ||
+ | named-checkconf /etc/bind/named.conf.options | ||
+ | |||
+ | <big>'''Mostra todas configurações'''</big><br> | ||
+ | named-checkconf -p | ||
+ | |||
+ | <big>'''Reiniciar o bind9'''</big><br> | ||
+ | systemctl restart bind9 | ||
+ | systemctl status bind9 | ||
+ | systemctl enable bind9 |
Edição das 15h57min de 1 de março de 2023
Requisitos
SO: Ubuntu Server 22.04.2 LTS
Memória: 4Gb
Disco: 40Gb
CPU: 2vCPU
Firewall Entrada
TCP 22 - Confiáveis
TCP/UDP 53 - Somente hosts clientes de consultas
Pacotes Essenciais
apt-get install net-tools -y apt-get install vim -y apt-get install nmap -y
Instalação bind9
apt-get install bind9 dnsutils -y
Configurar consultas localmente
echo "nameserver 127.0.0.1" > /etc/resolv.conf echo "nameserver ::1" >> /etc/resolv.conf
Testes de funcionamento
dig @localhost google.com.br dig @127.0.0.1 google.com.br dig @::1 google.com.br +short host google.com.br
Localizando erros de consulta
dig @localhost google.com.br +trace
Configurando Recursivo Master
// ACL "autorizados" essa colocamos os IPs que são autorizados a fazer consultas recursivas neste servidor. // Neste caso vou incluir os IPs que foram nos delegados bem como de localhost e todos IPs privados. acl autorizados { 127.0.0.1; ::1; 192.168.0.0/16; 172.16.0.0/12; 100.64.0.0/10; 10.0.0.0/8; 45.80.48.0/22; 2804:f123::/32; df00::/8; 2001:db8::/32; fe80::/64; }; options { // O diretório de trabalho do servidor // Quaisquer caminho não informado será tomado como padrão este diretório directory "/var/cache/bind"; //Suporte a DNSSEC dnssec-validation auto; // Conforme RFC1035 // https://www.ietf.org/rfc/rfc1035.txt // Se o servidor deve responder negativamente (NXDOMAIN) para consultas de domínios que não existem. auth-nxdomain no; // Respondendo para IPv4 e IPv6 // Porta 53 estará aberta para ambos v4 e v6 (pode ser informar apenas os IPs que ficarão ouvindo) // ex listen-on { 127.0.0.1; 45.80.48.2; }; // ex listen-on-v6 { ::1; 2804:f123:bebe:cafe::2; }; // ou any para todos os IPs das interfaces (recomendado, pricipalmente em anycast) listen-on { any; }; listen-on-v6 { any; }; // Serve como uma ferramenta de mitigação para o problema de ataques de amplificação de DNS // No momento, a implementação de RRL (Response Rate Limiting)é recomendada apenas para servidores autoritativos // Se seu servidor será apenas autoritativo descomente as linhas a baixo. (https://kb.isc.org/docs/aa-00994) //rate-limit { // responses-per-second 15; // window 5; //}; // Informações adicionais em suas respostas DNS // Melhora o desempenho do servidor, reduzindo os volumes de dados de saída. // O padrão BIND é (no) não. minimal-responses yes; // Reduzir o tráfego da rede e aumentar o desempenho, o servidor armazena respostas negativas. // é usado para definir um tempo máximo de retenção para essas respostas no servidor. (segundos) // Determina por quanto tempo o servidor irá acreditar nas informações armazenadas em cache de // respostas negativas (NXDOMAIN) antes de buscar novamente informações. max-ncache-ttl 300; // Desativar recursão. Por padrão já é yes. // recursion no; // 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 { autorizados; }; // 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 { autorizados; }; // Especifica quais hosts estão autorizados a “fazer perguntas” ao seu DNS. // Se for apenas recursivo pode informa a ACL “autorizados” // allow-query { autorizados; }; 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 ex vou deixar então o ips dos dois servidores v4 e v6. allow-transfer { 45.80.48.3; 2804:f123:bebe:cafe::3; }; also-notify { 45.80.48.3; 2804:f123:bebe:cafe::3; }; // Esta opção faz com que o servidor slave ao fazer a transferência de zonas // mastes deste servidor no formato binário (raw) do arquivo ou texto (text) // text será legível por humanos, já raw formato é mais eficiente em termos de desempenho. // masterfile-format raw; masterfile-format text; // Para evitar que vase a versao do Bind, definimos um nome // Reza a lenda que deixar RR DNS Server seu servidor nunca sofrerá ataques. version "RR DNS Server – Do good"; // Define a quant. máxima de memória a ser usada para o cache do servidor (bytes ou porcentagem) // Por padrão no debian 10/bind9 ele reserva 90% da memoria física. Então não se apavore com log ex.: // Servidor com 2GB: none:106: 'max-cache-size 90%' - setting to 1795MB (out of 1994MB) // Recomendo não alterar // max-cache-size 512M; // max-cache-size 50%; // Isso define o tempo mínimo para o qual o servidor armazena // em cache as respostas positivas, em segundos. // Ex o tiktok.com manda tempo de ttl de 20 segundos, // e você quer ignorar esse valor 20 e setar que o minimo seja 90. // que é o máximo permitido. min-cache-ttl 90; // Não recomendado alterar para menos que 24h. // Define o tempo máximo durante o qual o servidor armazena (informado pelo dono do domínio) // em cache as respostas positivas, em segundos. O max-cache-ttl padrão é 604800 (uma semana) // max-cache-ttl 86400; // 24h };
Checando as configurações do arquivo
named-checkconf /etc/bind/named.conf.options
Mostra todas configurações
named-checkconf -p
Reiniciar o bind9
systemctl restart bind9 systemctl status bind9 systemctl enable bind9