Un cliente WireGuard, un firewall y monitor de red inspirado en OpenSnitch + un cliente DNS sobre HTTPS inspirado en pi-hole con listas de bloqueo.
En otras palabras, Rethink DNS + Firewall tiene tres modos principales: VPN, DNS y Firewall. El modo VPN (proxificador) admite múltiples flujos ascendentes de WireGuard en una configuración de túnel dividido. El modo DNS enruta todo el tráfico DNS generado por las aplicaciones a cualquier solucionador DNS-over-HTTPS o DNSCrypt elegido por el usuario. El modo Firewall permite al usuario denegar el acceso a Internet a aplicaciones completas en función de eventos como pantalla encendida/apagada, aplicación en primer plano/fondo de aplicación, conexión no medida/conexión medida; o basado en categorías definidas en Play Store como Social, Juegos, Utilidad, Productividad; o adicionalmente, basado en listas de rechazo definidas por el usuario.
Rethink admite el reenvío de conexiones TCP y UDP a través de túneles SOCKS5, HTTP CONNECT y WireGuard. Además, el túnel dividido ayuda a ejecutar varios túneles de este tipo al mismo tiempo y permite a los usuarios enrutar diferentes aplicaciones a través de diferentes túneles. Por ejemplo, se podría enrutar Firefox a través de SOCKS5 conectándose a Tor, Netflix a través de WireGuard conectándose a través de cualquier proveedor de VPN popular y Telegram o WhatsApp a través de puntos finales HTTP CONNECT resistentes a la censura al mismo tiempo.
Al firewall realmente no le importan las conexiones per se, sino más bien lo que hace esas conexiones. Esto es diferente de los firewalls tradicionales pero está en línea con Little Snitch, LuLu, Glasswire y otros.
Actualmente, el mapeo de conexiones por aplicación se implementa capturando conexiones udp
y tcp
administradas por firestack
(escritas en golang) y solicitando a ConnectivityService el propietario, una API disponible solo en Android 10 o superior. procfs
( /proc/net/tcp
y /proc/net/udp
) se lee bajo demanda para rastrear conexiones por aplicación como lo hacen NetGuard u OpenSnitch, en Android 9 y versiones inferiores.
Un monitor de red es una especie de informe por aplicación sobre cuándo se realizaron las conexiones, cuántas y dónde. El seguimiento de TCP ha resultado sencillo hasta ahora. Los paquetes DNS son más difíciles de rastrear, por lo que por ahora se utiliza una heurística aproximada, que puede no ser válida en todos los casos.
Casi todo el código relacionado con la red ( firestack
), incluido DNS sobre túnel dividido HTTPS, es una bifurcación dura de Jigsaw-Code/outline-go-tun2socks escrito en golang. La interfaz de usuario es muy diferente, pero toma prestada mínimamente de Jigsaw-Code/Intra. Un túnel dividido atrapa las solicitudes enviadas al punto final DNS de la VPN y las retransmite a un punto final DNS sobre HTTPS/DNSCrypt elegido por el usuario, registrando la latencia de extremo a extremo, el tiempo de la solicitud, la consulta de solicitud DNS en sí y su respuesta.
Un solucionador de DNS sobre HTTPS que bloquea malware y publicidad en https://sky.rethinkdns.com/1:IAAgAA==
(implementado en más de 300 ubicaciones en todo el mundo a través de Cloudflare Workers) es el punto final de DNS predeterminado en la aplicación, aunque el el usuario es libre de cambiar eso. A finales de 2023 se lanzará un solucionador de DNS configurable que permite a los usuarios agregar o eliminar listas de permitidos y denegados, agregar reescrituras y analizar solicitudes de DNS. En este momento, se puede configurar un punto final DNS sobre HTTPS de uso gratuito con listas de bloqueo personalizadas aquí: rethinkdns.com/ configurar.
El solucionador se implementa en Fly.io en max.rethinkdns.com
y Deno Deploy en rdns.deno.dev
también, además de la implementación predeterminada en Cloudflare Workers.
El solucionador es un software de código abierto: serverless-dns.
Enrutar conexiones TCP a través de un proxy sin servidor (alojado en Cloudflare Workers) pronto será parte de Rethink. Los usuarios podrán alojarlos ellos mismos o utilizar los que administramos nosotros por $1 mes de ancho de banda ilimitado. Se espera que este servicio se lance a finales de 2023.
El proxy es un software de código abierto: proxy sin servidor.
Ayude a traducir Rethink DNS + Firewall en Weblate:
Rethink no es una herramienta de anonimato: ayuda a los usuarios a enfrentar la censura y la vigilancia constantes, pero no pretende proteger la identidad de un usuario en todo momento, si es que alguna vez lo hace.
Rethink no pretende ser un firewall tradicional rico en funciones: está más en línea con Little Snitch que con las tablas IP, digamos.
Rethink no es un antivirus: Rethink puede impedir que los usuarios realicen ataques de phishing, malware y sitios web de scareware a través de sus listas de bloqueo basadas en DNS, pero no mitiga activamente las amenazas ni las busca ni actúa en consecuencia, de lo contrario.
Convertir dispositivos Android en agentes de usuario: algo que los usuarios puedan controlar como quieran sin necesidad de acceso de root. Una gran parte de esto, para dispositivos siempre activos y conectados, es capturar el tráfico de red e informarlo de una manera que tenga sentido para los usuarios finales, quienes luego pueden tomar una serie de acciones para limitar su exposición, pero no necesariamente. eliminarlo. Tomemos como ejemplo el DNS: para la mayoría, si no para todas las conexiones, las aplicaciones envían primero una solicitud de DNS y, al rastrear solo esas, se puede obtener mucha información sobre lo que sucede con el teléfono y qué aplicación es responsable.
Para cumplir la promesa de una Internet abierta para todos: con la inevitable estandarización de ESNI y la inminente adopción de DNS sobre HTTPS y DNS sobre TLS en todos los sistemas operativos, estamos mucho más cerca de una Internet abierta. Por supuesto, la inspección profunda de paquetes sigue siendo una amenaza creíble que no se puede mitigar con esto, pero es un ejemplo de cómo lograr el máximo impacto (evitar la censura de Internet en la mayoría de los países) con un esfuerzo mínimo (sin requerir el uso de una VPN o acceso a través de IPFS). , Por ejemplo). Rethink continuaría haciendo que estas tecnologías sean accesibles de la manera más simple posible, especialmente aquellas que logran el 90% del camino con un 10% de esfuerzo.
Aún no hemos llegado a ese punto, puede que nunca lo lleguemos, pero estos son algunos principios del proyecto para el futuro previsible.
La censura de Internet (a veces impuesta por los ISP y muchas veces por el gobierno) y la incesante vigilancia (por parte de prácticamente todas las empresas y aplicaciones) nos impulsaron a emprender este camino. Nosotros tres, compañeros universitarios, Mohammed, Murtaza y Santhosh, nos reunimos a finales de 2019 en la tranquila ciudad de Coimbatore, India, para hacer algo al respecto. Nuestra principal queja era que había todas estas maravillosas herramientas que la gente podía usar pero no, ya sea por el costo o por la incapacidad de asimilar la jerga específica de la computadora. Han pasado muchas cosas desde que empezamos y muchas cosas han cambiado, pero nuestro enfoque siempre ha estado en Android y sus más de 2 mil millones de usuarios desprevenidos. La idea actual ha estado en proceso desde mayo de 2020, y la pandemia descarriló un poco el progreso y un poco de error al abandonar nuestra versión anterior en favor de la bifurcación actual, de la que aún no estamos orgullosos, pero es un comienzo. Todo está bien ahora que hemos ganado una subvención del programa MVP de Mozilla Builders para seguir adelante y construir lo que queríamos... hacerlo más rápido... y no simplemente dormir durante la ejecución. Espero que estén emocionados, pero no tanto como nosotros, por haber dejado sus trabajos por esto como lo hicimos nosotros.