Туннелирование по HTTP

У меня есть сеть на работе, которая закрыта за брандмауэром, и подключение к Интернету доступно только через прокси-сервер. На работе я могу подключиться к базам данных, которые распределены по сети.

Однако дома я не могу подключиться к прокси-серверу или базам данных.

Как это может быть сделано? Я могу получить доступ к своей рабочей станции через LogMeIn, поэтому я могу установить на нее все, что угодно.

Я думал об установке какого-то туннельного механизма на моей рабочей станции. Затем дома я мог подключиться к этому механизму, который, в свою очередь, выполнял необходимые подключения.

По сути, то, что я хотел бы сделать, может быть представлено следующей диаграммой: Home => Workstation => Database, Например, всякий раз, когда я подключаюсь, скажем, к 10.140.0.1:1234 дома, это перенаправляется на 10.140.0.1:1234 моей рабочей станции, потому что 10.140.0.1:1234 доступен только через корпоративную сеть.

Примечание: я использую Windows XP.

1 ответ

Если вы можете получить OpenSSH на свой компьютер рабочей станции (скажем, с Cygwin openssh пакет), вы можете использовать прокси помощник с именем corkscrew разрешить клиенту OpenSSH туннелировать через прокси. Cygwin имеет corkscrew пакет, поэтому его удобно использовать, если у вас уже установлен Cygwin. Прочитайте corkscrew Страница руководства для инструкций по его конфигурации (я полагаю, что это простое дополнение к одной строке /etc/ssh_config).

Затем вам нужно сделать ваш домашний ПК жизнеспособной конечной точкой для соединений ssh-клиентов с рабочей станции, и для этого вам нужно запустить демон sshd. Опять же, Cygwin - это единственное место, где его можно получить: установить openssh пакет, а затем запустите ssh-host-config скрипт для создания сервиса sshd. Примите ответы по умолчанию на каждый из вопросов скрипта конфигурации.

Поскольку ваш домашний компьютер находится за NAT-маршрутизатором (верно?), Перенаправьте TCP-порт 22 на ваш ПК и добавьте этот порт в качестве исключения в брандмауэр вашего ПК. Это угроза безопасности, поэтому примите соответствующие меры предосторожности (оставлено в качестве упражнения).

Наконец, чтобы создать туннель для передачи соединений с вашей корпоративной базой данных с домашнего компьютера: войдите на свою рабочую станцию ​​(через LogMeIn) и откройте туннель обратно на свой домашний ПК следующим образом (в оболочке Cygwin bash):

ssh -N -R 1234:10.140.0.1:1234 username@xxx.xxx.xxx.xxx

где username имя пользователя для подключения к вашему SSH-серверу, и xxx.xxx.xxx.xxx это реальный маршрутизируемый IP-адрес вашего домашнего маршрутизатора. Любые соединения, которые вы делаете с localhost:1234 на вашем домашнем ПК будет перенаправлен через туннель в 10.140.0.1:1234 и, таким образом, будет выглядеть так, как будто корпоративная база данных прослушивает TCP-порт 1234 вашего домашнего компьютера. Когда вы закончите, вы можете закрыть туннель, убив ssh команда на вашей рабочей станции с Ctrl-C.

Другие вопросы по тегам