2 способа проброса туннелей с использованием ssh
Опубликовано 27.02.2008
1. туннель ssh
Дано: сервер ourproxy.provider.ru, стоящий на страже локальной сети. Этот сервер доступен извне и на нём работает демон sshd.
Требуется: получить из дома доступ к ресурсам внутри локальной сети, например, к интранет-серверу 10.10.5.1:80
Решение: выполнить на домашней машине команду, пробрасывающую туннель к искомому IP-адресу через ourproxy.provider.ru:
ssh -f -N [email protected] -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 [email protected] -R 12345:localhost:22
Опции -f и -N описаны несколькими строчками выше.
Ключ -R означает, что подключения к порту 12345 на ourproxy.provider.ru будут перенаправляться на 22 порт рабочего компьютера.
После выполнения этой команды с рабочей машины можно будет попасть на эту машину с ourproxy.provider.ru, выполнив команду:
ssh -p 12345 user@locahost
По этому же принципу можно получить доступ к прочим ресурсам локальной сети. Вот еще один пример.
На рабочей машине:
ssh -f -N [email protected] -R 8080:10.10.5.1:80
На домашней машине:
ssh -f -N [email protected] -L localhost:8080:localhost:8080
Теперь, набрав в адресной строке браузера на домашнем компьютере http://localhost:8080, получаем доступ к интранет-серверу за семью замками двумя firewall-ами.
Конечно же, это приводит к серьёзной бреши в корпоративной безопасности, поэтому крайне не рекомендуется злоупотреблять этим советом.
Чтобы не писать команды вручную при каждой перезагрузке, можно внести их в конфигурационный файл ssh_config. Интересующихся отсылаю к соответствующему ману.
Поставьте уже VPN-gateway и не мучайте людей :)
если бы я был админом своей конторы — так бы и сделал
а так приходится извращаться подручными средствами
На самом деле одна из самых полезных опций — -D, с помощью которой можно поднять socks4-прокси. Я так часто отлаживаю геотаргетинг — то из США зайду на сайт, то с Украины..
[...] Свешников в комментарии к заметке о пробросе туннелей через ssh напомнил о возможности использования ssh в качестве [...]
[...] «2 способа проброса туннелей с использованием ssh», Bappoy's blog [...]