Настройка обратного прокси-сервера без открытия входящего порта (только исходящего порта) на брандмауэре
Я получил необычный запрос, на который я не уверен, что есть решение.
Мой клиент хочет разместить веб-приложение на компьютере A и получить к нему доступ только путем посещения URL общедоступного компьютера P.
Как правило, обратного прокси-сервера должно быть достаточно, но есть одно дополнительное, возможно, ненужное осложнение: мой клиент не хочет открывать порт веб-приложения на брандмауэре компьютера A - даже не ограничиваясь IP-адресом компьютера P. Но они согласны с тем, что машина A устанавливает соединение с машиной P, если машина A каким-либо образом устанавливает исходящее соединение.
Существует ли какое-либо существующее программное обеспечение, которое я могу использовать для настройки обратного прокси-сервера таким образом, чтобы машина А инициализировала соединение - подключение к порту, связанному с машиной Р, - после чего машина Р могла бы осуществлять обратный прокси-сервер входящих веб-запросов на машину A?
На обеих машинах работает CentOS (6 или 7), и я имею полный контроль над установкой любого программного обеспечения, которое я на них нахожу. Единственным ограничением является то, что я не могу открывать входящие порты на общедоступном брандмауэре машины A (с машиной P, которая считается "общедоступной", несмотря на то, что, с моей точки зрения, она является доверенной машиной).
1 ответ
Как вы, похоже, понимаете, любое решение, которое вы используете, намного хуже, чем открытие брандмауэра на машине B, чтобы позволить машине A.
Вы можете создать ssh-туннель от машины B к машине A, а затем использовать это. Синтаксис будет выглядеть примерно так (из машины A):
ssh -R 8081: localhost: 8080 user @ machineb
Это позволит людям подключаться к localhost:8081 на машине A для подключения к порту 8080 на машине b.
В этом случае это не очень хорошая идея, потому что вы теряете видимость трафика, затрудняя отладку, и без необходимости шифруете его через SSH.
Конечно, существует множество других способов сделать то же самое, например, настроить туннель OpenVPN между двумя компьютерами.