[ Content | View menu ]

2 способа проброса туннелей с использованием ssh

Опубликовано 27.02.2008

1. туннель ssh

Дано: сервер ourproxy.provider.ru, стоящий на страже локальной сети. Этот сервер доступен извне и на нём работает демон sshd.

Требуется: получить из дома доступ к ресурсам внутри локальной сети, например, к интранет-серверу 10.10.5.1:80

Решение: выполнить на домашней машине команду, пробрасывающую туннель к искомому IP-адресу через ourproxy.provider.ru:

ssh -f -N user@ourproxy.provider.ru -L 8080:10.10.5.1:80

Опция -f говорит ssh, что после соединения нужно уйти в background.
Опция -N указывает, что никаких команд выполнять не нужно
Ключ -L означает, что соединения к localhost на порт 8080 нужно перенаправлять на 80 порт IP-адреса 10.10.5.1

Таким образом, набирая в браузере адрес http://localhost:8080, попадаем на нужный сервер.

2. обратный туннель ssh

Дано: компьютер на работе, находящийся за firewall’ом и nat’ом; компьютер дома с доступом в интернет; сервер ourproxy.provider.ru с работающим sshd, доступный обоим компьютерам. Но в данном случае прямой доступ с ourproxy.provider.ru к рабочей машине отсутствует.

Требуется: получить из дома доступ к сервису sshd на рабочем компьютере.

Решение: на рабочей машине выполнить команду:

ssh -f -N user@ourproxy.provider.ru -R 12345:localhost:22

Опции -f и -N описаны несколькими строчками выше.
Ключ -R означает, что подключения к порту 12345 на ourproxy.provider.ru будут перенаправляться на 22 порт рабочего компьютера.

После выполнения этой команды с рабочей машины можно будет попасть на эту машину с ourproxy.provider.ru, выполнив команду:

ssh -p 12345 user@locahost

По этому же принципу можно получить доступ к прочим ресурсам локальной сети. Вот еще один пример.

На рабочей машине:

ssh -f -N user@ourproxy.provider.ru -R 8080:10.10.5.1:80

На домашней машине:

ssh -f -N user@ourproxy.provider.ru -L localhost:8080:localhost:8080

Теперь, набрав в адресной строке браузера на домашнем компьютере http://localhost:8080, получаем доступ к интранет-серверу за семью замками двумя firewall-ами.

Конечно же, это приводит к серьёзной бреши в корпоративной безопасности, поэтому крайне не рекомендуется злоупотреблять этим советом.


Чтобы не писать команды вручную при каждой перезагрузке, можно внести их в конфигурационный файл ssh_config. Интересующихся отсылаю к соответствующему ману.

«
»

5 комментариев

Write a comment - TrackBack - RSS Comments

  1. Comment by ЙЯ:

    Поставьте уже VPN-gateway и не мучайте людей :)

    19.03.2008 @ 18:20
  2. Comment by bappoy:

    если бы я был админом своей конторы — так бы и сделал
    а так приходится извращаться подручными средствами

    19.03.2008 @ 18:24
  3. Comment by mahoro:

    На самом деле одна из самых полезных опций — -D, с помощью которой можно поднять socks4-прокси. Я так часто отлаживаю геотаргетинг — то из США зайду на сайт, то с Украины..

    08.06.2008 @ 22:14
  4. Pingback from SOCKS proxy в SSH | Bappoy’s blog:

    [...] Свешников в комментарии к заметке о пробросе туннелей через ssh напомнил о возможности использования ssh в качестве [...]

    09.06.2008 @ 12:35
  5. Pingback from Доступ к заблокированным сайтам через SSH для «чайников» / Китайский интернет / Магазета:

    [...] «2 способа проброса туннелей с использованием ssh», Bappoy's blog [...]

    23.06.2011 @ 06:11
Write comment

Я не робот.