Sempre que estou usando a Internet de um local inseguro (como wifi público), gosto de usar um túnel ssh ( ssh -D port host
) para garantir que meu tráfego não possa ser detectado. Infelizmente, parece haver muitos aplicativos que não fornecem uma maneira de especificar um proxy (o Flash é um exemplo importante).
Parece que deve haver alguma maneira de usar um túnel para todo o tráfego de rede do meu computador, mas eu sou completamente ignorante de como fazer isso. Qualquer ajuda seria muito apreciada.
Respostas:
Para fazer o que você quer, recomendo sshuttle .
Você o usa assim:
Ele encapsulará todo o seu tráfego TCP automaticamente para você. Você pode adicionar o
--dns
argumento para que ele também encapsule o tráfego DNS. O servidor remoto precisa apenas ter o Python instalado.Se você quiser apenas encapsular programas específicos, eu recomendaria proxychains .
Depois de instalado, inicie o proxy ssh socks da seguinte maneira:
Isso iniciará um proxy "SOCKS" escutando em <porta local>.
Em seguida, edite o /etc/proxychains.conf para apontar para a mesma porta que <porta local>.
Por fim, inicie o programa que você deseja usar como proxy:
Deveria funcionar. No entanto, alguns programas terão problemas para trabalhar com correntes de proxy. Lembre-se também de que, no Firefox, é necessário alterar itens adicionais em about: config para forçá-lo a fazer pesquisas de DNS por meio do proxy, em vez de ignorá-lo.
Como uma observação adicional, nos navegadores da web. Se eles suportam proxies de meias, você não precisa fazer nada adicional para fazê-los usar o túnel ssh mencionado acima, basta digitar 127.0.0.1 para o servidor proxy SOCKS e <porta local> para a porta proxy.
EDIT 29/29/16
Como este post ainda está vendo alguns votos positivos, pensei em atualizá-lo. Proxychains ainda está na maioria dos repositórios Linux e ainda funciona no Linux. No entanto, o projeto é efetivamente abandonado e não funciona no OSX. Para Linux ou OSX, recomendo atualizar para um fork ainda mantido: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Além de trabalhar no Linux e no OSX, é fácil de compilar e também oferece suporte muito melhor ao encapsulamento de DNS.
Devo também mencionar outra opção, que é redsocks. Funciona de maneira semelhante às proxychains (-ng) e também é provável no seu repo dist: https://github.com/darkk/redsocks
fonte
sshuttle -r root@host -x host 0/0
man ssh
dá um exemplo exatamente disso. Um vpn baseado em ssh:~~ snip ~~
Depois de instalar essa nova interface, você apenas precisará torná-la a rota padrão, o que é uma pergunta diferente.
fonte
Procure a opção "Tunnel" no ssh. Isso cria um dispositivo de encapsulamento ao qual você pode atribuir um endereço IP e, em seguida, altera a rota padrão para usar esse encapsulamento.
fonte
Desenvolvi um software que permite encaminhar todo o TCP e, opcionalmente, o UDP por meio de um proxy SOCKS5, em todo o sistema.
http://code.google.com/p/badvpn/wiki/tun2socks
Pode até ser instalado em um roteador para encaminhar todas as conexões dos computadores na LAN.
fonte
REDES PRIVADAS VIRTUAIS BASEADAS EM SSH ssh contém suporte para encapsulamento de rede virtual privada (VPN) usando o pseudo-dispositivo de rede tun (4), permitindo que duas redes sejam unidas com segurança. A opção de configuração sshd_config (5) PermitTunnel controla se o servidor suporta isso e em que nível (tráfego de camada 2 ou 3).
fonte
Só queria esclarecer que (ssh -D port host) não é uma maneira 100% segura de tráfego para não ser detectado. Adicionar (host da porta ssh -D -c blowfish) seria uma opção melhor porque você está adicionando criptografia à sua sessão. Você pode adicionar mais opções, mas é fácil digitar "man ssh" no seu terminal ou no Google para obter uma lista completa.
A opção que eu acho que você está procurando é configurar uma VPN (rede virtual privada)
Dê uma olhada neste artigo para entender a diferença entre os dois ( SSH x VPN ) ou uma boa versão resumida , antes de resolver a configuração de sua própria VPN. Se você decidir seguir a rota da VPN, recomendo o OpenVPN , é gratuito e possui muita documentação e suporte.
fonte
ssh -2 -C -D [...]
(forçar SSH2, usar compactação) e soltar o-c
. de acordo com o meu sistema,man ssh
a lista de cifras no SSH2 é padronizada comoaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. O que quero-c blowfish
dizer é que, se você solicitar, poderá acabar com o SSH1, que é muito menos seguro que o SSH2.Use estes exemplos:
Encaminhe a porta 80 de um host remoto para 8888 no seu host local
Use isso para acessar serviços em um host remoto disponível apenas lá
Encaminhar a porta 80 do yourlocalhost para 8888 em um host remoto
Use isso para permitir que outros usuários acessem seus serviços: servidor da web ou qualquer outra coisa.
Felicidades! :)
fonte