LINUX.ORG.RU

Как заставить Onion Circuits отображать цепочки консольного тора?

 


0

1

Дело происходит на Ubuntu 20.04 Установил Onion Circuits, но она показывает цепочки торбраузера (качал Tor Browser архивом с оф. сайта и поставил в Applications), а не того тора, который работает в качестве невидимого сервиса (тот Tor, который устанавливается через терминал, командой: sudo apt-get install tor ). Как заставить Onion Circuits показывать цепочку именно тор сервиса? Или подскажите команду для терминала, которая отобразит цепочки сервиса Tor.

Ставь из репозитория через apt или synaptic. Открыл текст программы на официальном https://gitlab.tails.boum.org/tails/onioncircuits/-/blob/master/onioncircuits#L646 и вижу, что тебя интересует это:

def connect_controller(self):
        """Connects the controller to the Tor daemon.
        """
        connect_args = dict()
        if 'TOR_CONTROL_SOCKET' in os.environ:
            connect_args['control_socket'] = os.environ.get('TOR_CONTROL_SOCKET')
        if 'TOR_CONTROL_ADDRESS' in os.environ or \
           'TOR_CONTROL_PORT' in os.environ:
            connect_args['control_port'] = (
                os.environ.get('TOR_CONTROL_ADDRESS', '127.0.0.1'),
                int(os.environ.get('TOR_CONTROL_PORT', 9051))
            )
        self.controller = stem.connection.connect(**connect_args)
        return self.controller

Т.к. он смотрит по этим переменным или тому адресу и порту, а tor должен слушать соответственный Control порт или сокет.

boowai ★★★★ ()
Ответ на: комментарий от boowai

Ну я не такой компьютерный гик, как ты, поэтому объясни, как мне открыть его (Onion Circuits) исходный код и прописать ему порт тор сервиса? Ты же это имел ввиду, так? Ему достаточно порт 9050 прописать? Если что, я раньше уже пользовался редактором nano, подозреваю, что возможно в этом случае надо найти нужный файл (не знаю где и что за файл) и отредачить его этим редактором. Не знаю, можно конечно было бы просто отредактировать torsocks.conf прописав ему порт торбраузера, но не знаю насколько это правильно. Они с торбраузером будут же работать вместе. Не будет один и тот-же порт у них как-то им мешать, вносить помехи в работу?

Zombiereich ()
Ответ на: комментарий от Zombiereich

Почитай про https://wiki.archlinux.org/title/Tor_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Tor_ControlPort

Т.к. на обычном порту оказался браузерный, то лучше настроить в /etc/tor/torrc ControlSocket. А в «ярлык» onioncircuits надо будет так прописать переменную https://wiki.archlinux.org/title/Desktop_entries_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D1%80%D0%B5%D0%B4%D1%8B
типа, Exec=env TOR_CONTROL_SOCKET=var/lib/tor/control_socket onioncircuits.

Если не получится, то настроить в другой порт и его вписать в ярлык.

Привел от ссылки на арча т.к. там хоть написано, но может отличаться.

boowai ★★★★ ()
Последнее исправление: boowai (всего исправлений: 2)
Ответ на: комментарий от Zombiereich

Если нет, то вписать можно, как по ссылке, а вообще надо смотреть файлы в пакете, там есть /usr/share/doc/tor/torrc.sample.gz и документацию читать.

Если порт, то лучше совсем другой, т.к. этот вообще

Заметьте, что в 2013 году значение Port для Tor Browser Bundle изменилось с 9050 на 9150.

и соответственно 9151 там использовался как Control, а тебе надо избегать их. Выбери лучше порты 9950 для socks и 9951 для control, тогда не пересечешься.

И тебе надо обьявить в переменной окружения путь или номер порта.

boowai ★★★★ ()
Ответ на: комментарий от boowai

Порты в torrc поменял, но вот при вводе этой команды в терминале: Exec=env TOR_CONTROL_SOCKET=var/lib/tor/control_socket onioncircuits открывается Onion Circuits, но там пусто. Написано, что тор не включен. Сам по себе тор работает, проверял командой. ControlSocket в torrc тоже прописал. Может ты знаешь какой-то иной способ глянуть цепочки в тор сервисе?

Zombiereich ()
Ответ на: комментарий от Zombiereich

Ты / перед var забыл. Хотя, это я забыл, но думать же надо, что опечатки могут быть ( я с телефона ввожу, tor пользуюсь, но этого не касался, ищу, копирую), или еще что-то хуже. Exec= специфично для «ярлыка» (файла .desktop) и если в терминал вводить, то Exec= не надо. Но в твоем случае, вероятно Exec=env распознался как объявление переменной, а остальная часть строки нормальная, так что рабочая. Проще вводить в терминал TOR_CONTROL_SOCKET=/var/lib/tor/control_socket onioncircuits. env TOR_CONTROL_SOCKET=/var/lib/tor/control_socket onioncircuits правильнее, наверно. Там, где я вторую ссылку приводил про Desktop entries, была ссылка про переменные окружения https://wiki.archlinux.org/title/Environment_variables_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) . И там написано как проверить, какие выставились.

Чтобы увидеть переменные окружения конкретных процессов, откройте файл /proc/pid/environ, где pid — числовой идентификатор интересующего процесса.

и дальше.

А всё это прописал в torrc?

ControlSocket /var/lib/tor/control_socket
ControlSocketsGroupWritable 1
DataDirectoryGroupReadable 1
CacheDirectoryGroupReadable 1             

И пользователя в группу tor добавил?

Как говорил, если не получается настроить ControlSocket, то раз ControlPort поменял, то пиши его номер вместе с TOR_CONTROL_PORT= при запуске onioncircuits. Устанавливать переменные можно и не только при запуске, а на всю систему, сеанс и т.п. Читай все по ссылке выше про переменные окружения. Еще некоторые DE позволяют определить их на уровне сеанса через их настройки.

хотя бы как глянуть ip входной ноды

Ты можешь сам подать команды в порт или сокет. Это было по ссылке про tor, которую я давал. https://wiki.archlinux.org/title/Tor_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_Tor_Control . Можно без echo (без всего до | включительно), а вводить команды как в терминал. Там же есть ссылка на техническое описание, где команды. Не знаю, нужна ли команда authenticate, если ты не настраивал пароли или cookie.

Получить информацию по цепочке - getinfo circuit-status. Потом берешь id последнего и подставляешь к getinfo ns/id/. https://stackoverflow.com/questions/9777192/how-do-i-get-the-tor-exit-node-ip-address-over-the-control-port#comment50415566_16261363 . Там еще есть пример и ссылка для библиотеки python, которая и используется в onioncircuits.

Может, тебе будет проще использовать сервис проверки IP совсестимый с curl. Поищи «curl check ip». Припиши ‘–socks5-hostname localhost:9950’, или какой там порт у тебя. Могут быть проблемы, что популярные прикрываются от DDOS и tor.

boowai ★★★★ ()
Последнее исправление: boowai (всего исправлений: 3)
Ограничение на отправку комментариев: только для зарегистрированных пользователей