Туннелирование по 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.