Roteie tráfego Android por túnel SSH seguro

Links Rápidos
O que você vai precisar
Baixando e configurando o SSH Tunnel para Android
Testando a conexão do túnel SSH
Solução de problemas e quando falha
Alternativas e considerações de segurança
Antes de entrar no passo a passo, um breve contexto: túnel SSH é uma forma prática de criar um canal criptografado entre seu celular e um servidor remoto (por exemplo, o SSH na sua rede doméstica). Isso protege seu tráfego contra interceptação entre o provedor de celular ou redes Wi‑Fi públicas e o servidor que faz a saída para a Internet.
Se você ainda não sabe o que é SSH: SSH (Secure Shell) é um protocolo para acesso remoto seguro e tunelamento de tráfego. Em uma linha: SSH cria um canal criptografado entre cliente e servidor.
O que você vai precisar
- Um celular Android com acesso root (Android 1.6 ou superior). O root é necessário para redirecionar o tráfego do sistema.
- O aplicativo gratuito SSH Tunnel for Android (ou o APK, se não conseguir acessar a Google Play).
- Um servidor SSH acessível pela Internet (pode ser um servidor remoto, VPS ou um roteador residencial com SSH configurado).
- Credenciais SSH (usuário e senha) ou, preferencialmente, um par de chaves autorizado (private key). Conhecimento básico de SSH e de como transferir arquivos para o dispositivo Android (via USB, ADB ou cartão SD).
Importante: se você não tem root, veja a seção Alternativas mais abaixo. Se não está seguro sobre chaves SSH, leia a seção sobre geração e uso de chaves.
Baixando e configurando o SSH Tunnel para Android
- Obtenha o app: baixe SSH Tunnel for Android pela Google Play ou instale o APK se necessário.
- Abra o app. Na primeira execução, não ative o túnel ainda (não marque o interruptor principal). Vá para as configurações do aplicativo.
Na seção de configurações SSH Tunnel, informe:
- Host: o endereço IP público ou hostname do seu servidor SSH.
- Porta: porta do SSH (padrão 22). Só altere se seu servidor usar porta diferente.
- Nome de usuário e senha: credenciais do usuário SSH.
Autenticação por chave (recomendado): se usar chave privada (.ppk), copie o arquivo para /sdcard/sshtunnel/key/ no seu dispositivo. Em seguida, no app pressione o menu e abra Key File Manager.
- No Key File Manager navegue até /sshtunnel/key/ e selecione o arquivo .ppk que corresponde ao servidor (ex.: HomeRouter.ppk). Se gerar várias chaves, nomeie-as de forma descritiva para facilitar.
Observação: a troca entre autenticação por senha e por chave é geralmente feita no servidor SSH (arquivo de configuração do servidor ou gerenciador de contas), não no app do celular.
- Habilite o proxy SOCKS interno: na seção Port Forwarding, marque “Use socks proxy”. O app cria um servidor SOCKS local no dispositivo que redireciona conexões via SSH.
- Decidir o escopo do roteamento:
- Global Proxy: roteia TODO o tráfego do dispositivo pelo túnel SSH (recomendado se seu objetivo for proteger todas as conexões). Marque “Global Proxy”.
- Individual Proxy: roteia apenas aplicativos selecionados. Marque “Individual Proxy” e selecione os apps desejados (navegador, redes sociais etc.).
- Configurações de recurso: reveja e ajuste conforme sua necessidade:
- Auto Connect: permite que o app se conecte automaticamente quando o servidor estiver disponível.
- Auto Reconnect: reestabelece a conexão caso ela caia.
- Enable GFW List: recurso específico para contornar filtros do tipo “Great Firewall” — geralmente não é necessário fora desses ambientes.
- Enable DNS Proxy: marque por padrão. Direciona consultas DNS pelo túnel; se desmarcar, o DNS pode vazar para a rede do provedor.
Importante: deixar “Enable DNS Proxy” marcado reduz vazamentos de informação sobre quais nomes de domínio você consulta.
Gerando e instalando chaves SSH (resumo rápido)
Se optar por usar chaves, o processo básico é:
- Gere um par de chaves no seu computador: ssh-keygen -t rsa -b 4096 (Linux/macOS) ou use PuTTYgen para .ppk (Windows).
- Copie a chave pública para o servidor (adicionar ao ~/.ssh/authorized_keys do usuário SSH).
- Converta/obtenha a chave privada em formato .ppk se o app precisar desse formato (PuTTY uses .ppk). Coloque o arquivo .ppk em /sdcard/sshtunnel/key/.
Se não souber como, procure guias de “gerar chaves SSH” para o seu sistema operacional.
Testando a conexão do túnel SSH
- Verifique seu IP público móvel antes do túnel: no navegador do dispositivo pesquise “qual é o meu ip”. Anote o endereço mostrado — ele é o IP da sua conexão celular.
Abra o SSH Tunnel e ative o interruptor principal (Tunnel Switch). Na primeira vez o SuperUser/root pedirá permissão — permita e marque “Lembrar” para evitar repetidas solicitações.
Aguarde a conexão; o app notificará se foi bem-sucedido. Você também verá um ícone/entrada na barra de notificações indicando que o túnel está ativo.
- Refaça a busca “qual é o meu ip” no navegador. Se o túnel estiver funcionando corretamente, o IP exibido será o do servidor SSH (ou da rede de saída do servidor), não o IP do provedor móvel.
Se o IP mudou para o do seu servidor SSH, sucesso: o tráfego do navegador (ou de todo o dispositivo, se Global Proxy ativo) está passando pelo túnel.
Critérios de aceitação / Testes de aceitação
- Antes do túnel: verifique e anote o IP público do dispositivo.
- Ative o túnel: o app exibe conexão estabelecida sem erros.
- Após ativar: o IP público visível no navegador deve corresponder ao IP do servidor SSH.
- DNS: consulte um site de verificação de DNS leak; as consultas DNS devem mostrar o servidor remoto (ou não vazar para o provedor local) quando o DNS Proxy estiver habilitado.
- Aplicativos selecionados (se Individual Proxy): apenas apps marcados devem usar o túnel; outros permanecem usando a conexão direta.
Solução de problemas (quando e por que isso pode falhar)
- Erro de autenticação: verifique usuário/senha e se a chave privada corresponde à chave pública no servidor. Confira permissões do arquivo authorized_keys (~/.ssh/authorized_keys) no servidor.
- Conexão cai imediatamente: veja logs do SSH no servidor (frequentemente /var/log/auth.log ou journalctl) para mensagens de desconexão; ajuste KeepAlive ou Enable TCPKeepAlive.
- DNS vazando: certifique-se de que “Enable DNS Proxy” está habilitado e que o app tem permissão root para redirecionar tráfego DNS.
- App impede conexão por falta de root: confirme que o dispositivo está realmente com root e que o SuperUser/ Magisk concedeu permissão ao SSH Tunnel.
- Porta bloqueada pelo provedor: alguns provedores restringem portas; teste usar porta 443 (TLS) no servidor SSH para contornar bloqueios, tomando cuidado com conflitos com servidores HTTPS existentes.
- Latência/velocidade lenta: roteamento via servidor remoto pode reduzir velocidade; teste a velocidade antes/depois e compare. Escolha um servidor com boa conexão e baixa latência ao seu local.
Dica: ative logs no app e analise mensagens de erro; use também ferramentas no servidor para verificar conexões entrantes.
Segurança e hardening (boas práticas)
- Use chaves SSH com passphrase em vez de apenas senha. Proteja a chave privada no dispositivo com armazenamento seguro.
- No servidor, desabilite autenticação por senha se possível e permita apenas chaves públicas (PasswordAuthentication no sshd_config = no).
- Proteja a conta do usuário SSH: limite comandos permitidos (ForceCommand) ou crie um usuário dedicado apenas para tunelamento.
- Mantenha o servidor SSH atualizado e com firewall configurado (por exemplo, permitir apenas IPs confiáveis ou usar fail2ban para bloquear tentativas de força bruta).
- Se possível, use uma chave RSA/ed25519 forte; evite chaves fracas ou formatos obsoletos.
- Revogue acesso quando necessário: remova chaves públicas do authorized_keys quando não usadas.
Privacidade e notas sobre dados (GDPR e semelhantes)
- O túnel criptografa o tráfego entre seu dispositivo e o servidor. Entretanto, o provedor do servidor (ou o próprio servidor) vê o tráfego de saída e pode registrar metadados. Escolha um servidor que você confie.
- Se dados pessoais são processados, considere políticas de retenção e conformidade locais (por exemplo, GDPR na UE). Se usar um VPS de terceiro, revise os termos de serviço e localização dos dados.
- DNS encaminhado pelo túnel reduz exposições, mas o servidor remoto continuará resolvendo nomes — portanto, o operador do servidor pode ver quais domínios você consulta.
Alternativas ao túnel SSH
- VPN (OpenVPN, WireGuard): geralmente mais simples para usuários sem root (dependendo da implementação) e oferece tunelamento de sistema completo com clientes oficiais. WireGuard tende a ter melhor desempenho.
- Proxy HTTPS/HTTP (NTLM, Socks): útil para aplicativos específicos, mas não criptografa tudo por padrão e pode expor DNS.
- Apps sem root que usam VPNService API: alguns apps criam uma VPN local para redirecionar tráfego sem exigir root (ex.: Orbot/Tor, clientes VPN comerciais). Recomendado se você não quer/rootar o dispositivo.
Quando escolher SSH vs VPN:
- Prefira SSH quando já tem um servidor SSH e quer uma solução rápida e leve.
- Prefira VPN (WireGuard/OpenVPN) para melhor desempenho e compatibilidade com todo o sistema sem root (via VPNService).
Playbook passo a passo (SOP rápido)
- Verifique acesso root e instale SSH Tunnel.
- Confirme acesso SSH ao servidor a partir de um computador (ssh usuario@servidor).
- Gere chave SSH, instale a pública no servidor e copie a privada (.ppk) para /sdcard/sshtunnel/key/.
- Configure host, porta, usuário e método de autenticação no app.
- Ative “Use socks proxy” e escolha Global Proxy ou Individual Proxy.
- Habilite DNS Proxy e Auto Reconnect se desejar.
- Ative Tunnel Switch e autorize permissão root.
- Teste IP e DNS; verifique logs se necessário.
Checklist por papel
Administrador / Entusiasta técnico:
- Servidor SSH disponível e atualizado
- Chave pública instalada e permissões corretas
- Firewall configurado no servidor
- Testes de logs e permissão root no dispositivo
Usuário final / Não técnico:
- App instalado
- Chave privada ou credenciais fornecidas (por alguém de confiança)
- Tunnel ativo e IP confirmado mudado
- DNS Proxy habilitado
Casos de uso e quando isso falha (contraexemplos)
- Cenário: Você está numa rede corporativa que bloqueia tráfego SSH; o túnel não se conecta. Alternativa: usar VPN na porta 443 ou autorização com o administrador de rede.
- Cenário: Aplicativos que usam redes móveis e tentam negociar certificados/pins podem falhar se o servidor fizer interceptação de SSL. Evite inspecionar SSL no servidor.
- Cenário: Você precisa de baixa latência e alta largura de banda (streaming de vídeo em alta resolução): um túnel SSH através de um servidor lento causará buffering. Alternativa: servidor mais próximo geograficamente ou VPN otimizada.
Testes/aceitação detalhados
- Teste 1 — Verificar IP: pesquisar “qual é o meu ip” antes e depois.
- Teste 2 — Teste de vazamento DNS: use um serviço de “DNS leak test” e confirme que os resolvers listados correspondem ao servidor remoto.
- Teste 3 — Teste de aplicativos: abra aplicativos marcados para Individual Proxy e verifique conectividade; abra aplicativos não marcados e confirme acesso direto.
Modelo mental / Heurística
Pense no túnel SSH como um tubo seguro entre seu telefone e um ponto de saída confiável. Tudo que você empurra por esse tubo fica criptografado até o ponto de saída. Objetivo: reduzir a superfície de ataque entre você e esse ponto confiável.
Mini-ficha técnica (valores e padrões comuns)
- Porta SSH padrão: 22
- Diretório da chave no Android (app): /sdcard/sshtunnel/key/
- Formato comum para app: .ppk (PuTTY Private Key) — converta se necessário
Resumo final
- Um túnel SSH bem configurado permite criptografar o tráfego do seu Android até um servidor confiável.
- Root é necessário para proxy global; sem root, considere VPN ou apps baseados em VPNService.
- Use chaves SSH fortes, habilite DNS Proxy e proteja o servidor remoto.
- Teste IP e vazamentos DNS para confirmar que o túnel está funcionando.
Importante: O servidor remoto vê o tráfego após o término do túnel. Confie no operador do servidor e tenha políticas de retenção adequadas se for lidar com dados sensíveis.
Perguntas frequentes
Posso usar esse método sem root?
Sem root, você não consegue redirecionar todo o tráfego do sistema via SSH Tunnel. Alternativas viáveis são clientes VPN (WireGuard/OpenVPN) ou apps que usam a API VPNService do Android.
O túnel protege contra registros no servidor remoto?
Não — o túnel criptografa entre o dispositivo e o servidor, mas o servidor ou o operador dele podem registrar tráfego, metadados e DNS resolvido.
Posso usar meu roteador doméstico como servidor SSH?
Sim. Um roteador com firmware que inclui um servidor SSH (ou um servidor dedicado em sua rede) funciona bem, desde que você exponha o SSH e configure NAT/encaminhamento de porta no roteador principal.
É melhor usar SSH ou VPN?
Depende do objetivo: SSH é simples e funciona bem se você já tem servidor SSH. Para compatibilidade total do sistema e potencialmente melhor desempenho, VPN (WireGuard/OpenVPN) é geralmente a escolha preferida.
Se quiser, posso gerar uma checklist imprimível, um conjunto de comandos para configurar chaves no Linux/macOS/Windows, ou um diagrama de fluxo Mermaid para decidir entre SSH e VPN.
Materiais semelhantes

Editor de blog com Word 2010

pv vs progress: barras de progresso no terminal

Duas fotos de perfil no Facebook — tutorial

Chave Mawizeh Slum Discarded Cache — onde encontrar

Design de Personagens 3D: Guia Prático e Completo
