ХАКАТОН БЕЗ ГРАНИЦ : ВЕСТИ С ЭКВАТОРА
Давайте коротко подведём промежуточный итог : что было сделано на первых трёх хакатонах и что ещё предстоит ? Надеемся, этот материал поможет командам Берлина и Варшавы найти для себя задачу по душе, а участники и участницы из Тбилиси, Еревана и Вильнюса узнают в тексте себя и свои успехи !
AmneziaVPN — это opensource VPN клиент с фичей автоматизированного развертывания VPN сервиса на собственном сервере. На данный момент клиент поддерживает установку и работу с различными протоколами, такими как OpenVPN, WireGuard, ShadowSocks, а так же связку протоколов OpenVPN over Cloak и ShadowSocks over Cloak для маскировки VPN трафика под web трафик.
В рамках хакатона планируется расширить возможности AmneziaVPN в плане поддержки методов маскировки VPN протоколов разными плагинами — чтобы AmneziaVPN могла устанавливать такие связки протоколов на сервер, и самое главное — подключаться к ним.
Задача на хакатон
Задачи разбиты на этапы, первый этап является блокером для остальных этапов (с некоторыми исключениями) — сначала необходимо реализовать в Амнезии сам Docker контейнер (создать скрипты для Docker image), в котором будет работать выбранная связка протоколов, а на следующих этапах научить Амнезию подключаться по VPN к этим контейнерам.
1 этап. Уровень сложности — 2/10. Необходимые навыки — bash scripting, Docker, cmd scripting, понимание VPN и сетей.
Возможные варианты задач:
— ресёрч связки WireGuard over Cloak и реализация в виде Docker контейнера для AmneziaVPN
— ресёрч связки WireGuard over TCP over v2ray и реализация в виде Docker контейнера для AmneziaVPN
— ресёрч связки WireGuard over средство маскировки VPN трафика и реализация в виде Docker контейнера для AmneziaVPN
1б этап.
В репозитории Openvpn есть ветка с поддержкой Pluggable Transport. Необходимо разработать концепт внедрения Openvpn с поддержкой PT в AmneziaVPN.
Подзадачи:
разобраться как это работает, скомпилировать openvpn, протестировать с одним из PT плагинов (например v2ray) разработать bash скрипты для развертывания с Амнезией, добавить поддержку в Амнезию.
2 этап. Уровень сложности — 4/10. Необходимые навыки — всё по первому этапу + навыки разработки c++/Qt.
Варианты задач: Имплементация схемы из первого этапа для одной или нескльких десктопных платформ: Windows/MacOS/Linux
3a этап. Уровень сложности — 7/10. Необходимые навыки — всё по первому этапу + навыки разработки под Android на Java/Kotlin, работа с исходниками выбранного плагина маскировки VPN.
Имплементация схемы из первого этапа для Android.
Так же возможен вариант подзадачи — реализация ShadowSocks over Cloak для Android. Для этого варианта задачи «Реализация ShadowSocks over Cloak для Android» первый этап не требуется, данный контейнер уже реализован в AmneziaVPN, так же есть ветка с экспериментальной поддержкой ShadowSocks для Android.
3b этап. Уровень сложности — 9/10. Необходимые навыки — всё по первому этапу + навыки разработки под iOS на ObjectiveC/Swift, работа с NetworkExtension, работа с исходниками выбранного плагина маскировки VPN.
Имплементация схемы из первого этапа для iOS.
Так же возможны варианты подзадач — реализация ShadowSocks для iOS и реализация ShadowSocks over Cloak для iOS. Для этих вариантов задач первый этап не требуется, данный контейнер уже реализован в AmneziaVPN, так же есть ветка с экспериментальной поддержкой ShadowSocks для iOS, но эта ветка требует рефакторинга и доработки.