Нам необходима разработка собственного VPN-приложения под Windows 7/8/10 на базе OpenVPN-клиента.
Суть: оригинальный OpenVPN клиент имеет возможность работать в качестве демона (сервиса) и открывать менеджмент-интерфейс для отправки событий вовне и принятия команд извне. Документация этого mgmt-интерфейса: openvpn.net/index.php/ope... По этому интерфейсу и предлагается управлять клиентом.
Сама программа должна: - Общаться с нашим сервером по REST API , авторизовать пользователя, получать настройки и профили для подключения, отображать информацию о профиле пользователя, иметь простейший чат с техподдержкой (просто сообщения + возможность отправки лог-файла на сервер). Сам API небольшой, на данный момент всего порядка 10-15 методов. - Давать пользователю выбирать локации (полученные с сервера), при выборе локации – формировать конфиг по шаблону, и заставлять openvpn-client подключаться к серверу на базе сформированного конфига. - Иметь механизм так называемого "kill switch": если VPN-соединение отключено и эта фича включена в настройках — вообще никакой трафик не должен уходить с компьютера. В теории это легко делается вручную любым файерволом: – разрешается любой трафик на TUN/TAP-адептере (vpn-туннель) – разрешается трафик до VPN-хостов – запрещается весь остальной трафик – при старте windows, если kill switch включен, трафик тоже не должен уходить – совсем никак и никуда. Таким образом, если туннель лежит, трафик с компьютера не уйдёт никуда, кроме как в сторону VPN-сервера для поднятия туннеля. Правда, это всё в теории и руками ; как это реализовать в win автоматизировано – черт его знает :) Ну, детали реализации – задача для программиста. Можно посмотреть, как сделано у конкурентов, например. - Какие-то базовые кастомизируемые настройки: запуск при старте windows, включение-выключение Kill switch, и т.д.
По дизайну пока не очень понимаем, будем советоваться с вами :) Где, как, у кого заказывать дизайн, в каком формате, какие требования ставить перед дизайнером и т.д.
Как должно быть понятно из задания, кандидату хорошо бы минимально разбираться в работе сетей.
Подробное ТЗ – после одобрения кандидата.
Пишите пожалуйста ориентировочную (понятно, что навскидку, но всё же) стоимость разработки и примерное время, которое она может у вас занять.