Мой дневник

02.07.2012

Двойной туннель, или “я юзаю только HTTPS”

Filed under: компьютеры — sae762 @ 11:50

В продолжение темы по обходу преград провайдеров и админов хочу рассказать об интересном методе туннелирования чего угодно через обычную корпоративную проксю. Вообще все описано на страничке http://dag.wieers.com/howto/ssh-http-tunneling/, я лишь переведу на более понятный (надеюсь) язык.

Итак, админы на работе закрыли интернет, оставив только выход на веб-сайты (порты 80 и 443, то есть http:// и https://). В принципе, они же могут и глубже анализировать пакеты, чтобы ходил именно http-запрос, а не всякие другие данные. Типа граница на замке. Но сеть такая сложная, что дырка всегда найдется.

Суть описанного метода в том, что с помощью программки proxytunnel устанавливается обычное HTTPS-соединение с удаленным прокси, работающем у Вас дома (как его настроить для Apache – тоже написано). Все. Корпоративный прокси видит только установление Вашей сессии, обмен сертификатами, и далее может только считать число байт, так как поток становится зашифрованным. Ваша прокси расшифровывает данные и пробрасывает их на любой нужный вам порт, например на SSH-сервер. Как известно, “если у вас есть ssh, у вас есть все” (даже вход из дома внутрь корп.сети!). Если вы не “ацкий хакер”, то можно просто использовать свою домашнюю проксю для спокойной работы в тырнете. Разумеется, все видят количество байт, идущих по вашим соединениям (из сети домой, из дома на работу и т.п.), так что торренты качать я вам не советую, но содержимое знает только ваш домашний прокси, да и то не всегда.

Как бонус можно добавить, что ваш домашний рутер (коробочка для связи с интернетом) может время от времени отключаться и возобновлять соединение, но уже с другим IP-адресом. Если делать это достаточно регулярно, то ваше соединение с работы будет идти на разные адреса, и станет еще более неприметным. Вот так, “без фанатизьма”, вы можете обойти корпоративные политики безопасности.

——————————–

И еще один, не менее универсальный способ. Как известно, SSL по сути является надстройкой над другими протоколами (HTTP, SMTP, NNTP и т.п.). Поэтому ничто не мешает “надстроить” его над любым соединением. Легко и просто делается это с помощью программки stunnel: http://linuxgazette.net/107/odonovan.html. Запускается она на сервере и клиенте. На клиенте слушает на каком-то порту, шифрует, и затем отправляет на сервер на определенный порт. Там серверная часть ловит SSL, расшифровывает, и отправляет на указанный локальный порт, где и находится требуемый сервис. Посмотрите примеры на страничке и все станет ясно. Не стал копать как пробросить это через прокси, но думаю это учтено в программе.

И еще один бонус: чтобы на одном порту могли работать разные службы, существует такой мультиплексор как sslh (гуглящему да нагуглится). sslh расшифровывает SSL, и определяет, к какому сервису идет обращение. Затем коннекция пробрасывается куда нужно. Сервисы гибко настраиваются через регулярные выражения. Так что на одном порту можно иметь много разных протоколов. Будет время – попробую )

 

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: