Я, пожалуй, тоже похвастаюсь. Метров 300 от дома отошел, почти в городе.

Коллекция флагов стран в двух исполнениях
Flat — обычные плоские значки и Shiny — слегка выпуклые, с отблеском
Разрешения:
-16×16
-24×24
-32×32
-48×48
-64×64
Форматы:
-PNG
-ICO
-ICNS
Наименования отдельно:
-По названию страны
-По коду ISO
Дополнительно:
Есть флаги некоторых непризнанных республик и международных организаций.
Скачать с Mega.nz
Скачать с Google.Drive
Иконки плоские
Разрешения:
-32×32
-128×128
Форматы:
-PNG
Наименования:
-По коду ISO
На этот раз от некоей научной конторы Calyx Institute, изначально заточенный под использование клиента Bitmask, но ключи и сертификаты также можно выкачать скриптом из предыдущей заметки (копия)
Единственная проблема, которая возникает с Riseup VPN — пользовательские ключи периодически протухают (они обновляются примерно раз в 3-4 месяца). Уж не знаю, для чего это сделано, но факт остается фактом. Клиент Bitmask, понятно что, обновляет ключи автоматом, но работает только на астероиде с конкретным давлением и гравитацией. А нам такое не надо.
Сам клиент Bitmask на самом деле реализует SRP-авторизацию для последующего получения пользовательского сертификата VPN, однако, админ сервера может выдавать и анонимный ключ, без использования авторизации. С riseup.net несказанно повезло, что гайдам от разработчиков Bitmask, они все-таки (пока) последовали не до конца, и спокойно выдают ключ без авторизации и регистрации.
Так что Bonafide можно реализовать частично, опустив шаги регистрации пользователя и всю работу с SRP-авторизацией. Соответственно, остальное без проблем делается с помощью средств shell/bash и нескольких дополнительных утилит.
Такое ощущение, что проект медленно дохнет. Из 4 провайдеров, работающих через клиент Bitmask, осталось только два: Riseup, который даже сделал свой отдельный клиент по образу и подобию, и calyx.net, не очень понятный проект от какой-то мелкой американской научной конторы https://www.calyxinstitute.org/, впрочем, тоже предоставляющий бесплатный VPN. А вот колумбийский VPN (всегда мечтал попробовать что-нибудь колумбийское) и единственный платный Codigosur сдохли. И самое печальное, что сдох демо-сервер от самого Bitmask. Который позволялось использовать для отладки своих клиентов под Bitmask-протокол.
1. Нам необходимо выкачать из корня сайта провайдера файл provider.json
. Там содержится основная информация о провайдере.
2. Далее вытаскиваем из provider.json
"api_uri
» и "api_version"
. Два этих значения (api_uri + api_version
) составляют API_BASE
, т.е., например, для Calyx "api_uri": "https://api.calyx.net:4430"
и "api_version": "1"
, соответственно API_BASE
будет https://api.calyx.net:4430/1
3. Выгружаем себе корневой сертификат провайдера (самоподписанный) из «ca_cert_uri» (для Calyx будет https://calyx.net/ca.crt
)
4. Получаем его fingerprint из "ca_cert_fingerprint"
. Отпечаток сертификата SHA256 (у всех двух виденных именно такой)
5. Считаем отпечаток скачанного сертификата с помощью openssl
:
openssl x509 -in $WORKDIR"/"$CACRTFILE -noout -fingerprint -sha256 -inform pem
— делаем необходимые строковые преобразования:
openssl x509 -in $WORKDIR"/"$CACRTFILE -noout -fingerprint -sha256 -inform pem|awk -F = '{print tolower($2)}'|tr -d ':'
и сравниваем то, что получили из сертификата с прочитанным из provider.json
должно совпадать.
6. Теоретически, с этого момента вся работа с дальнейшим API должна вестись с этим сертификатом, но для простоты можно все запросы делать curl
с параметром --insecure
.
7. Можно выкачать список конфигов сервиса, оформив GET-запрос на адрес API_BASE/configs.json
. Список выглядит примерно так:
{ "services":{ "soledad":"/1/configs/soledad-service.json", "eip":"/1/configs/eip-service.json", "smtp":"/1/configs/smtp-service.json" } }
8. На самом деле из интересного здесь только параметр "eip"
, это ссылка на конфиги VPN. Обычно перечисляются сервера и какие-то критичные параметры конфига. Так, например, выглядит текущий eip-service.json
для Riseup:
9. Теперь пора получать пользовательский сертификат (и ключ), который будет использоваться для авторизации в VPN, и для этого вообще-то надо логиниться по SRP, но два оставшихся провайдера — Riseup и Calyx, позволяют запрос сделать так.
Делаем POST-запрос (пустой) к API_BASE/cert
.
10. Сохраняем результат.
Для парсинга JSON из консоли используется jq
, установите для своего дистрибутива, если у вас еще нет.
Use bminfo <-p> <provider> [KEYS]
Обязательных параметра 2 — первый ключ (-p
) и провайдер VPN (riseup.net, например).
Остальные параметры ([KEYS]
):
--getinfo
— получить только provider.json
--clear
— очистить рабочий каталог
--getconfigs
— получить provider.json
, configs.json
и eip config
--providerkey
— получить корневой сертификат провайдера VPN (cacert.pem
)
--userkey
— получить сертификат пользователя (openvpn.pem
)
--copy
— скопировать сертификаты и файлы json в каталог из $OUTDIR/<provider>
--check
— скопировать только файлы, которые были изменены
Можно использовать в сочетании друг с другом все ключи, кроме --clear
.
Примеры:
Получение всей информации и всех ключей
bminfo -p calyx.net --getconfigs --providerkey --userkey
Получение только пользовательского ключа:
bminfo -p calyx.net --userkey
riseup.net
SRP-6: аутентификация без передачи пароля
Bonafide. Secure user registration, authentication, and provider discovery.
Новости, правда, не первой свежести, но все же. О бесплатном анархо-VPN от riseup.net мы писали ранее копия.
С тех пор многое поменялось.
+ Клиент для Windows. Да, пользователи 7 и 10 Windows могут радоваться. Никакого шаманства, настроек и ужасов. Скачал клиент и пользуйся. Клиент, на самом деле, форк проекта Bitmask, все настраивает сам, скачивает необходимые ключи, запускает Openvpn, которую даже скачивать отдельно не надо, обрезанная версия идет в комплекте и ставится вместе с клиентом. Регистрация тоже не нужна.
+ Добавилось серверов. Кроме старых голландского, канадского и штатовского сервера добавились 4 французских, еще один штатовский и гонконгский.
В общем, проект живет и развивается, здоровья ребятам и творческих успехов.
— На момент написания заметки голландский сервер что-то глючил. Соединение есть, а толку нет (да, я перепроверил конфиги и настройки раз 10 — остальные работают, этот соединяется, но ни бе ни ме ни кукареку). И да, он взял и сменил IP
— Опять обидели пользователей других дистрибутивов линукс. RiseupVPN is currently tested on the Ubuntu LTS and Debian Stable. If you have a different release, it may or may not work. Хотя, может и не обидели. Поскольку у «клиента» внутри один хрен неонка OpenVPN, то главное — написать правильные конфиги и скачать ключи, благо качаются они без всякого геморроя, в следующей заметке будет скрипт по выкачиванию и обновлению сертификатов.
— Немного сменились конфиги. Дело поправимое.
— У пользователей официального клиента нет возможности выбора конкретного сервера. А алгоритм выбора сервера от OpenVPN оставляет желать лучшего (ИМХО, его там нет вообще).