Веб-сервис для трансляции запросов в vpn

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
12 сентября 2017, 22:53 • 2 отклика • 48 просмотров
Есть закрытая извне VPN на Cisco IPSec. Внутри этой сети есть некоторое количество ресурсов, один из которых может отдавать какие то данные в виде веб-страницы или файла, доступного по HTTP. Это веб-сервис 1С, передача параметров запроса которому происходит в строке запроса. Отдает он чаще всего XML-файл или просто строку. Внутри VPN веб-сервис защищен посредством NTLM авторизации. Учетками NTLM являются учетки 1С.
Эти веб-сервисы работают как api интерфейс к базе 1С, отдавая данные из нее или передавая в нее какие то запросы.
Запросы эти выглядят примерно так: http://ip_сервера:port/адрес/продолжение_адреса/метод_api/Data?api_ключ=xxxx&параметр1=yyy&параметр2=zzz

Авторизация эта нужна только внутри сети, все сервисы, которые задуманы как публичные, должны работать под одной учеткой 1С.

К этому сервису нужно получить доступ из большого интернета. Публиковать сервер, который на него отвечает - совсем не вариант. Поэтому нужно что то вроде прокси-сервера, который будет принимать GET запросы из интернета, и транслировать их целиком внутрь vpn, авторизовываясь на сервере под определенной учеткой. Затем отдавать то, что получил. Видимо, это будет отдельный сервер, имеющий два сетевых интерфейса - публичный, и смотрящий в vpn.

Прокси непростой. Он должен вести свой собственный справочник методов api, для каждого из которого определяется политика доступа - с любого ip адреса, или только с какого то конкретного.
Должен быть черный и белый список ip, и реализован автобан для неизвестных адресов.
Таким образом, получив на внешний интерфейс запрос вида http://ip_прокси/метод?api_ключ=xxxx&параметр1=yyy&параметр2=zzz , прокси должен посмотреть, имеет ли доступ этот ip к этому методу, если да, то транслировать запрос внутрь vpn, преобразовав его в запрос вида, приведенного выше, авторизовавшись под сохраненной учеткой.
И получив ответ, отдать его по назначению.

Если находится в черном списке, сразу отбить запрос. Если в белом - давать обращаться к разрешенному методу любое количество раз, не обращая внимания на неудачные попытки (просто не отвечать на них).

Если ip не имеет доступа к методу, забанить его после повторного обращения.

Все обращения и действия должны журналироваться.

Настройки сервиса могут храниться в любом виде, хотя предпочтителен какой то веб-интерфейс для управления.

Предоставлю доступ к панели хостинга vps (selectel), с ресурсами, выделенными под проект.
Остальное хорошо бы получить от вас - настройка сервера, какая то vpn на приведенной технологии, какой-то тестовый ресурс внутри vpn - доступ к рабочей сети очень не хотелось бы предоставлять.


При ответе, пожалуйста, пишите ориентировочные сроки и стоимость.