Подрывная деятельность через туннель - PullRequest
9 голосов
/ 15 мая 2011

Для работы я работаю в закрытой сети. Мы настроили несколько IP-адресов, которые доступны только внутри нашей сети. Однако есть один блок, в который мы можем войти и пройти через SSH, чтобы добраться до наших соответствующих блоков разработчика.

Я знаю, что могу получить трафик от нашего окна разработчика, используя аргумент -L ssh. Мне было интересно, можно ли как-нибудь проложить туннель через нашу открытую коробку, чтобы попасть в закрытую коробку, где хранится наше хранилище Subversion (SVN)?

My computer --> Open box --> Developer boxes/SVN repository

Я не могу использовать ssh в окне SVN, но есть ли способ использовать ssh в качестве прокси-сервера для получения доступа к закрытому полю Subversion?

UPDATE:

1.1.1.1 -> Open Box 1.1.1.2 -> SVN Box

Я могу использовать SSH в окне SVN после туннелирования через открытое окно:

ssh user1@1.1.1.1
ssh user2@1.1.1.2

Это позволит мне получить доступ к ящику SVN. Я полагаю, ssh в открытую коробку, локальный прямой порт 22 блока SVN в мой порт 22. Таким образом

ssh user1@1.1.1.1 -L 22:1.1.1.2:22

Затем, используя SVN в командной строке:

svn co svn+ssh://user2@localhost/path

Возвращает

svn: Сетевое соединение неожиданно закрылось

Почему это происходит? Использует ли svn + ssh другой порт, о котором я не знаю?

Ответы [ 2 ]

8 голосов
/ 15 мая 2011

Да, вы должны иметь возможность туннелирования.Я не уверен, что вы подключаетесь к SVN, когда на работе используете что-то вроде svn co http://..... или что-то вроде этого svn checkout svn://......

Я думаю, что вы хотите туннелировать на любой порт 80 (при использовании через http), порт 443 (если используется https) и порт 3690, если вы используете только svn (без использования apache).Таким образом, ваша команда должна выглядеть примерно так:

ssh -f user@publicly.accessible.server.com -L 3690:your.internal.svn.server:3690 -N

Тогда вы сможете извлечь / зафиксировать / обновить / и т.д. с вашего локального хоста, как если бы ваш локальный хост был сервером svn.

-f заставляет его работать в фоновом режиме, поэтому вы не увидите, что терминал застрял в командной строке общедоступных серверов, когда все, что вам нужно, это туннелирование.-N говорит не выполнять удаленную команду.

0 голосов
/ 15 мая 2011

У нас тоже самое в моей компании. Если не использовать VPN для доступа к «внутренней» сети, я думаю, что единственный вариант, который я могу придумать, - пробить дыру в сети, чтобы разрешить доступ к вашей конкретной ячейке. Обычно мы создаем виртуальный IP-адрес в netscalar, который указывает на внутренний блок, чтобы защитить внутренний блок от «именованного» воздействия.

Я рекомендую поработать с вашей сетевой командой, чтобы создать эту настройку, или, если у вас нет сетевой команды, посмотрите настройки маршрутизатора, чтобы создать это соединение.

...