Pour faire ce que vous voulez, je vous recommande sshuttle .
Vous l'utilisez comme ceci :
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Il tunnelisera tout votre trafic TCP automatiquement pour vous. Vous pouvez ajouter l'argument --dns
pour qu'il tunnelise également votre trafic DNS. Le serveur distant n'a besoin que d'avoir Python installé.
Si vous voulez seulement faire passer des programmes spécifiques par le tunnel, je vous recommande proxychains .
Une fois qu'il est installé, démarrez votre proxy ssh socks comme ceci :
ssh -fNTD 127.0.0.1:<local port> username@sshserver
Ceci lancera un proxy “SOCKS” en écoute sur <le port local>.
Puis éditez /etc/proxychains.conf pour qu'il pointe sur le même port que <le port local>.
Enfin, lancez votre programme que vous voulez proxy-ed comme ça :
proxychains <program name>
Ça devrait marcher. Cependant, quelques programmes auront du mal à fonctionner avec les chaînes de proxy. Gardez également à l'esprit qu'avec Firefox, vous devez modifier des éléments supplémentaires sous about:config pour le forcer à effectuer des recherches DNS via le proxy au lieu de le contourner.
Comme note supplémentaire, sur les navigateurs web. S'ils supportent les socks proxies, vous n'avez pas besoin de faire quoi que ce soit de plus pour les faire utiliser le tunnel ssh mentionné ci-dessus, il suffit d'entrer 127.0.0.1 pour le serveur proxy SOCKS et le <port local > pour le port proxy.
EDIT 3/29/16
Puisque ce post voit encore quelques votes positifs, j'ai pensé le mettre à jour. Proxychains est toujours dans la plupart des dépôts Linux et fonctionne toujours sous Linux. Cependant, le projet est effectivement abandonné et ne fonctionne pas sur OSX. Pour Linux ou OSX, je recommande fortement de mettre à jour un fork toujours maintenu : proxychains-ng : https://github.com/rofl0r/proxychains-ng
En plus de fonctionner à la fois sous Linux et sous OSX, il est facile à compiler et offre un bien meilleur support pour le tunneling DNS.
Je devrais également mentionner une autre option, qui est redsocks. Elle fonctionne de la même manière que les proxychains(-ng) et est probablement aussi dans votre répertoire de distribution : https://github.com/darkk/redsocks
EDIT 11/27/19 Si vous optez pour les proxychains, veuillez utiliser proxychains-ng. Il y a quelques corrections de bogues graves par rapport à la version précédente, comme https://github.com/rofl0r/proxychains-ng/issues/292