Pour faire ce que vous voulez, je recommande sshuttle .
Vous l'utilisez comme ça :
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Il tunnelise automatiquement tout votre trafic TCP pour vous. Vous pouvez ajouter le --dns
pour qu'il tunnelise aussi votre trafic DNS. Il suffit que Python soit installé sur le serveur distant.
Si vous voulez seulement tunneliser des programmes spécifiques, je vous recommanderais chaînes par procuration .
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" écoutant sur le port <local>.
Modifiez ensuite le fichier /etc/proxychains.conf pour qu'il pointe vers le même port que le port <local> :
socks5 127.0.0.1 <localport>
Enfin, lancez votre programme que vous voulez proxy-ed comme ceci :
proxychains <program name>
Cela devrait fonctionner. Cependant, certains programmes ont des difficultés à fonctionner avec les chaînes de proxy. Gardez également à l'esprit qu'avec Firefox, vous devez modifier des éléments supplémentaires dans about:config pour l'obliger à effectuer des recherches DNS via le proxy au lieu de le contourner.
En outre, sur les navigateurs web. S'ils supportent les proxys socks, vous n'avez pas besoin de faire quoi que ce soit d'autre pour qu'ils utilisent 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 du proxy.
EDIT 3/29/16
Puisque ce message reçoit encore des votes positifs, j'ai pensé que je devais 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 sous OSX. Que ce soit pour Linux ou OSX, je recommande fortement de passer à une version fork toujours maintenue : proxychains-ng : https://github.com/rofl0r/proxychains-ng
Outre le fait qu'il fonctionne à la fois sous Linux et OSX, il est facile à compiler et offre une bien meilleure prise en charge du tunneling DNS.
Je dois également mentionner une autre option, à savoir les chaussettes rouges. Elle fonctionne de manière similaire à proxychains(-ng) et se trouve probablement dans votre dépôt de distribution : https://github.com/darkk/redsocks
EDIT 11/27/19 Si vous choisissez la voie des proxychains, veuillez utiliser proxychains-ng. Il y a de sérieuses corrections de bogues par rapport à l'ancienne version, par exemple : https://github.com/rofl0r/proxychains-ng/issues/292