У нас есть удаленный веб-сервер, который обращается к базе данных SQL Server (расположенной в другом городе) через VPN. Работает нормально. База данных SQL находится на 192.168.1.xxx в локальной сети, и в дополнение к этим удаленным веб-приложениям многие локальные настольные приложения также взаимодействуют с ней по локальной сети.
После того, как плохая погода повалила большие деревья и отключила электричество мощность в течение большей части недели, руководство попросило меня переместить базу данных SQL из локальной сети на удаленный сервер, который расположен в модном центре обработки данных с генераторами резервных копий.
Итак, у меня есть все эти настольные приложения, которым нужно будет выйти через новую VPN для доступа к удаленной базе данных SQL.
Удаленный веб-сервер имеет аппаратный брандмауэр, и в настоящее время для всего мира открыто только три порта, порт 80, порт для почты и порт для подключения к удаленному рабочему столу.
Есть ли способ настроить VPN, чтобы настольные приложения в локальной сети могли видеть базу данных на удаленном сервере, в Интернете? приложения на удаленном сервере могут видеть базу данных на том же удаленном сервере, но порт, который прослушивает SQL Server, не открыт для всего мира в брандмауэре,
Какое программное обеспечение можно использовать для создания такого прокси-сервера?
Да, это можно сделать. Если протокол HTTPS, то для перехвата и анализа TLS можно использовать различные программы, такие как Fiddler, mitmproxy или даже squid. Также различные брандмауэры имеют такую возможность для этой цели. Можно также использовать socat для работы в качестве TLS сервера с одной стороны и TLS клиента с другой. Но во всех этих случаях оригинальный сертификат теряется, и используется новый сертификат, а не все эти решения должным образом проверяют оригинальный сертификат.
Я успешно выполнил настройку mitmproxy в режиме обратного прокси:
https://mitmproxy.readthedocs.io/en/v2.0.2/features/reverseproxy.html .
Обратите внимание: вам понадобится сертификат PEM вашего веб-сервиса (который включает сертификат и закрытый ключ), чтобы прокси-сервер мог прозрачно выполнять шифрование-дешифрование-подписание для программного обеспечения и системы вашего клиента.