
Proxy DNS simple y rápido con funciones no tan simples. Enfocado en reenvío DNS enrutado, filtrado y control parental.
Un proxy DNS que te da control real sobre tu red doméstica.
Pasé años como consultor en la "arena" de redes y seguridad de las "grandes ligas". La seguridad DNS era/es mi trabajo diario, pero también un pasatiempo favorito para trastear. Como ahora tengo hijos y necesito ser un padre responsable, me tomé la tarea de filtrarles el gran y malvado internet. Así que construí sdproxy (Simple DNS Proxy). Lleva protecciones/métodos/precisión de nivel empresarial/de las grandes ligas al nivel de la red doméstica (más o menos).
El proxy está escrito en Go y compila a un binario ligero para routers baratos. NO hay suscripciones en la nube ni cuotas mensuales. Habla todos los sabores de DNS e incluye control de admisión adaptativo para mantenerse estable. Es simplemente precisión ligera (más o menos), maliciosa y de ingeniería neerlandesa para el salón. Solo tú, un ejecutable y un archivo yaml.
Y recuerda... ¡Siempre es DNS!
Nota: El full_reference_config.yaml de este repositorio (también embebido en el binario mediante sdproxy --example-config) siempre está más actualizado que este README. En caso de duda, consúltalo allí.
El DNS es la guía telefónica de internet: cada dispositivo de tu red busca un nombre antes de conectarse a cualquier sitio.
sdproxy se sitúa en medio de eso, en tu router, y te permite decidir qué ocurre después: almacenarlo en caché, bloquearlo, enrutarlo a un resolutor diferente, aplicar modelos avanzados de seguridad ML o imponer límites de tiempo por hijo. Sin suscripción en la nube, sin cuota mensual, sin servicio externo que se caiga.
Está escrito en Go, compila a un único binario y es lo bastante ligero para ejecutarse en routers domésticos baratos (OpenWrt en un TP-Link, GL.iNet o NetGear, pfSense, OPNsense o simplemente una máquina Linux normal).
Consulta KEY_ADVANTAGES.md para conocer las ventajas clave frente a las alternativas.
El viejo UDP/TCP (puerto 53), DNS cifrado sobre TLS (DoT), DNS sobre HTTPS (DoH) y DNS sobre QUIC (DoQ).
sdproxy analiza de forma nativa las cabeceras Alt-Svc y los parámetros ALPN de SVCB/HTTPS para actualizar sin problemas los flujos DoH estándar a conexiones HTTP/3 (QUIC) de alto rendimiento sobre la marcha.Protege tu navegación de la inspección profunda de paquetes del ISP cifrando la Indicación de Nombre de Servidor (SNI) de TLS.
sdproxy actúa como un servidor ECH completo, descifrando los client hellos y difundiendo de forma nativa sus propias claves a tu red local mediante DDR (_dns.resolver.arpa SVCB/HTTPS) y los endpoints HTTPS /.well-known/origin-svcb / /.well-known/ech.sdproxy interroga activamente sus registros HTTPS/SVCB (y los respaldos L7 .well-known), extrae sus claves ECH y asegura el handshake TLS de forma completamente autónoma.Un motor de inferencia ML de Regresión Logística nativo y de cero asignaciones se ejecuta en la ruta crítica. Extrae la entropía de Shannon, el sesgo de vocales/consonantes, los patrones de dígitos finales y las cadenas de consonantes para detectar y bloquear al instante Dominios Generados Algorítmicamente (DGA) usados por botnets, malware e infraestructura C2.
_for-sale. de RFC 10023 y de dominios aparcados_for-sale. de RFC 10023 (server.for_sale): Sondea _for-sale.<qname> y _for-sale.<apex> en busca de registros TXT válidos de RFC 10023 (v=FORSALE1;) usando una caché de veredictos de 64 fragmentos, recorridos completos de caché de la cadena de padres y coalescencia SingleFlight. Admite disabled, BLOCK, DROP, LOG o cualquier RCODE DNS estándar.server.parked): Detecta dominios aparcados, dominios padres intermedios y ápices eTLD+1 sondeando activamente e inspeccionando pasivamente registros autoritativos NS, SOA, TXT, CNAME y A/AAAA en busca de proveedores comunes de aparcamiento de dominios y monetización de posventa (Sedo, Bodis, ParkingCrew, Above.com, Dan.com, Afternic, CashParking, HugeDomains, Squadhelp/Atom, Uniregistry, ParkLogic, RookMedia, etc.).(cliente/subred, dominio apex) dentro de una ventana de tiempo configurable (con exempt_shared_hosting opcional) para interceptar tunneling DNS lento y sigiloso y la exfiltración de info-stealers sin permitir denegación de servicio entre clientes.rrs:) con soporte de expresiones regularesrtype_policy), sufijos de dominio, IPs/CIDRs o expresiones regulares (/pattern/) mediante configuración en línea, archivos locales o URLs remotas.rrs:): Sobrescribe dominios globales o por grupo (exactos o regex /pattern/) con direcciones IPv4/IPv6 estáticas o alias CNAME recursivos transparentes (por ejemplo, forzar SafeSearch).sdproxy no solo reenvía consultas a ciegas; evalúa los upstreams dinámicamente.
max_secure_upstreams (por defecto 5) servidores saludables de un grupo simultáneamente. Inspecciona en profundidad las huellas de los RRset canónicos (cadenas CNAME, endpoints IP finales, SVCB/HTTPS, estado DNSSEC) con soporte para las preferencias fastest, ordered y consolidate (conjunto de respuestas fusionado). En modo strict, se exige una participación del 100% y equivalencia de respuestas; en modo loose, se usa una mayoría de respondedores saludables. Descarta o bloquea la respuesta si los upstreams no coinciden o devuelven una NULL-IP envenenada.¿Respondiste algo recientemente? Sírvelo desde caché. sdproxy utiliza 32 fragmentos de memoria con semilla criptográfica y persistencia opcional en disco a prueba de fallos entre reinicios (incluida la huella de configuración de rutas). Si un registro expira mientras sigue siendo popular, sdproxy activa una precarga en segundo plano para que tus dispositivos nunca noten un fallo de caché. Admite completamente RFC 8767 Stale-Serving, límites estrictos de expiración de RRSIG de DNSSEC y fallbacks de interrupción serve_stale_infinite.
Apúntalo a tus archivos de concesión DHCP y a /etc/hosts y responderá a las búsquedas de nombres locales (tu NAS, tu impresora, tu Pi) sin molestar a un resolver upstream ni filtrar consultas de LAN hacia upstream. Funciona con dnsmasq, ISC DHCP, Kea y odhcpd.