Proxy SSH over Socks sem nome de usuário ou senha

8

Eu tenho uma lista de servidores proxy SOCKS neste site.

Eu li sobre a criação de túneis dinâmicos ssh -De, para ser sincero, já tentei isso. Infelizmente, por algum motivo, não consigo me conectar a nenhum servidor proxy da lista.

Estou usando OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8kno BackTrack. Se alguém estiver disposto a ajudar ou indicar um guia passo a passo que funcionará para mim, ficaria muito grato.

O que eu quero alcançar é Conectar da máquina Aatravés do túnel ssh na máquina Bà máquina C. Vamos dizer que o sshd na máquina Cestá escutando na porta 21 e o Bproxy da máquina está escutando na porta 1080.

Pergunta adicional:

Eu também gostaria de criar um túnel para peúgas do servidor proxy que me permitisse configurar o localhost: 8080 no firefox como um proxy e me permitisse navegar na rede pelo endereço IP da máquina Bcom máquina B.

mnmnc
fonte
O que você está tentando fazer? Estou certo ao supor que "Máquina B" deveria pertencer a essa lista?
sr_ 02/10/12
Estou tentando usar um servidor no meio como um proxy de salto para conectar-se à terceira máquina. a máquina B está na lista - correta. Eu também gostaria de criar um túnel para peúgas do servidor proxy que me permitisse configurar o localhost: 8080 no firefox como um proxy e me permitisse navegar na rede a partir da Máquina B com o endereço IP da Máquina B.
Mnmnc #
Por que você está executando o ssh na porta 21?
Flimzy

Respostas:

10

Parece-me que você precisa de um cliente de meias ou um cliente ssh que entenda as meias. -Dé para ssh ser um servidor / proxy de meias.

Você pode usar ssh under tsocksou outro wrapper SOCKS. Ou use o ProxyCommand do ssh em conjunto com socatou nc -X:

ssh -o ProxyCommand='socat - socks:B:%h:21,socksport=1080' C

Para ter um proxy HTTP que usa o servidor SOCKS para enviar solicitações HTTP, você pode executar um pequeno proxy (como tinyproxy) em tsocks.

Observe que nem todos os aplicativos jogam bem com tsocksqualquer invólucro semelhante ou confiável LD_PRELOAD, mas o tinyproxyfazem.

Observe também que você pode ter problemas com a resolução de nomes de domínio (dependendo se você deseja que os nomes sejam resolvidos em ambos os lados do túnel). tsocksnão funciona bem para resolver nomes remotamente. A única maneira de funcionar é quando seu servidor de nomes (in /etc/resolv.conf) é acessível do outro lado e você está usando o TCP para resolução de domínio (que tsockspode tentar impor, mas geralmente falha na minha experiência). socksifya partir dantede cliente / servidor SOCKS funciona melhor nesse caso, uma vez que também envolve funções de resolver e também pode usar um pequeno truque bom para a resolução de nome falso de modo que SOCKS por nome conexões podem ser usados.

Stéphane Chazelas
fonte
YEY! Isso funciona ssh -o ProxyCommand='socat - socks:218.62.97.105:HOST_B:21,socksport=1080' C. Isso é realmente bom. Obrigado. Você seria capaz de sugerir um comando para criar um túnel com esse proxy de meias que eu poderia configurar no firefox como um proxy da web local? Não tenho certeza se isso pode funcionar: Firefox + túnel de porta local -> túnel de meias Máquina B -> Servidor HTTP. Se for possível e você souber como fazer isso, compartilhe e eu prometo a você +100 :) por isso. Se for impossível, ainda darei +50 pela resposta acima.
Mnmnc 02/10/12
1
O Firefox suporta meias directamente (ver opções de proxy em configurações avançadas, rede)
Stéphane Chazelas
Está bem. Talvez eu tenha te enganado ao sugerir o Firefox. Vamos dizer CURL - e eu quero conectar via proxy local para que eu possa automatizar em bash script a criação do túnel.
Mnmnc 02/10/12
2
Bem, o curl também suporta SOCKS. Então, você gostaria de transformar um proxy de meias em um proxy HTTP? Depois, você pode executar um servidor proxy HTTP (como tinyproxy) sobtsocks
Stéphane Chazelas
Está bem. tsocks parece ser exatamente o que eu preciso. prêmio em 2 dias, conforme prometido. Muito obrigado. :)
mnmnc