— компьютер с Linux с доступом в интернет через прозрачный http-прокси;
— сервер, на котором можно запустить произвольную программу.
Требуется, чтобы на компьютере был интернет через сервер (если можно обойтись без сервера, тем лучше) и можно было использовать jabber, ssh и множество других вещей, для которых необходимы специфичные порты и постоянное соединение.
На локальном компьютере запускаете «ssh -D 127.0.0.1:5555 логин@удаленный_сервер &»
Дальше в любой программе прописываете SOCKS прокси «127.0.0.1:5555».
SOCKS proxy, как правило, поддерживают почти все.
На удаленный_сервер запускать ничего не надо.
OpenVPN ru.wikipedia.org/wiki/Openvpn
на сервере ставите сервер, на локальной машинке клиент, получаете туннель, ну а что дальше с ним делать (натить непосредственно на сервере или роутить дальше) решать вам.
Удачи
прежде всего стоит задаться вопросом: а поддерживает ли ваш HTTP прокси метод CONNECT хотя бы на один произвольный порт (иногда ограничивают до 443 и 21)? и не будет ли прокси обрывать подключения по некоторому таймауту