Генератор OVPN конфиков Bitmask VPN

Скрипт генерации OVPN-конфигов Bitmask VPN

У меня в блоге уже есть материал про Bitmask для Android, но этим чудесным VPN сервисом можно пользоваться не только на мобильных платформах, но и на десктопе. Для Arch Linux в AUR есть скрипт сборки официального клиента Bitmask, но лично я люблю минималистичность, и держать отдельное приложение для выполнения всего одного действия (подключения к VPN) я считаю чересчур излишним. Для таких как я существует простой python-скрипт, представляющий из себя генератор файлов OVPN-конфигураций Bitmask VPN, которые быстро и просто можно импортировать в свой Linux и пользоваться Bitmask не перегружая систему лишними приложениями.

Установка зависимостей

Прежде всего нужно установить python-пакеты, которые необходимы для работы скрипта. Делается это с помощью системы управления python-пакетами pip. У кого не установлен, ставим и устанавливаем требуемые зависимости:

pip3 install requests pyopenssl

Ничего сложного. Идём далее.

Получение скрипта

Теперь загрузим скрипт. Делается это при помощи git. Опять же, у кого не устаеновлен в системе git — ставим. Получаем bitmask-openvpn-generator:

git clone https://gitlab.com/nitrohorse/bitmask-openvpn-generator.git

Готово. Приступаем к созданию конфигураций OVPN.

Генерация OVPN-конфигов Bitmask

Переходим в каталог со скриптом и запускаем его от имени своего пользователя, root не нужен.

cd bitmask-openvpn-generator
python3 script.py

Начнётся проверка отпечатков сертификатов сетей Riseup, получение адресов серверов и т.д. Когда данный этап будет завершён, скрипт оповестит вас строчкой «Ready!» и выведет список доступных для подключения VPN серверов Bitmask.

Выбор серверов Bitmask

Выбираем физически ближайший сервер вводом его номера и нажимаем ENTER. Далее выбираем протокол соединения: TCP/UDP (UDP немного быстрее, но большиенство серверов поддерживает только TCP), вводим номер и подтверждаем ввод нажатием ENTER. Далее спросят порт, обычно 443, вводим номер пункта и жмём ENTER. Готово! Скрипт оповестит нас об успешной генерации конфига сообщением:

Generating OpenVPN configuration and writing to bitmask_ovpns/bitmask-***.ovpn
Done!
Cleaning client certificate and private keys...

Сгенерированный конфиг будет лежать в подкаталоге bitmask_ovpns. Теперь его можно импортировать в систему. в KDE Plasma 5 это, например, делается так: жмём правой кнопкой по значку менеджера сети, выбираем пункт «Настроить сетевые соединения…«, внизу списка всех соединений жмём на иконку «+» (добавить) выбираем в самом низу «Импортировать VPN соединение…» и выбираем созданный скриптом конфиг. Готово! Теперь для того, чтобы подключиться к VPN Bitmask нужно выбрать только что созданный пункт в сетевых подключениях. Кстати, при желании можно добавить несколько VPN серверов (хоть все).

Если скрипт не работает

В первый раз данный скрипт у меня отработал, а спустя месяц начал отваливаться с ошибкой. Не вдаваясь в подробности, это из-за VPN провайдера Calyx. Исправить можно удалив в файле providers.json упоминание о Calyx. Вот содержание уже исправленного файла, можно просто заменить им всё, что есть в providers.json:

{"provider_info_last_checked": "2021-09-19 09:34:16.115721", "providers": [{"name": "riseup", "domain_url": "https://riseup.net", "provider_path": "/provider.json", "configs_path": "/1/configs.json", "api_uri": "https://api.black.riseup.net:443", "api_version": "3", "ca_cert_fingerprint": "SHA256: a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494", "ca_cert_uri": "https://black.riseup.net/ca.crt"}]}

Далее сохранить и повторить запуск python3 script.py.

Спасибо за внимание! Пользуйтесь СПО.