понедельник, 4 апреля 2011 г.

SSH vs корпоративного прокси.

С переездом в новый офис столкнулся со злобным корпоративным прокси. При первом подключении машина видит только корпоративные ресурсы. После настройки прокси в системе и браузере начинает грузить некоторые внешние сайты, большинство портов и сервисов (включая IMAP Gmail) безжалостно отрезаются по дороге. GМыло можно читать и в браузере, но недоступность домашнего сервера по SSH - это вызов профессиональной гордости.

Первым делом надо было научить OpenSSH выходить из под прокси. Под Windows есть замечательная программа PuTTY которая в лет решает эту задачу. Но что делать под Маком?

Спас Орешек знаний №1. Самым занудным оказалось установить XCode. Загрузка бесплатна после регистрации на сайте Apple, но размер в 4 Гб просто удручает. Не гонитесь за последней версией, проверьте подходит ли она к вашей версии MacOS. Лучшим решением будет поставить XCode c инсталляционного диска вашей OS.
Пошаманив с исходниками остановился на  connect.c
Многие хвалят Corkscrew, но сайт проекта в дауне, а те исходники, которые удалось найти,  отказались собираться под Power PC.
Кому лень собирать можете забрать с "рапиды" мои:
для Mac OS Intell
для Mac OS PPC
для Solaris x386 

От создания отдельного файла .ssh/config я решил отказаться, более красивым решением видится правильная строка запуска комманды. У меня она получилась такой:

ssh -YCv -o'ProxyCommand=~/.ssh/connect -H адрес-proxy.com:80 my.dyndns.org 443' user@my.dyndns.org

Y - предполагает запуск 11Х
C - включает сжатие трафика
v - показывает подробный лог процесса
o - запускает приложение connect
H - указывает параметры корпоративного прокси
my.dyndns.org - динамический адрес вашего SSH сервера
443 - порт который слушает ваш SSH сервер
user - имя пользователя вашего SSH

Теперь, если очень хочется, можно по внутри запущенного канала SSH поднять свой SOCKS прокси туннель и пустить по нему весь внешний трафик. Ворочаться будет не быстро, зато без всяких ограничений и с полной защитой трафика.

Как сделать под Mac OS: Орешек знаний №2 или, если пугает консоль, програмой SSHTunnel
Как сделать под Windows: Орешек знаний №3 
В место SSH сервера можно использовать домашний коммутатор.


1 комментарий:

  1. Аналогичная проблема. :) Сделал немного по другому: подвесил на домашней машине на 443 порт openvpn и поднимаю его с работы. Он, как известно, прекрасно проходит через прокси. Опять же для прохода трафика не надо даже socs делать.
    Все это на линукс конечно, но вроде с маком тоже не должно быть проблем.

    Ну тут конечно кому как удобней.

    ОтветитьУдалить