
Proxy DNS simples e rápido com funcionalidades não tão simples. Focado em encaminhamento DNS roteado, filtragem e controle parental.
Um proxy DNS que lhe dá controle real sobre a sua rede doméstica.
Passei anos como consultor na "arena" de redes e segurança dos "grandes boys". A segurança de DNS era/é o meu trabalho diário, mas também um hobby favorito para mexer. Como agora tenho filhos e preciso ser um pai responsável, assumi a tarefa de filtrar a grande e má internet para eles. Então construí o sdproxy (Simple DNS Proxy). Ele traz proteções/métodos/precisão de nível empresarial/grandes boys para o nível da rede doméstica (mais ou menos).
O proxy é escrito em Go e compila para um binário enxuto para routers baratos. NÃO há subscrições na nuvem nem mensalidades. Ele fala todos os sabores de DNS e inclui controle de admissão adaptativo para se manter estável. É apenas precisão enxuta (mais ou menos), malvada e de engenharia holandesa para a sala de estar. Apenas você, um executável e um ficheiro yaml.
E lembre-se... É sempre o DNS!
Nota: O full_reference_config.yaml neste repositório (também incorporado no binário via sdproxy --example-config) está sempre mais atualizado do que este README. Em caso de dúvida, consulte lá.
O DNS é a lista telefónica da internet - cada dispositivo na sua rede procura um nome antes de se ligar a qualquer lugar.
O sdproxy fica no meio disso, no seu router, e permite-lhe decidir o que acontece a seguir: colocar em cache, bloquear, encaminhar para um resolver diferente, aplicar modelos avançados de segurança de ML ou impor limites de tempo por criança. Sem subscrição na nuvem, sem mensalidade, sem serviço externo que fique offline.
É escrito em Go, compila para um único binário e é suficientemente enxuto para correr em routers domésticos baratos (OpenWrt num TP-Link, GL.iNet ou NetGear, pfSense, OPNsense ou apenas uma máquina Linux comum).
Consulte KEY_ADVANTAGES.md para conhecer as principais vantagens em relação às alternativas.
UDP/TCP simples (porta 53), DNS-over-TLS encriptado (DoT), DNS-over-HTTPS (DoH) e DNS-over-QUIC (DoQ).
sdproxy analisa nativamente cabeçalhos Alt-Svc e parâmetros SVCB/HTTPS ALPN para atualizar perfeitamente fluxos DoH padrão para ligações HTTP/3 (QUIC) de alto desempenho em tempo real.Protege a sua navegação da inspeção profunda de pacotes do ISP ao encriptar a Indicação de Nome do Servidor (SNI) do TLS.
sdproxy atua como um servidor ECH completo, desencriptando client hellos e transmitindo nativamente as suas próprias chaves para a sua rede local via DDR (_dns.resolver.arpa SVCB/HTTPS) e endpoints HTTPS /.well-known/origin-svcb / /.well-known/ech.sdproxy interroga ativamente os seus registos HTTPS/SVCB (e fallbacks L7 .well-known), extrai as suas chaves ECH e protege o handshake TLS de forma completamente autónoma.Um motor de inferência de ML de Regressão Logística nativo e de zero alocação corre no caminho crítico. Extrai entropia de Shannon, desvio de vogais/consoantes, padrões de dígitos finais e cadeias de consoantes para detetar e bloquear instantaneamente Domínios Gerados Algoritmicamente (DGA) usados por botnets, malware e infraestrutura C2.
_for-sale. RFC 10023 e Domínios Estacionados_for-sale. RFC 10023 (server.for_sale): Sonda _for-sale.<qname> e _for-sale.<apex> para registos TXT RFC 10023 válidos (v=FORSALE1;) usando uma cache de veredictos com 64 shards, percursos completos de cache pela cadeia de pais e coalescência SingleFlight. Suporta disabled, BLOCK, DROP, LOG ou qualquer RCODE DNS padrão.server.parked): Deteta domínios estacionados, domínios pais intermédios e apexes eTLD+1 ao sondar ativamente e inspecionar passivamente registos autoritativos NS, SOA, TXT, CNAME e A/AAAA para fornecedores comuns de estacionamento de domínios e monetização de aftermarket (Sedo, Bodis, ParkingCrew, Above.com, Dan.com, Afternic, CashParking, HugeDomains, Squadhelp/Atom, Uniregistry, ParkLogic, RookMedia, etc.).(cliente/sub-rede, domínio apex) dentro de uma janela de tempo configurável (com exempt_shared_hosting opcional) para intercetar DNS tunneling lento e discreto e exfiltração por info-stealers, sem permitir negação de serviço entre clientes.rrs:) com Suporte a Regexrtype_policy), sufixos de domínio, IPs/CIDRs ou expressões regulares (/pattern/) através de configuração inline, ficheiros locais ou URLs remotas.rrs:): Substitui domínios globais ou por grupo (exatos ou regex /pattern/) por endereços IPv4/IPv6 estáticos ou aliases CNAME recursivos transparentes (por exemplo, forçar o SafeSearch).O sdproxy não se limita a encaminhar consultas às cegas; avalia os upstreams dinamicamente.
max_secure_upstreams (predefinição 5) servidores saudáveis de um grupo em simultâneo. Inspeciona em profundidade as impressões digitais canónicas dos RRsets (cadeias CNAME, endpoints IP finais, SVCB/HTTPS, estado DNSSEC) com suporte para preferências fastest, ordered e consolidate (conjunto de respostas fundido). No modo strict, exige-se 100% de participação e equivalência de respostas; no modo loose, utiliza-se uma maioria de respondedores saudáveis. Descarta ou bloqueia a resposta se os upstreams discordarem ou devolverem um NULL-IP envenenado.Respondeste a algo recentemente? Serve-se a partir da cache. O sdproxy utiliza 32 shards de memória com sementes criptográficas e persistência opcional em disco resistente a falhas entre reinícios (incluindo impressão digital da configuração de rotas). Se um registo expirar enquanto ainda é popular, o sdproxy aciona um prefetch em segundo plano para que os teus dispositivos nunca notem uma falha de cache. Suporta totalmente o Stale-Serving do RFC 8767, os limites estritos de expiração de RRSIG do DNSSEC e os fallbacks de indisponibilidade serve_stale_infinite.
Aponta-o para os teus ficheiros de leases DHCP e /etc/hosts e ele responderá a pesquisas de nomes locais (o teu NAS, a tua impressora, o teu Pi) sem incomodar um resolver upstream nem vazar consultas da LAN para o upstream. Funciona com dnsmasq, ISC DHCP, Kea e odhcpd.