TorBOX Next Generation

В марте я выпустил финальное обновление TorBOX. Ну, почти финальное ибо чуть позднее был "апдейт" на документацию, но он не стоил отдельного анонса. На этом разработка версии была прекращена полностью, несмотря на то, что он набрал некоторое количество форков и звёзд на GitHub. Для тех, кто всё пропустил - читайте вот тут, что это и зачем это.

Сегодня будет небольшой тизер-отчёт о том, как движется разработка новой версии.

Начну, пожалуй с раздела "что нового", ну а потом о трудностях и ограничениях.

Сразу оговорюсь, что до финала ещё довольно далеко, но уже есть что показать.

Что нового

  • Linux-agnostic. Планируется, что теперь проект можно развернуть на любом более-менее современном линуксе путем установки некоторых пакетов из стандартного репозитария, ну и выполнив начальную конфигурацию. Точно понадобится Network Manager, SystemD, ну и там по-мелочи типа Python 3. Сейчас это есть почти во всех дистрибутивах, за исключением самых маргинальных.
  • Поддержка беспроводных сетей в качестве "источника интернета". Прошлые версии подразумевали, что интернет "приходит по проводам", в этой же версии можно будет выбирать сеть прямо из веб-интерфейса (сделано, работает), а если нужна будет проводная сеть - на нее можно будет переключиться одним кликом (TODO). Также можно будет сбрасывать беспроводной интерфейс и подменять мак-адрес интерфейса (первое работает, второе в целом тоже, но тут еще нужно поработать).
  • Появились настройки TOR - планируется включать-выключать tor bridges прямо из UI, а также блокировать некоторые страны. (Пока в разработке).
  • Самая главная "инновация" - единый движок, написанный на Python - россыпь скриптов в прошлом. Его также можно "педалировать" из командной строки. Это позволит расширять функционал в дальнейшем, в том числе самостоятельно.
  • SOCKS5 прокси торчит теперь наружу, так что этот ваш Телеграм можно будет гонять через этот ваш Тор.
  • Наверное вкручу поддержку веб-консоли.

Вот несколько скриншотов интерфейса:

общий вид интерфейса

Раздел "Mode selection" остался без изменений. Настройки TOR/i2p убраны в раздел "Services", доступ к сети, понятное дело - WAN, ну и System Settings будет выглядеть также, но нужно будет что-то сделать с поддержкой показа температуры процессора.

Вот так выглядит поддержка доступа к сети:

WAN settings

Можно будет выбрать интерфейс для доступа к интернету, настроить проводной и беспроводной интерфейс:

Wired settings

Проводной интерфейс настраивается обычно с помощью DHCP, а вот с беспроводным веселее:

Wireless settings

Тут уже показывается состояние, можно выбрать нужную сеть:

Select Wifi network

Меню настройки TOR выглядит вот так:

TOR Settings

Кое-что уже реализовано, кое-что еще предстоит сделать. Конечно, придётся чем-то пожертвовать.

Ограничения

Для начало то, что не будет сделано точно - например настройка точки доступа будет почти полностью переложена на плечи пользователя. Во-первых это просто. Во-вторых - будет руководство. В третьих универсального способа нет, точнее есть - но тогда придется ограничить количество поддерживаемых устройств и сетевых карт.

Так, например, в предыдущей версии был чёткий список поддерживаемых USB Wifi. Ограничение довольно искуственное, требовало мало того, что держать "свои образы", так еще и думать про драйвера. От этого нужно, по моему мнению, уходить.

Второй момент - "движок" написан на Python 3. Это позволило выкинуть некоторые зависимости, но принесло зависимость в виде Python 3.x. Но это только к лучшему - тащить половину подсистемы XOrg, только для запуска единственного expect - как-то расточительно. В python, например есть свой вполне "летучий" expect, надеюсь он заведется как нужно.

Вообще, node.js, как движок для интерфейса в теории тоже можно будет выкинуть и оставить только Python 3. В данный момент, к сожалению на нём очень удобно делать веб-интерфейс, да и выбор сетей WiFi тоже сделан на базе готового модуля. В перспективе нужно будет конечно избавляться от Node из дисциплинарных соображений, если удасться реализовать управление WiFi опять-таки на Python.

Новый инсталлятор ещё не написан, и руки до него не дошли. Одно я знаю точно - будет немного сложнее. Но прежде чем "бороться за, сука, свободу этих ваших энторнетов", уж будьте добры изучить матчасть и понимать, как эти самые интернеты работают.

Создайте систему, которой сможет пользоваться даже дурак и только дурак захочет ею пользоваться - один из законов Мерфи.

Подводя итог

Работа кипит =). Правда нечасто, ибо всё делается в режиме "свободного времени". Основные ToDo - поддержка настройки Tor, инсталлятор, переключение интерфейсов. Основные проблемы - установка и настройка будет немного сложнее, но этого того стоит - теперь систему можно будет установить на большом количестве устройств. Надеюсь выложить первую публичную версию через месяц-полтора. И да, со временем будет Wiki на гитхабе с описанием что и где крутить, правда на английском.

Вот, кстати, "серверочек", на котором идет тестирование.

Dev server :)

Крутится на Armbian от Cubieboard, внутри 4гб карточка с системой и одноядерный процессор. Работает вполне комфортно, можно даже запитаться от дешевого Power Bank, и получить час-полтора автонома, а то и больше.

И да, спасибо всем, кто пользовался предыдущей версией TorBOX, предлагал изменения, делал форки на GitHub. В этой версии если уж и не получится реализовать всё, то по крайней мере будет удобно дописать всё, что душе угодно самостоятельно :).

На корм коту

Магазин открыт!

ещё