Per fare quello che vuoi, ti consiglio sshuttle .
Lo usi in questo modo:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Effettuerà automaticamente il tunneling di tutto il traffico TCP per te. Puoi aggiungere l' --dns
argomento per fare in modo che tunnel anche il tuo traffico DNS. Python deve essere installato sul server remoto.
Se vuoi solo tunnelare programmi specifici, consiglierei le proxychain .
Una volta installato, avvia il proxy ssh socks in questo modo:
ssh -fND 127.0.0.1:<local port> username@sshserver
Ciò avvierà un proxy "SOCKS" in ascolto su <porta locale>.
Quindi modifica /etc/proxychains.conf per puntare alla stessa porta di <porta locale>.
Finalmente avvia il tuo programma che vuoi proxy-ed in questo modo:
proxychains <program name>
Dovrebbe solo funzionare. Tuttavia, alcuni programmi avranno problemi a lavorare con le catene proxy. Inoltre, tieni presente che, con Firefox, devi modificare altri elementi in about: config per costringerlo a fare ricerche DNS attraverso il proxy invece di bypassarlo.
Come nota aggiuntiva, sui browser Web. Se supportano i proxy di calzini, non è necessario fare nulla in più per farli usare il tunnel ssh sopra menzionato, basta inserire 127.0.0.1 per il server proxy SOCKS e la <porta locale> per la porta proxy.
MODIFICA 29/03/16
Dal momento che questo post sta ancora vedendo alcuni voti positivi, ho pensato di aggiornarlo. Proxychains è ancora nella maggior parte dei repository Linux e funziona ancora su Linux. Tuttavia, il progetto viene effettivamente abbandonato e non funziona su OSX. Per Linux o OSX, consiglio vivamente di passare a un fork ancora gestito: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Oltre a lavorare sia in Linux che in OSX, è facile da compilare e offre anche un supporto molto migliore per il tunneling DNS.
Dovrei anche menzionare un'altra opzione, che è redsocks. Funziona in modo simile alle proxychains (-ng) ed è anche probabile nel tuo repository dist: https://github.com/darkk/redsocks