Подключиться к корпоративному веб-сайту, работающему только в локальной сети, извне с помощью туннеля SSH

Подключиться к корпоративному веб-сайту, работающему только в локальной сети, извне с помощью туннеля SSH

У моей компании есть интрасетевой веб-сервер, доступный только из локальной сети, используемый для веб-разработки в качестве сервера интеграции. Пользователи в локальной сети устанавливают свои /etc/hosts для использования тех же виртуальных хостов, которые определены в конфигурации Apache сервера интеграции, и поэтому могут подключаться к нему с помощью стандартного порта 80.

Иногда я работаю удаленно и могу получить доступ к серверу через SSH, используя настраиваемый порт.

Если я установлю в /etc/hosts публичный IP-адрес этого сервера, есть ли способ использовать SSH-соединение с этим пользовательским портом, чтобы мое браузерное соединение туннелировалось через него и получало страницы с этого веб-сервера?

решение1

Я не совсем понял вашу конфигурацию, но когда вы подключаетесь по SSH к серверу компании, вы должны иметь возможность настроить SSH-туннель, чтобы использовать браузер для доступа к веб-серверу компании.

Вы делаетенетнеобходимо настроить /etc/hosts на локальной машине. Использование параметра ssh

-L port:host:hostport

Весь трафик на порт на локальном хосте туннелируется на хост/хостпорт на удаленном компьютере. Поэтому, когда вы делаете

 ssh -L 80:web-server:80 user@ssh-server -p 22

http://localhostбудет перенаправлен на web-server:80. Обратите внимание, что hostport транслируется на удаленном сервере, т. е. сервере ssh.

-p 22не требуется, если сервер ssh использует порт по умолчанию, но в вопросе говорится, что сервер ssh проходит через пользовательский порт. В этом случае измените 22на пользовательский порт.

Если система жалуется, чтоПривилегированные порты может перенаправлять только root., запустите его как суперпользователь:

sudo ssh -L 80:web-server:80 user@ssh-server -p 12345

или войдите в систему как пользователь root.

решение2

Версия командной строки SSH:

ssh -L 90:devserver:80 remotehost.example.com 

Теперь перейдите кhttp://devserver:90/

Помните, что /etc/hosts должен указывать на 127.0.0.1

С помощью PuTTY, в SSH-туннелях:

  1. В поле «Исходный порт» введите 90.
  2. В поле «Назначение» введите devserver:80
  3. Нажмите «Добавить».
  4. Не забудьте вернуться к сеансу и нажать «Сохранить».

Лучше, чем все эти туннелирования, было бы настроить OpenVPN в офисе.

решение3

Я делаю ровно наоборот. Когда я у клиента, я настраиваю безопасный туннель ssh через tunnelier на моем ноутбуке, чтобы он указывал на внешний сервер с установленным сервером ssh. Затем я настраиваю switchy в google chrome, чтобы включить перенаправление трафика из моего браузера на внешний сервер, маршрутизируемого через ssh.

Так,

  1. Установите switchy в браузере Chrome (можно настроить прокси в ff/ie — switchy позволяет легко переключаться между конфигурациями прокси). Установите хост SOCKS на 127.0.0.1 и порт на 1080.
  2. Настройте клиент Tunnelier на удаленной машине, например, на ноутбуке/домашнем компьютере, и подключите его к корпоративному серверу SSH. Используйте порт 1080 с включенным "SOCKS / HTTP Proxy Forwarding".

Надеюсь это поможет.

Связанный контент