
Управляйте своими Onion Services через CLI или TUI в Unix-подобных операционных системах с POSIX-совместимой оболочкой.
OnionJuggler — это минимально требовательный, переносимый набор скриптов и документации, помогающий оператору сервиса жонглировать (управлять) своими луковыми сервисами.
ВНИМАНИЕ: пока не доверяйте этому репозиторию, сохраняйте резервные копии ключей hs в другом месте. Этот проект ещё не выпущен и должен рассматриваться только как разработочный.
Быстрая ссылка на этот репозиторий: git.io/onionjuggler

Этот проект был начат после того, как я увидел потрясающие скрипты OnionShare CLI на Python, которые позволяют создавать эфемерные луковые сервисы, никогда не касающиеся диска, и которые можно легко запускать на Tails или Whonix. Затем, после знакомства с bash-скриптом для луковых сервисов RaspiBlitz на Raspberry Pi, появилась идея портировать его на любой дистрибутив Debian. По мере развития идеи стало ясно, что использование GNU Bash и Linux является единой точкой отказа 1 2, поэтому окончательной целью стало сделать скрипт POSIX-совместимым, чтобы он работал в любой Unix-подобной системе.
Цель этого проекта:
Устранение единой точки отказа:
Linux до BSD и любых других Unix-подобных систем.Bash до любой POSIX-оболочки, такой как ksh, (y,d)ash и Zsh (в режиме эмуляции sh).Systemd до RC, OpenRC, SysVinit, Runit.Редактирование файла конфигурации Tor (torrc) несложно, но автоматизация решает проблемы неправильной конфигурации и даёт:
<HiddenServiceDir>/authorized_clients/<client>.auth. Если настроен хотя бы один клиент, сервис будет недоступен без аутентификации.<ClientOnionAuthDir>/<SOME_ONION>.auth_private.Общие:
Обязательные программы:
dash 0.5.4+, bash 2.03+, ksh 88+, mksh R28+, yash 2.29+, busybox ash 1.1.3+, zsh 3.1.9+ ( zsh --emulate sh ) и т.д.Необязательные программы:
Программы для разработки:
В основном протестировано на системах Debian, включая Whonix.
Может работать на OpenBSD —
basez из исходников, так как его нет в портах.Что касается других операционных систем, смотрите предопределённые конфигурации в etc/onionjuggler. Они не все были протестированы.
git clone https://github.com/nyxnor/onionjuggler.git
cd onionjuggler
Запустите из клонированного репозитория, чтобы создать каталоги tor, страницы руководства и скопировать скрипты в PATH:
./configure.sh --install
Не следует изменять конфигурацию по умолчанию в /etc/onionjuggler/onionjuggler.conf, она будет изменена при каждом обновлении. Ваши локальные конфигурации должны быть в /etc/onionjuggler/conf.d/*.conf; из этой папки они будут обрабатываться в лексическом порядке, и последнее значение заменит значения по умолчанию.
Каждый конфигурационный файл и скрипт имеет собственную страницу руководства и сообщение справки — это лучший способ полностью изучить onionjuggler.
Перед выполнением скрипта, вносящего изменения, рекомендуется просмотреть текущие настройки. У каждого скрипта есть опция --getconf, которая выводит текущую конфигурацию, используемую onionjuggler:
onionjuggler-cli --getconf
Также можно получить параметры командной строки без внесения изменений — полезно для проверки корректности присваивания:
onionjuggler-cli --getopt --service=example --hs-version=3
Для использования TUI просто запустите:
onionjuggler-tui
Чтобы создать сервис из командной строки:
onionjuggler-cli --on --service=terminator --socket=tcp --hs-version=3 --port="80:127.0.0.1:80"
Можно гораздо больше — читайте страницы руководства.
dialog и whiptail.@all, чтобы включить все сервисы или клиентов (в зависимости от опции --service или --client); можно также перечислить сервисы [SERV1,SERV2,...] и клиентов [CLIENT1,CLIENT2,...]. Команда будет перебирать переменные и применять комбинации.