2014-11-05 21 views
6

Ho un proxy SOCKS di lavoro dal mio computer portatile (macchina A) alla macchina B:Come concatenare i proxy SOCKS?

[A]$ ssh -ND 8888 B

posso impostare Firefox per utilizzare proxy SOCKS sulla porta locale 8888, e la navigazione funziona. Fin qui tutto bene.

Ma ho anche un proxy SOCKS tra le macchine B e C:

[B]$ ssh -ND 8157 C

Così posso passare in rassegna su B come se fossi su C.

C'è un modo per catena i due proxy in modo che io possa usare firefox localmente (su A) mentre uso la connessione a C? Cioè, in qualche modo inoltra tutte le richieste di calze di firefox da A a C. A e C non possono vedersi direttamente, ma ho accesso root ssh completo ovunque. Tutte le macchine sono Debian.

Nota che non voglio inoltrare una singola porta (come 80), voglio un proxy di calze pieno.

+0

Documenti pertinenti: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts – 0xC0000022L

risposta

-1

si potrebbe invertire ssh dalla macchina A alla macchina B poi porta alla macchina c cioè macchina c

ssh -R 6333:localhost:22 [email protected]_b_ip 

questo si collegherà Macchina C alla B attraverso il tunnel cifrato e ascolta sulla porta 22 ora nulla collegato a porta 6333 sulla macchina b verrà inviato machine_c_ip sulla porta 22

ora connettersi dalla macchina a a b

ssh [email protected]_b -p 6333 

adesso la tua collegato alla macchina B sulla porta 6333 nulla inviato dalla macchina c sarà trasmesso per lavorare un

si potrebbe invertire elaborare su porte diverse per eseguire cmds da A a C

so che questo aint calzino concatenamento ma è un hack per il problema

8

sulla macchina B configurare il proxy dinamica per macchina C

ssh -ND 8888 [email protected] 

poi sulla macchina a

ssh -L 8888:localhost:8888 [email protected] 

Questo rende la connessione SOCKS sulla macchina B e rende la porta 8888 macchina di B-connect in grado da localhost porta 8888 sulla macchina A.

Questo può bisogno di 3 connessioni ssh aperto se non è possibile connettersi direttamente alla macchina B. Se è possibile connettersi alla macchina B, è necessario solo 2 e può effettivamente concatenare i comandi se necessario.

0

Queste sono le due soluzioni che utilizzo.

SOCKS pubblici procura avvio proxy SOCKS su una porta pubblico sulla macchina B

[machineB]$ ssh -ND <public_ip>:8080 [email protected] 

o, farlo dalla macchina A (due hop)

[machineA]$ ssh [email protected] ssh -ND <machine_b_public_ip>:8080 [email protected] 

quindi impostare la vostra proxy del browser sulla porta 8080

Nota : Assicurarsi che la porta 8080 è aperta sul firewall macchina di B

tunneling proxy Tunnel un proxy SOCKS localhost dalla macchina B alla macchina A

comandi separati:

[machineB]$ ssh -ND 8080 [email protected] 
[machineA]$ ssh -L 8080:localhost:8080 [email protected] 

o di farlo in un singolo scatto:

[machineA]$ ssh -L 8080:localhost:8080 [email protected] ssh -ND 8080 [email protected] 

Ora impostare il proxy del browser a localhost sulla porta 8080