Per fare quello che vuoi, ti consiglio sshuttle.
Lo usi così:
./sshuttle -r [email protected] 0.0.0.0/0 -vv
Tunnelerà automaticamente tutto il tuo traffico TCP per te. Puoi aggiungere il --dns
argomento per avere anche il tunnel del tuo traffico DNS. Il server remoto deve solo avere Python installato.
Se vuoi solo eseguire il tunneling di programmi specifici, ti consiglio proxychains.
Una volta installato, avvia il proxy ssh socks in questo modo:
ssh -fNTD 127.0.0.1:<local port> [email protected]
Questo avvierà un proxy "SOCKS" in ascolto su
Quindi modifica /etc/proxychains.conf in modo che punti alla stessa porta di
socks5 127.0.0.1 <localport>
Infine, avvia il tuo programma che desideri utilizzare come proxy in questo modo:
proxychains <program name>
Dovrebbe funzionare. Tuttavia, alcuni programmi avranno problemi a lavorare con Proxy Chains. Inoltre, tieni presente che con Firefox devi modificare elementi aggiuntivi in about:config per costringerlo a eseguire ricerche DNS tramite il proxy invece di aggirarlo.
Come nota aggiuntiva, sui browser web. Se supportano i proxy socks, non devi fare altro per fargli usare il tunnel ssh sopra menzionato, basta inserire 127.0.0.1 per il server proxy SOCKS e
MODIFICA 29/03/16
Dato che questo post riceve ancora 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 eseguire l'aggiornamento a un fork ancora mantenuto:proxychains-ng:https://github.com/rofl0r/proxychains-ng
Oltre a funzionare sia in Linux che in OSX, è facile da compilare e ha anche un supporto molto migliore per il tunneling DNS.
Dovrei anche menzionare un'altra opzione, che sono i calzini rossi. Funziona in modo simile a proxychains(-ng) ed è probabile che si trovi anche nel tuo repository dist:https://github.com/darkk/redsocks
MODIFICA 27/11/19 Se segui il percorso proxychains, utilizza proxychains-ng. Ci sono alcune gravi correzioni di bug rispetto alla versione legacy, come:https://github.com/rofl0r/proxychains-ng/issues/292
man ssh
fornisce un esempio esattamente di questo. Una VPN basata su ssh:
SSH-BASED VIRTUAL PRIVATE NETWORKS
ssh contains support for Virtual Private Network (VPN) tunnelling using
the tun(4) network pseudo-device, allowing two networks to be joined
securely. The sshd_config(5) configuration option PermitTunnel controls
whether the server supports this, and at what level (layer 2 or 3 traf-
fic).
The following example would connect client network 10.0.50.0/24 with
remote network 10.0.99.0/24, provided that the SSH server running on the
gateway to the remote network, at 192.168.1.15, allows it:
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.0.50.1 10.0.99.1 netmask 255.255.255.252
~~ taglia ~~
Since a SSH-based setup entails a fair amount of overhead, it may be more
suited to temporary setups, such as for wireless VPNs. More permanent
VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).
Una volta che hai la nuova interfaccia, dovresti solo impostarla come percorso predefinito, che è una domanda diversa.
Cerca l'opzione "Tunnel" in ssh. Questo crea un dispositivo tunnel a cui puoi assegnare un indirizzo IP, quindi modifichi il percorso predefinito per utilizzare quel tunnel.