Um cliente WireGuard, um firewall e monitor de rede inspirado no OpenSnitch + um cliente DNS sobre HTTPS inspirado em pi-hole com listas de bloqueio.
Em outras palavras, Rethink DNS + Firewall possui três modos principais, VPN, DNS e Firewall. O modo VPN (proxificador) oferece suporte a vários upstreams do WireGuard em uma configuração de túnel dividido. O modo DNS roteia todo o tráfego DNS gerado pelos aplicativos para qualquer resolvedor DNS sobre HTTPS ou DNSCrypt escolhido pelo usuário. O modo Firewall permite que o usuário negue acesso à Internet a aplicativos inteiros com base em eventos como tela ligada/desligada, primeiro plano/fundo do aplicativo, conexão ilimitada/conexão medida; ou com base em categorias definidas pela Play Store, como Social, Jogos, Utilidade, Produtividade; ou adicionalmente, com base em listas de bloqueio definidas pelo usuário.
Rethink oferece suporte ao encaminhamento de conexões TCP e UDP através de túneis SOCKS5, HTTP CONNECT e WireGuard. O tunelamento dividido ajuda ainda mais a executar vários desses túneis ao mesmo tempo e permite que os usuários roteem aplicativos diferentes em túneis diferentes. Por exemplo, pode-se rotear o Firefox através do SOCKS5 conectando-se ao Tor, o Netflix através do WireGuard conectando-se através de qualquer provedor VPN popular e o Telegram ou WhatsApp através de endpoints HTTP CONNECT resistentes à censura ao mesmo tempo.
O firewall realmente não se importa com as conexões em si, mas sim com o que está fazendo essas conexões. Isso é diferente dos firewalls tradicionais, mas está alinhado com Little Snitch, LuLu, Glasswire e outros.
Atualmente, o mapeamento de conexões por aplicativo é implementado capturando conexões udp
e tcp
gerenciadas pelo firestack
(escritas em golang) e solicitando ConnectivityService para o proprietário, uma API disponível apenas no Android 10 ou superior. procfs
( /proc/net/tcp
e /proc/net/udp
) é lido sob demanda para rastrear conexões por aplicativo, como NetGuard ou OpenSnitch, no Android 9 e versões anteriores.
Um monitor de rede é uma espécie de relatório por aplicativo sobre quando as conexões foram feitas, quantas foram feitas e para onde. O rastreamento do TCP revelou-se até agora simples. Os pacotes DNS são mais difíceis de rastrear e, portanto, uma heurística aproximada é usada por enquanto, o que pode não ser válido em todos os casos.
Quase todo o código relacionado à rede ( firestack
), incluindo DNS sobre HTTPS split-tunnel, é um hard fork de Jigsaw-Code/outline-go-tun2socks escrito em golang. A IU é muito diferente, mas se baseia minimamente no Jigsaw-Code/Intra. Um túnel dividido captura solicitações enviadas ao endpoint DNS da VPN e as retransmite para um endpoint DNS sobre HTTPS / DNSCrypt de escolha do usuário, registrando a latência ponta a ponta, o tempo da solicitação, a própria consulta de solicitação de DNS e sua responder.
Um resolvedor DNS sobre HTTPS de bloqueio de anúncios e malware em https://sky.rethinkdns.com/1:IAAgAA==
(implantado em mais de 300 locais em todo o mundo por meio do Cloudflare Workers) é o endpoint DNS padrão no aplicativo, embora o o usuário é livre para mudar isso. Um resolvedor de DNS configurável que permite aos usuários adicionar ou remover listas de bloqueio e listas de permissão, adicionar reescritas e analisar solicitações de DNS será lançado no final de 2023. No momento, um endpoint DNS sobre HTTPS gratuito com listas de bloqueio personalizadas pode ser configurado aqui: rethinkdns.com/ configurar.
O resolvedor é implantado no Fly.io em max.rethinkdns.com
e no Deno Deploy em rdns.deno.dev
também, além da implantação padrão em Cloudflare Workers.
O resolvedor é um software de código aberto: serverless-dns.
O roteamento de conexões TCP por meio de um proxy sem servidor (hospedado no Cloudflare Workers) em breve fará parte do Rethink. Os usuários poderiam hospedá-los por conta própria ou usar aqueles administrados por nós por US$ 1 mês de largura de banda ilimitada. Espera-se que este serviço seja lançado no final de 2023.
O proxy é um software de código aberto: proxy sem servidor.
Ajude a traduzir Rethink DNS + Firewall no Weblate:
Rethink não é uma ferramenta de anonimato: ela ajuda os usuários a enfrentar a censura e a vigilância inabaláveis, mas não reivindica a proteção da identidade de um usuário em todos os momentos, ou nunca.
O Rethink não pretende ser um firewall tradicional rico em recursos: ele está mais alinhado com o Little Snitch do que com tabelas de IP, por exemplo.
Rethink não é um antivírus: Rethink pode impedir os usuários de ataques de phishing, malware e sites de scareware por meio de suas listas de bloqueio baseadas em DNS, mas não mitiga ativamente as ameaças, nem mesmo as procura ou age sobre elas, caso contrário.
Para transformar dispositivos Android em agentes de usuário: algo que os usuários podem controlar como quiserem, sem exigir acesso root. Uma grande parte disso, para dispositivos sempre ligados e sempre conectados, é capturar o tráfego de rede e relatá-lo de uma forma que faça sentido para os usuários finais, que podem então tomar uma série de ações para limitar sua exposição, mas não necessariamente eliminá-lo. Veja o DNS, por exemplo - para a maioria, senão todas as conexões, os aplicativos enviam uma solicitação de DNS primeiro e, rastreando apenas essas, é possível obter muita inteligência sobre o que está acontecendo com o telefone e qual aplicativo é responsável.
Para cumprir a promessa de uma Internet aberta para todos: Com a inevitável padronização ESNI e a adoção iminente de DNS sobre HTTPS e DNS sobre TLS em todos os sistemas operacionais, estamos muito mais próximos de uma Internet aberta. É claro que a Inspeção Profunda de Pacotes continua sendo uma ameaça confiável que não pode ser mitigada com isso, mas é um exemplo de como proporcionar o máximo impacto (contornar a censura na Internet na maioria dos países) com esforço mínimo (não exigindo o uso de VPN ou acesso via IPFS). , por exemplo). Repensar continuaria a tornar estas tecnologias acessíveis da forma mais simples possível, especialmente aquelas que chegam a 90% do caminho com 10% de esforço.
Ainda não chegamos lá, talvez nunca cheguemos, mas estes são alguns princípios para o projeto no futuro próximo.
A censura na Internet (às vezes imposta pelo ISP e muitas vezes pelo governo) e a vigilância inabalável (por praticamente todas as empresas e aplicativos) nos levaram a seguir esse caminho. Nós três, colegas de universidade, Mohammed, Murtaza e Santhosh, nos reunimos no final de 2019 na pacata cidade de Coimbatore, na Índia, para fazer algo a respeito. Nossa principal reclamação era que havia todas essas ferramentas maravilhosas que as pessoas podiam usar, mas não podiam, seja devido ao custo ou devido à incapacidade de entender o jargão específico do computador. Muita coisa aconteceu desde que começamos e muita coisa mudou, mas nosso foco sempre esteve no Android e em seus mais de 2 bilhões de usuários desavisados. A ideia atual está em andamento desde maio de 2020, com a pandemia atrapalhando um pouco o progresso e um pouco confuso com o abandono de nossa versão anterior em favor da bifurcação atual, da qual ainda não nos orgulhamos, mas é é um começo. Tudo bem agora que ganhamos uma bolsa do programa Mozilla Builders MVP para seguir em frente e construir aquilo que queríamos... fazê-lo mais rápido... e não simplesmente dormir durante a execução. Espero que você esteja animado, mas não tanto quanto nós por ter largado o emprego por causa disso, como nós fizemos.