
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 "los grandes". 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, asumí la tarea de filtrar el gran y malvado internet para ellos. Así que construí sdproxy (Simple DNS Proxy). Trae protecciones/métodos/precisión de nivel empresarial/grande 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), malvada, 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 en este repositorio siempre está más actualizado que este README. En caso de duda, consúltalo allí.
DNS es la guía telefónica de internet: cada dispositivo en tu red busca un nombre antes de conectarse a cualquier lugar.
sdproxy se sitúa en medio de eso, en tu router, y te permite decidir qué sucede después: almacenarlo en caché, bloquearlo, enrutarlo a un resolver 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 suficientemente ligero para ejecutarse en routers domésticos baratos (OpenWrt en un TP-Link, GL.iNet o NetGear, pfSense, OPNsense o simplemente una caja Linux normal).
Consulta KEY_ADVANTAGES.md para conocer las ventajas clave frente a las alternativas.
El clásico 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 de tu ISP cifrando el Server Name Indication (SNI) de TLS.
_dns.resolver.arpa SVCB/HTTPS) y los endpoints HTTPS /.well-known/origin-svcb / /.well-known/ech.HTTPS/SVCB (y los fallbacks 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) utilizados por botnets, malware e infraestructura C2.
eTLD+1) dentro de una ventana de tiempo configurable para interceptar tunneling DNS lento y sigiloso y exfiltración de ladrones de información.sdproxy no se limita a reenviar consultas a ciegas; evalúa los upstreams dinámicamente.
max_secure_upstreams (por defecto 5) servidores sanos de un grupo simultáneamente. Inspecciona en profundidad las cargas útiles (cadenas CNAME, endpoints IP finales) con soporte para las preferencias fastest, ordered y consolidate (conjunto de respuestas fusionado), y descarta o bloquea la respuesta si los upstreams no coinciden o devuelven una NULL-IP envenenada.¿Respondiste algo recientemente? Sírvelo desde la caché. sdproxy utiliza 32 fragmentos de memoria con semilla criptográfica y persistencia opcional en disco entre reinicios. 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é. Soporta completamente el servicio de datos obsoletos RFC 8767 y los fallbacks de interrupción serve_stale_infinite.
Apúntalo a tus archivos de concesión DHCP y /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 LAN hacia arriba. Funciona con dnsmasq, ISC DHCP, Kea y odhcpd.
Asigna la identidad de un dispositivo a un grupo de resolvers upstream diferente o a un perfil parental.
CC:XX vía IPinfo), nombre de cliente, TLS SNI (sni:), rutas HTTP DoH (path:) y puertos de escucha (port:).force-and: true (p. ej., subred AND puerto de escucha).rcode: REFUSED, NXDOMAIN, BLOCK, DROP) directamente a una regla de enrutamiento para cuarentena instantánea del cliente.Configura un perfil por hijo, asigna sus dispositivos y configura:
group o por device). Soporta ALLOW, BLOCK, FREE, LOG, UNLIMITED y anulaciones temporales de ventana UNTRIGGER.