Prefácio: O que estou procurando são instruções explícitas, no mesmo formato acima. Ou seja, algo como executar: “… execute o comando X na máquina A e depois o comando Y na máquina B…”
Eu tenho um proxy de meias de trabalho do meu laptop (máquina A) para a máquina B:
[A]$ ssh -ND 8888 B
Posso configurar o Firefox para usar o proxy SOCKS na porta local de A 8888
e navegar no A funciona. Por enquanto, tudo bem.
Mas também tenho um proxy de meias entre as máquinas B e C:
[B]$ ssh -ND 8157 C
Para que eu possa navegar na B como se eu estivesse em C, estabelecendo Firefox meias do B proxy para 8157
.
Existe uma maneira de encadear os dois proxies para que eu possa usar o Firefox localmente (em A) enquanto estiver usando a conexão com C?
Ou seja, de alguma forma encaminhar todas as solicitações de meias do Firefox de A a C. A e C não podem se ver diretamente, mas eu tenho acesso SSH raiz completo em todos os lugares. Todas as máquinas são Debian.
Observe que não desejo encaminhar uma única porta como a porta 80, mas quero um proxy SOCK totalmente encadeado .
-L 8888:B:8157
no [A]?ssh -L 8888:B:8157
falha, requer um parâmetro de nome de host. Você pode dar uma resposta mais completa, de ponta a ponta? Se funcionar, eu aceito.Respostas:
Acabei de confirmar que isso funcionou com algumas VMs:
De A , você abre um túnel para a frente da porta de 8888 localmente para 8157 em B
-L8888:localhost:8157
. Depois de estabelecer uma conexão com B, o comando remotossh -t -D 8157 user@C
é executado, o que proporciona o seu proxy SOCKS através C . Pelo que li, '-t' parece ser necessário, embora ainda precise descobrir o porquê.Note-se, este é um comando no primeiro hospedeiro que invoca ssh duas vezes, a partir de A-> B e a partir de B-> C . Você também pode dividir isso em comandos separados, conforme descrito abaixo.
Bônus: para encadear três proxies ...
Ou seja,
A->B->C->D->Internet
Observe que, para cada salto, você precisa de um encaminhador correspondente adicional
-L
nos hosts anteriores da cadeia.Referências:
fonte
A excelente resposta da Glallen utilizando SSH fará o trabalho. No entanto, a maneira correta de fazer isso é usar o
proxychains
programa. ProxyChains é uma ferramenta poderosa que permite que você aproveite facilmente vários servidores proxy ao mesmo tempo. Por exemplo, ele é usado pelos hackers para ocultar sua identificação ao realizar ataques na Internet - ao reunir vários proxies em todo o mundo, torna-se praticamente impossível para qualquer investigador forense rastrear o tráfego até eles. Para não dizer que você é um hacker malicioso - ele funcionará para muitos casos de uso diferentes. ;)O ProxyChains é instalado por padrão em algumas distribuições do Linux (como o Kali Linux). No Ubuntu / Debian, por exemplo, você pode instalá-lo facilmente fazendo um:
sudo apt-get install proxychains
Proxychains procura um arquivo de configuração em
/etc/proxychains.conf
. Depois de instalá-lo, faça backup do arquivo de configuração Proxychains existente (se existir) e crie um novo:mv /etc/proxychains.conf /etc/proxychains-backup.conf
nano /etc/proxychains.conf
Agora, cole neste exemplo de configuração que escrevi para você:
Neste exemplo,
192.168.1.1
é o endereço IP do primeiro servidor proxy SOCKS,8888
é a porta em que o primeiro proxy SOCKS está escutando,192.168.1.2
é o endereço IP do segundo servidor proxy SOCKS,8157
é a porta em que o segundo proxy SOCKS está escutando, e assim por diante.Agora, aproveite proxychains fazendo a
proxychains firefox
partir da linha de comando para iniciar o Firefox. (Certifique-se de que o Firefox seja fechado primeiro.) Agora, sempre que o Firefox fizer uma conexão de saída, o programa proxychains encapsulará o tráfego, de forma que ele será procurado por todos os servidores que você especificou neste arquivo de configuração. Para ficar claro, nas suas preferências do Firefox, você não deve especificar QUALQUER servidor proxy - o proxychains cuidará de tudo nos bastidores.Observe que, para fins de solução de problemas, você provavelmente deve tentar fazê-lo funcionar usando 1 proxy por vez antes de tentar todos os 3.;)
Referências:
proxychains-ng
(uma bifurcação das proxychains originais que ainda é mantida a partir de 2015): https://github.com/rofl0r/proxychains-ngfonte