Эта статья поможет тем, у кого закрыты различные сайты из-за корпоративной политики безопасности. В данном посте будут рассмотрены несколько наиболее удачных вариантов решения проблемы с доступом к сайтам и сервисам. И так начнём!

Первый вариант использования

Первым делом заходим на сервак к которому у Вас есть доступ.

C помощью програмки PuTTY (качать отсюда).

Проверяем что у этого сервака есть доступ к сайтам:

lynx http://vkontakte.ru 

либо 

wget http://vkontakte.ru

Смотрим. Видим что в тексте все правильно и показывается (хоть и латиницей — попытка показать сайт в тексте) ЗАКРЫТЫЙ сайт.

Если все прошло удачно, то переходим к началу настройки.

  1. Открываем сессию в PuTTY с дополниельными параметрами.

  1. Вводим дополнительные параметры для туннеля:

  1. Сохраним настройки:

  1. Входим на наш сервер к которому мы настроили путти:

5. Настраиваем браузер (на примере Mozilla Firefox):

  1. Получаем полный интернет:

7. Бонус: Для тех кто хочет поделиться интернетом с друзьями находящимися в одной сети — существует галочка:

(Друзьям же надо у себя на компе в настройках браузера выставлять IP-адрес того человека который расшаривает интернет (вместо  127.0.0.1). Смотри пункт 5.

В дополнение к вопросу о настройке Skype через тунель. Все это работает и для него. Только нужно иметь ввиду что скайп надо перезагрузить, т.е. Выход, а потом запустить заново. Кстати он сам об этом говорит:

это в ответ на настройки:

 

Второй вариант использования

1. Локальный проброс порта

Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на один из серверов с маршрутизируемым IP-адресом, который доступен из Интернет. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:

Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP-адресом 212.212.212.212 где-то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH-подключение к серверу 192.168.0.3 (далее по тексту SSH-сессия 1), идем в пункт Tunnels:

и указываем, что локальный порт 2222 нашего компьютера должен быть поставлен в соответствие порту 22 на сервере с IP-адресом 212.212.212.212. Далее жмем кнопку «Open», авторизуемся на сервере 192.168.0.3. Затем создаём ещё одно подключение (далее по тексту SSH-сессия 2), но уже на localhost, порт 2222 и жмём кнопку «Open»:

В результате SSH-сессия 2 будет туннелироваться (т.е. будет установлена внутри ранее установленной SSH-сессии 1). Для удалённого сервера 212.212.212.212 всё будет выглядеть так, как будто к нему подключается 111.111.111.111:

2. Удалённый проброс порта

В этом случае подключение внутри SSH-туннеля устанавливается в другую сторону – от удаленного сервера на наш локальный компьютер. Может быть полезно, если требуется открыть доступ к локальным сервисам нашего компьютера. Рассмотрим ту же сеть, что и в пункте 1, но для простоты предположим, что теперь у нас есть NAT:

Здесь уже у нас есть возможность подключаться через SSH напрямую к 212.212.212.212 благодаря наличию NAT-а. А вот 212.212.212.212 подключиться на 192.168.0.2 без специальных ухищрений, понятное дело, не сможет, т.к. 192.168.0.2 не подключен к Интернет непосредственно. Предположим, что пользователю, сидящему под X-ами на 212.212.212.212 нужно через remote desktop попасть на наш компьютер 192.168.0.2. Для этого в SSH-сеансе подключения с 192.168.0.2 на 212.212.212.212 нужно изменить настройки в разделе Tunnels следующим образом:

В результате после успешной авторизации на 212.212.212.212 можно увидеть следующее:

#lsof -i -nP | grep 3333

sshd  18598   avz   11u  IPv4 592868957   TCP 127.0.0.1:3333 (LISTEN)

То есть sshd ожидает подключений на TCP-порт 3333, которые затем по SSH-туннелю будут перенаправлены на 192.168.0.2 порт 3389. И юзер сидящий за 212.212.212.212 сможет с помощью rdesktop увидеть наш рабочий стол:

3. Socks-proxy

В этом случае мы можем использовать сервер с SSH-демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):

Чтобы заставить PuTTY испольнять роль socks-прокси, нужно параметры SSH-сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:

В результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:

C:>netstat -ano | find “1080”;

TCP 127.0.0.1:1080 0.0.0.0:0 LISTENING 2392

C:>tasklist | find /i “2392”;

putty.exe 2392 Console 0 5420 КБ

То есть putty, выполняющийся с PID-ом 2392, начинает слушать порт 1080, ожидая подключений. Далее берем любое приложение, умеющее работать с SOCKS-прокси, например Firefox, и указываем ему использовать наш прокси:

Теперь все запросы от браузера будут проходить через сервер 192.168.0.3. В логах веб-сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP-адрес нашего сервера — 111.111.111.111.

P.S. Из help-файла Putty 0.58:

Question A.10.3: What does ‘PuTTY’ mean?
It’s the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It’s been rumoured that ‘PuTTY’ is the antonym of ‘getty’, or that it’s the stuff that makes your Windows useful…
 🙂

Комментарии

comments powered by Disqus