Я ищу часть программного обеспечения, которое я могу использовать для переадресации всех HTTP-соединений, аналогично обратному прокси-серверу. Однако, в отличие от типичного обратного прокси-сервера, сервер, перенаправляющий запросы, не может инициировать соединения с серверной частью. По сути, я пытаюсь безопасно преобразовать сервер, работающий во внутренней сети, в общедоступный сервер.
По сути, это должно работать как:
Если я не смогу найти это программное обеспечение, которое уже реализовано, мне придется это сделать, но я решил сначала спросить здесь.
Спасибо!
Насколько я знаю, нет никакого программного обеспечения, которое делает это. Проблема здесь в том, что HTTP не является симметричным протоколом, у него есть очень четкие ожидания относительно того, какой конец что делает, поэтому вы не можете действительно изменить направление соединения нижнего уровня и заставить его работать.
Возможно, вы сможете добиться чего-то похожего на то, что хотите, запустив VPN-связь между общедоступной и частной системами и используя брандмауэр для ограничения подключений по этой ссылке, чтобы они работали только с портом, на котором работает частный веб-сервер. Переадресация портов с использованием туннеля SSH из частной системы в общедоступную будет самым простым способом сделать это. Что-то вроде следующего даст вам туннель и переадресацию портов:
ssh -R 127.0.0.1:8888:127.0.0.1:80 -N user@public
И тогда вы можете иметь что-то вроде nginx в общедоступной системе, просто указав на него 127.0.0.1:8888
как на вышестоящий сервер.
Все это в стороне, вы можете слишком много думать об этом. Если ваша общедоступная система находится в надлежащей изолированной сети DMZ, и у вас есть какой-либо удаленно приличный маршрутизатор и брандмауэр, вы можете легко ограничить эту общедоступную систему подключением только к точному порту, необходимому во внутренней системе, что даст вам довольно много. точно такой же уровень безопасности, как если бы вы делали то, о чем вы говорите.
jssblck