Muitos provedores de internet ou outros provedores de serviços de Internet coletam informações por razões comerciais (vendendo seu perfil para anúncios direcionados) ou por outros motivos. O pfSense permite que você use DNS com TLS para criptografar sua solicitação de forma que só você e o provedor de DNS possam vê-lo.
Configuração do pfSense DNS Resolver
O DNS sobre TLS não é suportado por todos os provedores de DNS, então neste post usarei o Cloudflare, que é gratuito, rápido, suporta TLS e não armazena logs. Visite https://1.1.1.1/dns/ para obter mais informações
Na página do painel do pfSense, clique no menu Sistema >> Configuração Geral . Na guia Configurações do servidor DNS , adicione 1.1.1.1 e 1.0.0.1 como servidores DNS. Para a maioria dos casos, você não precisa digitar nada para Hostname e Gateway. Desmarque a caixa de seleção DNS Server Override para garantir que seu provedor de internet não sobrescreva essa configuração. Complete o processo clicando em Salvar na parte inferior.
Agora que seu DNS está configurado, vamos ter certeza de ativar o TLS nele. Clique em Serviços >> DNS Resolver . Certifique-se de Ativar caixa de seleção Habilitado e, em seguida, também selecione as seguintes caixas de seleção:
- DNSSEC: Habilitar o suporte ao DNSSEC
- Encaminhamento de consultas DNS: Ativar o modo de encaminhamento
- Encaminhamento de consultas DNS: Use SSL/TLS para consultas DNS de saída para servidores de encaminhamento
Clique em Salvar e Aplicar alterações e pronto. Às vezes, as configurações não são aplicadas corretamente e uma reinicialização completa é necessária (Diagnósticos >> Reinicialização)
Alguns dispositivos têm servidores DNS codificados neles, então eles os usarão ao invés do servidor especificado no pfSense. Para contornar isso, você pode bloquear servidores DNS externos e/ou redirecioná-los para o pfSense através das regras de Firewall.
Redirecionando solicitações de DNS para o pfSense
As seguintes instruções são originalmente publicadas em https://docs.netgate.com/pfsense/en/latest/dns/redirecting-all-dns-requests-to-pfsense.html, mas eu as replicarei aqui também.
Antes de adicionar esta regra, certifique-se de que o DNS Forwarder ou DNS Resolver esteja configurado para vincular e responder consultas nas Interfaces Localhost ou All.
No exemplo a seguir, a interface LAN é usada, mas pode ser usada para qualquer interface, então altere a interface e o destino conforme necessário.
- Navegue até Firewall >> NAT >> Encaminhamento de portas
- Clique em Adicionar para criar uma nova regra
- Preencha os seguintes campos na regra de avanço da porta:
- Interface: LAN
- Protocolo: TCP/UDP
- Destino:
- Sel. invertida: selecionado
- Endereço: LAN
- Faixa da porta de destino: 53 (DNS)
- Redirecionar IP de destino: 127.0.0.1
- Redirecionar Porta de destino: 53 (DNS)
- Descrição: Redirecionar DNS
- Nat Reflection: Desativar
Qualquer solicitação de DNS feita a qualquer endereço IP externo resultará na consulta sendo respondida pelo próprio firewall. O acesso a outros servidores DNS na porta 53 está agora bloqueado.
Bloqueando consultas DNS para resolver externos
As seguintes instruções são originalmente publicadas em https://docs.netgate.com/pfsense/en/latest/dns/blocking-dns-queries-to-external-resolvers.html, mas eu vou replicá-las aqui também
- Adicione uma regra de firewall em Firewall >> Regras >> LAN com Ação Liberar Protocolo TCP/UDP, Origem: qualquer, Destino: Endereço LAN, faixa de porta de destino:
53
- Mova esta regra recém-criada no passo #1 para o topo das regras da LAN
- Adicione uma nova regra com Ação Bloquear, Protocolo TCP/UDP, Origem: Qualquer, Destino: Qualquer, Faixa da porta de destino: 53
- Mova a regra criada na etapa #3 para a segunda posição atrás da regra de permissão que foi movida na etapa #2.
- Salvar e aplicar alterações
Se você seguiu os passos para redirecionar todas as solicitações de DNS para o seu pfSense local, certifique-se de que a regra para passar o DNS para 127.0.0.1 está acima de qualquer regra que bloqueie DNS!
Bloqueando outros DNS sobre servidores TLS
É mais seguro ter um único servidor DNS em execução em sua rede, por isso vamos adicionar mais uma regra de firewall para bloquear qualquer conexão para qualquer DoT que não seja o seu pfSense.
- Adicione uma regra de firewall em Firewall >> Regras >> LAN com Ação Bloquear, Dispositivo LAN, Protocolo: TCP, Origem: Qualquer, Destino: Qualquer, faixa de porta de destino: 853
- Mova esta regra recém-criada no passo #1 para o topo das regras da LAN
- Salvar e aplicar alterações
Verifique se tudo funciona
Tentei usar o 1.1.1.1/help para ver se minhas configurações estavam funcionando, mas descobri que quando o DNSSEC é habilitado no pfSense, o teste do Cloudflare falha, mas na verdade está funcionando (falso positivo). Para verificar suas configurações, vá para Diagnósticos >> Estado, selecione todas as Interfaces e defina Expressão do Filtro como o IP do servidor DNS. Você deve ver que as únicas conexões na porta 53 são para o seu localhost e todas as outras conexões para o seu DNS são sobre a porta 853, o DNS sobre a porta TLS.
Outro teste é capturar alguns pacotes através de Diagnósticos >> Captura de pacotes Defina a Interface como WAN e Porta como 853. Clique no botão Iniciar e use seu navegador para visitar algumas páginas, como pfsense.org. Pare e veja a captura. Você deve ver vários pacotes fluindo de/para 1.1.1.1:853. Repita a captura para a porta 53 e note que a captura estará vazia.
Visite https://dnssec.vs.uni-due.de e clique em Iniciar o teste. Se você receber um jóinha, seu DNS está seguro!