Настройка обратного прокси-сервера без открытия входящего порта (только исходящего порта) на брандмауэре

346
Josh1billion

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

Мой клиент хочет разместить веб-приложение на компьютере A и получить к нему доступ только путем посещения URL общедоступного компьютера P.

Обычно обратного прокси-сервера должно быть достаточно, но есть одно дополнительное, возможно, ненужное осложнение: мой клиент не хочет открывать порт веб-приложения на брандмауэре компьютера A - даже не ограниченный IP-адресом компьютера P. Но они согласны с тем, что машина A устанавливает соединение с машиной P, если машина A каким-либо образом устанавливает исходящее соединение.

Существует ли какое-либо существующее программное обеспечение, которое я могу использовать для настройки обратного прокси-сервера таким образом, чтобы машина A инициализировала соединение - подключение к порту, связанному с компьютером P - после чего машина P может выполнять обратный прокси-сервер входящих веб-запросов к компьютеру A?

На обеих машинах работает CentOS (6 или 7), и я имею полный контроль над установкой любого программного обеспечения, которое я на них нахожу. Единственным ограничением является то, что я не могу открывать входящие порты на общедоступном брандмауэре машины A (с машиной P, которая считается «общедоступной», несмотря на то, что с моей точки зрения она является доверенной машиной).

0

1 ответ на вопрос

1
davidgo

Как вы, похоже, понимаете, любое решение, которое вы используете, намного хуже, чем открытие брандмауэра на машине B, чтобы позволить машине A.

Вы можете создать ssh-туннель от машины B к машине A, а затем использовать это. Синтаксис будет выглядеть примерно так (из машины A):

ssh -R 8081: localhost: 8080 user @ machineb

Это позволит людям подключаться к localhost: 8081 на машине A для подключения к порту 8080 на машинеb.

В этом случае это не очень хорошая идея, потому что вы теряете видимость трафика, затрудняя отладку, и без необходимости шифруете его через SSH.

Конечно, существует множество других способов сделать то же самое, например, настроить туннель OpenVPN между двумя компьютерами.

Спасибо, это звучит как хорошее решение с учетом ограничений. Josh1billion 5 лет назад 0