У меня есть сервер во внутренней сети, который публикует веб-страницы. Мне нужен доступ к этим веб-страницам от случайных клиентов в Интернете. Проблема в том, что у меня нет контроля над брандмауэром, за которым стоит этот сервер. С другой стороны, у меня есть доступ к общедоступному серверу в совершенно другой сети. (Операционные системы гибкие: у меня есть доступ к серверам Windows и Linux с обеих сторон.)
Вот что я как бы хочу сделать:
То есть:
SSH-туннелирование кажется не совсем правильным. Подойдет ли VPN-сервис типа "сеть-сеть"? Есть вариант попроще?
@embodo: SSH-туннель, похоже, полагается на SSH-клиент, перенаправляющий порт на удаленный сервер через SSH, но в моем случае нет маршрута через брандмауэр на внутренний сервер (по SSH или как-то еще). Не стесняйтесь, конечно, показать мне, как это можно сделать!
Хорошо, тогда я отвечу. Я предполагаю, что внутренний сервер, которым вы управляете (ISIC), разрешает исходящий ssh на публичный сервер, который вы контролируете (PSIC). Из ISIC ssh в PSIC вот так:
root@ISIC # ssh -R '*:80:localhost:80' PSIC
Это заставляет ssh прослушивать порт 80 PSIC из-за *:80
а затем перенаправить его на порт 80 ISIC из-за localhost:80
. Он работает точно так же, как X-пересылка.
Решение, такое как LogMeIn обеспечивает эту функциональность, выполняя соединение типа «встреча посередине». Есть и другие решения, такие как GoToMyPC.
У LogMeIn есть бесплатный продукт, поэтому я предпочитаю его: https://secure.logmein.com/products/free/
LogMeIn также приобрела популярное решение Hamachi (рекомендованное Стивом Гибсоном из Безопасность сейчас подкаст и сеть Twit) на вики-странице есть дополнительная информация, а также ссылки на другие решения, которые вы могли бы рассмотреть. http://en.wikipedia.org/wiki/Hamachi_%28software%29
Я не уверен, как вы могли это сделать, если не можете изменить брандмауэр. Весь смысл брандмауэра - блокировать нежелательный трафик, поэтому, если вы не можете сказать брандмауэру «Мне нужен этот трафик», я могу предположить, что он просто выполнит свою работу.
Может ли «Общедоступный сервер, который я контролирую» уже взаимодействовать с «Внутренним сервером, которым я управляю»?
Спросите VPN и используйте его для удаленного рабочего стола на своей настольной рабочей станции.
Тогда вы «внутри своей сети» и получите доступ к тому, что вам нужно.
Если вы не можете получить VPN, gotomypc или linkmein могут сделать то же самое.
Также (извините, что проповедую или заявляю очевидное), если вы не контролируете брандмауэр, вы действительно должны это делать?
Я упоминаю об этом так, как если бы вы пытались обойти ограничения, установленные вашей компанией, это может закончиться для вас очень и очень плохо - о чем следует знать.
В конечном счете, если цель состоит в том, чтобы «Клиент Starbucks» мог беспрепятственно просматривать http: //internal.server и для того, чтобы это были страницы на вашем внутреннем сервере, я не могу придумать единственного способа сделать это, чтобы он вытягивал страницы прямо с вашего внутреннего сервера, если вы не можете получить какую-либо дыру через свой брандмауэр.
У вас есть варианты, если клиент Starbucks может подключиться к http: //ваш.сервер хотя они будут в лучшем случае бесполезными, т.е. создать туннель VPN, исходящий из вашей локальной сети на ваш сервер, и использовать какое-то перенаправление / пересылку с брандмауэром.
Как часто обновляются страницы? Не могли бы вы просто использовать rsync или что-то еще, чтобы отправить их на свой сервер, если они изменятся, или они извлекают контент из базы данных или что-то в этом роде?