Roteando todo o tráfego através do proxy de meias usando ssh -D

9

é uma maneira fácil de rotear todo o tráfego através de um proxy ssh com -D?

Posso configurar aplicativos específicos individuais para fazer isso, mas gostaria de uma configuração que roteie todo o tráfego na máquina. Obrigado pela ajuda!

grm
fonte
Esqueci de dizer que estava no linux de maneira tão ideal, algo pelo qual posso rotear usando o iptables.
grm

Respostas:

10

No Linux:

  1. iptables -t nat -Uma saída! -d 127.0.0.0/8 -j REDIRECIONAR - até 1081
  2. Execute o programa que escuta 1081, recupera o endereço de destino real e não redirecionado, negocia com o servidor SOCKS e as retransmissões.

Eu escrevi esse programa para uso privado em Perl (qualidade do protótipo) e escrevi uma versão melhor em C. Ele ainda não foi publicado.

Atualização: agora publicada: http://github.com/vi/socksredirect/ Use prototype.pl. Envie-me um aviso se estiver interessado no desenvolvimento de uma versão melhor.

Atualização 2 Criou uma versão um pouco melhor: http://github.com/vi/tcpsocks e um patch para o Socat 2: http://github.com/vi/socksredirect/blob/master/socat-2.0.0- b3-REDIRECT.patch

PS: A maior parte do meu tráfego (e às vezes alguns dos vizinhos) passa agora pelo tcpsocks-> ssh.

Vi.
fonte
Projeto muito interessante Vi. Obrigado! Vou dar uma olhada nisso.
GRM
Provavelmente, você deve usar mais regras do iptables para selecionar qual tráfego você deseja fazer socksified. Eu uso "iptables -t nat -A OUTPUT -j QQQ", depois um monte de "iptables -t nat -A QQQ <checks> -j RETURN" e finalmente "iptables -t nat -A QQQ -p tcp -j REDIRECT - -para 1234 ".
Vi.
Obrigado! Fiquei me perguntando se isso era possível, estava na minha longa lista de idéias de projetos para tentar algum dia.
Tobu
@Tobu, eu implementei isso mais: agora existe um patch Socat ( github.com/vi/socksredirect/blob/master/… ) para este e também um programa tcpsocks leve ( github.com/vi/tcpsocks )
Vi .
1
@ Tanmay, Com um dispositivo tun, você verá apenas pacotes TCP e seria complicado decodificá-los em um fluxo de bytes (você precisaria de algo como slirp). com REDIRECT ou TPROXY, basta usar o habitual, recvque fornece dados decodificados sem cabeçalhos TCP.
Vi.
8

Avery Pennarun sshuttle funciona semelhante a Vi 's resposta , mas requer menos configuração e obras em BSD e OS X, bem como Linux.

efémero
fonte
2

Talvez você deva considerar a configuração da VPN.

Espennilsen
fonte
Isso não exigiria mais acesso no lado do gateway?
grm
Eu tenho uma configuração de servidor VPN (poptop) em casa no Ubuntu. E no trabalho, apenas uso o cliente VPN embutido no Windows para conectar-se a ele. Não incomode meu administrador de rede ou algo assim.
Espennilsen
1

Acho que não há maneira de fazer isso, mas talvez você possa experimentar programas como o FreeCap (windows), SocksCap (windows) ou proxychains (linux). Esses programas podem ajudá-lo um pouco.

Peixe no vapor
fonte
0

Depende do sistema operacional que você está usando. Se você estiver no MacOS, existem configurações globais de proxy que devem ser usadas por todos os aplicativos, mesmo que haja quem não as honre (Firefox, por exemplo).

Sideshowcoder
fonte
Com o MacOS em particular, é necessário verificar a confiança nas configurações globais de proxy.
chiggsy
-1

Você também pode usar algo como Proxifier ( http://www.proxifier.com/ ) para Mac ou Windows.

Embora isso realmente não responda a sua pergunta.

hortelã
fonte
resposta não está no ponto #
Alex H