Un client WireGuard, un pare-feu et un moniteur réseau inspirés d'OpenSnitch + un client DNS sur HTTPS inspiré de pi-hole avec des listes de blocage.
En d'autres termes, Rethink DNS + Firewall propose trois modes principaux : VPN, DNS et Pare-feu. Le mode VPN (proxificateur) prend en charge plusieurs amonts WireGuard dans une configuration à tunnel divisé. Le mode DNS achemine tout le trafic DNS généré par les applications vers le résolveur DNS-over-HTTPS ou DNSCrypt choisi par l'utilisateur. Le mode Pare-feu permet à l'utilisateur de refuser l'accès Internet à des applications entières en fonction d'événements tels que l'activation/la désactivation de l'écran, l'application au premier plan/l'arrière-plan de l'application, la connexion illimitée/la connexion mesurée ; ou basé sur des catégories définies par le Play Store telles que Social, Jeux, Utilitaire, Productivité ; ou en outre, sur la base de listes de refus définies par l'utilisateur.
Rethink prend en charge le transfert des connexions TCP et UDP via les tunnels SOCKS5, HTTP CONNECT et WireGuard. Le tunneling fractionné permet en outre d’exécuter plusieurs tunnels de ce type en même temps et permet aux utilisateurs d’acheminer différentes applications via différents tunnels. Par exemple, on pourrait acheminer Firefox via SOCKS5 en se connectant à Tor, Netflix via WireGuard en se connectant via n'importe quel fournisseur VPN populaire, et Telegram ou WhatsApp via des points de terminaison HTTP CONNECT résistants à la censure en même temps.
Le pare-feu ne se soucie pas vraiment des connexions en soi, mais plutôt de ce qui établit ces connexions. Ceci est différent des pare-feu traditionnels mais conforme à Little Snitch, LuLu, Glasswire et autres.
Actuellement, le mappage des connexions par application est implémenté en capturant les connexions udp
et tcp
gérées par firestack
(écrites en Golang) et en demandant à ConnectivityService le propriétaire, une API disponible uniquement sur Android 10 ou version ultérieure. procfs
( /proc/net/tcp
et /proc/net/udp
) est lu à la demande pour suivre les connexions par application comme le font NetGuard ou OpenSnitch, sur Android 9 et les versions inférieures.
Un moniteur réseau est une sorte de rapport par application indiquant quand les connexions ont été établies, combien ont été établies et où. Le suivi de TCP s’est avéré jusqu’à présent simple. Les paquets DNS sont plus difficiles à suivre, c'est pourquoi une heuristique approximative est utilisée pour l'instant, qui peut ne pas être valable dans tous les cas.
Presque tout le code lié au réseau ( firestack
), y compris DNS sur tunnel partagé HTTPS, est un hard fork de Jigsaw-Code/outline-go-tun2socks écrit en golang. L'interface utilisateur est très différente mais emprunte peu à Jigsaw-Code/Intra. Un tunnel divisé piège les requêtes envoyées au point de terminaison DNS du VPN et les relaie vers un point de terminaison DNS sur HTTPS / DNSCrypt du choix de l'utilisateur, enregistrant la latence de bout en bout, l'heure de la requête, la requête de requête DNS elle-même et son répondre.
Un résolveur DNS sur HTTPS bloquant les logiciels malveillants et les publicités sur https://sky.rethinkdns.com/1:IAAgAA==
(déployé dans plus de 300 emplacements dans le monde via Cloudflare Workers) est le point de terminaison DNS par défaut sur l'application, bien que le l'utilisateur est libre de changer cela. Un résolveur DNS configurable qui permet aux utilisateurs d'ajouter ou de supprimer des listes de refus et des listes d'autorisation, d'ajouter des réécritures et d'analyser les requêtes DNS sera lancé fin 2023. À l'heure actuelle, un point de terminaison DNS sur HTTPS gratuit avec des listes de blocage personnalisées peut être configuré ici : rethinkdns.com/ configurer.
Le résolveur est également déployé sur Fly.io sur max.rethinkdns.com
et Deno Deploy sur rdns.deno.dev
, en dehors du déploiement par défaut sur Cloudflare Workers.
Le résolveur est un logiciel open source : serverless-dns.
Le routage des connexions TCP via un proxy sans serveur (hébergé sur Cloudflare Workers) fera bientôt partie de Rethink. Les utilisateurs pourraient les héberger eux-mêmes ou utiliser ceux que nous gérons pour 1 $ par mois de bande passante illimitée. Ce service devrait être lancé fin 2023.
Le proxy est un logiciel open source : proxy sans serveur.
Aidez à traduire Rethink DNS + Firewall sur Weblate :
Rethink n'est pas un outil d'anonymat : il aide les utilisateurs à lutter sans relâche contre la censure et la surveillance, mais ne prétend pas protéger l'identité d'un utilisateur à tout moment, voire jamais.
Rethink ne vise pas à être un pare-feu traditionnel riche en fonctionnalités : il est plus conforme à Little Snitch qu'aux tables IP, par exemple.
Rethink n'est pas un antivirus : Rethink peut empêcher les utilisateurs d'attaques de phishing, de logiciels malveillants et de sites Web effrayants via ses listes de blocage basées sur DNS, mais il n'atténue pas activement les menaces, ni même les recherche ou n'agit pas en conséquence.
Pour transformer les appareils Android en agents utilisateurs : quelque chose que les utilisateurs peuvent contrôler à leur guise sans nécessiter un accès root. Une grande partie de cela, pour des appareils toujours actifs et toujours connectés, consiste à capturer le trafic réseau et à le signaler d'une manière logique pour les utilisateurs finaux qui peuvent ensuite prendre une série d'actions pour limiter leur exposition, mais pas nécessairement. l'éliminer. Prenez le DNS par exemple : pour la plupart, sinon toutes les connexions, les applications envoient d'abord une requête DNS, et en suivant uniquement celles-ci, on peut obtenir beaucoup d'informations sur ce qui se passe avec le téléphone et quelle application est responsable.
Tenir la promesse d’un Internet ouvert pour tous : avec l’inévitable normalisation ESNI et l’adoption imminente du DNS sur HTTPS et du DNS sur TLS sur tous les systèmes d’exploitation, nous sommes d’autant plus proches d’un Internet ouvert. Bien sûr, l'inspection approfondie des paquets reste une menace crédible qui ne peut être atténuée par cette méthode, mais c'est un exemple d'impact maximal (contourner la censure d'Internet dans la plupart des pays) avec un minimum d'effort (ne nécessitant pas l'utilisation d'un VPN ou un accès via IPFS). , Par exemple). Rethink continuerait à rendre ces technologies accessibles de la manière la plus simple possible, en particulier celles qui parcourent 90 % du chemin avec 10 % d'effort.
Nous n’en sommes pas encore là, et nous ne le serons peut-être jamais, mais ce sont quelques principes pour le projet dans un avenir prévisible.
La censure d’Internet (parfois imposée par les FAI et souvent par le gouvernement), la surveillance continue (par presque toutes les entreprises et applications) nous ont poussés sur cette voie. Nous trois, camarades de classe universitaires, Mohammed, Murtaza et Santhosh, nous sommes réunis fin 2019 dans la ville endormie de Coimbatore, en Inde, pour faire quelque chose. Notre principal reproche était qu'il y avait tous ces merveilleux outils que les gens pouvaient utiliser mais ne pouvaient pas, soit à cause du coût, soit à cause de l'incapacité à comprendre le jargon spécifique à l'ordinateur. Beaucoup de choses se sont passées depuis nos débuts et beaucoup de choses ont changé, mais nous nous sommes toujours concentrés sur Android et ses 2B+ utilisateurs sans méfiance. L'idée actuelle est en préparation depuis mai 2020, avec la pandémie qui a fait dérailler un peu les progrès, et un peu de snafu avec l'abandon de notre version précédente au profit du fork actuel, dont nous ne sommes pas encore fiers, mais il est un début. Tout va bien maintenant que nous avons gagné une subvention du programme Mozilla Builders MVP pour aller de l'avant et construire ce que nous voulions... le faire plus rapidement... et ne pas simplement dormir pendant l'exécution. J'espère que vous êtes enthousiasmés, mais pas autant que nous, par le fait que vous ayez quitté votre emploi pour cela, comme nous l'avons fait.