Para fazer o que deseja, recomendo sshuttle .
Utiliza-o desta forma:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Irá canalizar automaticamente todo o seu tráfego TCP para si. Pode adicionar o argumento --dns
para o fazer túnel também para o seu tráfego DNS. O servidor remoto só precisa de ter o Python instalado.
Se quiser apenas túneis de programas específicos eu recomendaria proxychains .
Uma vez instalado, inicie o seu proxy de meias ssh desta forma:
ssh -fNTD 127.0.0.1:<local port> username@sshserver
Isto iniciará um proxy “SOCKS” a ouvir na porta local\>.
Depois editar /etc/proxychains.conf para apontar para a mesma porta que < porto local>>.
Finalmente, inicie o seu programa que pretende proxy-ed assim:
proxychains <program name>
Deverá apenas funcionar. Contudo, alguns programas terão dificuldade em trabalhar com Cadeias de Proxy. Tenha também em mente, que com Firefox, terá de alterar itens adicionais sob about:config para forçá-lo a fazer pesquisas DNS através do proxy em vez de o contornar.
Como nota adicional, em navegadores web. Se suportam proxy de meias, não é necessário fazer nada adicional para que utilizem o túnel ssh acima mencionado, basta introduzir 127.0.0.1 para o servidor proxy SOCKS e a porta local\> para a porta proxy.
EDIT 3/29/16
Uma vez que este post ainda está a ver alguns upvotes, pensei em actualizá-lo. Proxychains ainda se encontra na maioria dos repositórios Linux e ainda funciona no Linux. No entanto, o projecto está efectivamente abandonado e não funciona no OSX. Tanto para Linux como para OSX, recomendo vivamente a actualização para um garfo ainda em manutenção: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Além de trabalhar tanto em Linux como em OSX, é fácil de compilar, e tem também um suporte muito melhor para túneis DNS.
Devo também mencionar outra opção, que é o redsocks. Funciona de forma semelhante à proxychains(-ng) e é também provável que funcione no seu redsocks dist: https://github.com/darkk/redsocks
EDIT 11/27/19* Se seguir a rota proxychains, por favor use proxychains-ng. Há algumas correcções sérias de bugs sobre a versão herdada, como por exemplo: https://github.com/rofl0r/proxychains-ng/issues/292