TOR сеть (продолжение)

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 12:13

Адрес (было):

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
185.241.208.71
Подключение к управляющему порту:

Код: Выделить всё

olej@R420:~$ telnet 127.0.0.1 9051
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
AUTHENTICATE
250 OK
signal NEWNYM
250 OK
...
Адрес (стало):

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
185.220.101.20
Так выглядит команда смены цепочки TOR.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 12:24

Olej писал(а):
14 дек 2023, 12:13
Так выглядит команда смены цепочки TOR.
Вспоминаем ... что для смены цепочки (IP) ест более простые способы:
1).
Olej писал(а):
14 дек 2023, 12:08

Код: Выделить всё

root@R420:/etc/tor# systemctl restart tor
2). Посылка сигнала (SIGHUP) - самый простой способ:

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
185.220.101.20

Код: Выделить всё

olej@R420:~$ sudo killall -HUP tor
[sudo] пароль для olej:       

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
185.220.101.163
Или так:

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
185.220.101.163

Код: Выделить всё

olej@R420:~$ ps -A | grep " tor"
   1472 ?        00:00:02 tor

Код: Выделить всё

olej@R420:~$ sudo kill -HUP 1472

Код: Выделить всё

olej@R420:~$ curl --socks5 127.0.0.1:9050 http://checkip.amazonaws.com/
109.70.100.66
Но то что выше (через telnet: localhost порт 9051) - это общий способ взаимодействия с стеком TOR.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 18:28

Торификация терминала (shell).
Уже упоминалась здесь: onion-ресурсы.
Если, при запущенном tor-стеке, в терминале выполнить команду:

Код: Выделить всё

olej@R420:~$ . torsocks on
Tor mode activated. Every command will be torified for this shell.
То дальше все команды (которые умеют это делать) с этого терминала будут коннектиться в сеть через TOR SOCKS прокси (127.0.0.1:9050 по умолчанию):

Код: Выделить всё

olej@R420:~$ curl http://checkip.amazonaws.com/
199.195.250.165
И это не мой IP, это IP конечной точки TOR-цепочки!

Код: Выделить всё

olej@R420:~$ whois 199.195.250.165 | grep -i country
Country:        US
Для прекращения торификации выполняем похожую команду:

Код: Выделить всё

olej@R420:~$ . torsocks off
Tor mode deactivated. Command will NOT go through Tor anymore.
И теперь IP сменился на знакомый

Код: Выделить всё

olej@R420:~$ curl http://checkip.amazonaws.com/
45.9.31.32

Код: Выделить всё

olej@R420:~$ whois 45.9.31.32 | grep -i country
country:        UA
country:        UA
Вот так легко я гуляю между континентами :!: :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 18:34

Olej писал(а):
14 дек 2023, 18:28
Торификация терминала (shell).
Olej писал(а):
14 дек 2023, 18:28
команды (которые умеют это делать)
Но далеко не все команды умеют использовать SOCKS5 прокси (от TOR) :!:
Это мои неудачные попытки:

Код: Выделить всё

olej@R420:~$ . torsocks on
Tor mode activated. Every command will be torified for this shell.

Код: Выделить всё

olej@R420:~$ telnet 90.156.230.27 p22
1702565754 ERROR torsocks[49902]: Unable to resolve. Status reply: 4 (in socks5_recv_resolve_reply() at socks5.c:677)
telnet: could not resolve 90.156.230.27/p22: Servname not supported for ai_socktype

Код: Выделить всё

olej@R420:~$ nmap 90.156.230.27
Starting Nmap 7.80 ( https://nmap.org ) at 2023-12-14 16:56 EET
NSOCK ERROR [0.6290s] nsock_make_socket(): Socket trouble: Operation not permitted
nmap: nsock_core.c:1259: nsock_pool_add_event: Assertion `nse->iod->sd >= 0' failed.
Аварийный останов (образ памяти сброшен на диск)
Но :idea: (мои удачные попытки):

Код: Выделить всё

olej@R420:~$ wget -qO- https://check.torproject.org/ | grep -i congratulations
      Congratulations. This browser is configured to use Tor.
      Congratulations. This browser is configured to use Tor.
Прямого коннекта нет (провайдеры перекрыли :!: ):

Код: Выделить всё

olej@R420:~$ ping 90.156.230.27 -c3
PING 90.156.230.27 (90.156.230.27) 56(84) bytes of data.

--- 90.156.230.27 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2037ms
Торифицированный доступ есть (без явного указания прокси):

Код: Выделить всё

olej@R420:~$ iperf3 -c 90.156.230.27 -p8080 -4
Connecting to host 90.156.230.27, port 8080
[  5] local 127.0.0.1 port 51846 connected to 90.156.230.27 port 8080
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  7.50 MBytes  62.9 Mbits/sec    3   5.25 MBytes       
[  5]   1.00-2.00   sec  1.25 MBytes  10.5 Mbits/sec    1   1023 KBytes       
[  5]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec    0   1023 KBytes       
[  5]   3.00-4.00   sec  1.25 MBytes  10.5 Mbits/sec    1   1023 KBytes       
[  5]   4.00-5.00   sec  1.25 MBytes  10.5 Mbits/sec    0    639 KBytes       
[  5]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec    1    639 KBytes       
[  5]   6.00-7.00   sec  1.25 MBytes  10.5 Mbits/sec    2    639 KBytes       
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    1    639 KBytes       
[  5]   8.00-9.00   sec  1.25 MBytes  10.5 Mbits/sec    0    639 KBytes       
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0    639 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  13.8 MBytes  11.5 Mbits/sec    9             sender
[  5]   0.00-10.51  sec  6.29 MBytes  5.02 Mbits/sec                  receiver

iperf Done.
Еще пример удачной торификации - на том же далёком сайте/сервере, с которым не ходит прямой IPv4 трафик:

Код: Выделить всё

olej@277938:~$ ls -l www*
-rwx------ 1 olej olej 225 мая 13  2023 www.arch
-rwx------ 1 olej olej 198 мая 11  2023 www.arch.2
-rwx------ 1 olej olej  52 мая 11  2023 www.arch.rem
Запускаем передачу файла по запросу:

Код: Выделить всё

olej@277938:~$ cat www.arch | nc -q0 -l -p 8080
...
И ожидаем кто попросит :-D ...
Теперь на локальном компьютере (за >4000км.) + в торсифицированном терминале запрашиваем передачу:

Код: Выделить всё

olej@R420:~$ nc -q0 90.156.230.27 8080  > file.nc
Файл получен, длина та же:

Код: Выделить всё

olej@R420:~$ ls -l file.nc 
-rw-rw-r-- 1 olej olej 225 дек 14 22:29 file.nc
P.S. Важно! Вспоминаем, что в природе, и в стандартных репозиториях дистрибутивов Linux присутствуют одновременно 2 совершенно разных реализации NetCat с одинаковым именем программы nc:

Код: Выделить всё

olej@R420:~/2023/linux-ru.ru.hist/timeweb$ aptitude search netcat | grep ^i
i  netcat-openbsd - инструмент для TCP/IP на все случаи жизни
i  netcat-traditional - инструмент для TCP/IP4 на все случаи жизни
И они отличаются синтаксисом, опциями, и сетевым протоколом :!:
Они могут быть установлены одновременно, а то который сейчас тспользуется как nc определяется системой альтернатив (см. nc - сетевой cat + alternatives):

Код: Выделить всё

olej@R420:~/2023/linux-ru.ru.hist/timeweb$ update-alternatives --list nc
/bin/nc.openbsd
/bin/nc.traditional
olej@R420:~/2023/linux-ru.ru.hist/timeweb$ update-alternatives --display nc
nc - ручной режим
  лучшая версия ссылки — /bin/nc.openbsd
  ссылка сейчас указывает на /bin/nc.traditional
  ссылка nc — /bin/nc
  подчинённая nc.1.gz — /usr/share/man/man1/nc.1.gz
  подчинённая netcat — /bin/netcat
  подчинённая netcat.1.gz — /usr/share/man/man1/netcat.1.gz
/bin/nc.openbsd — приоритет 50
  подчинённый nc.1.gz: /usr/share/man/man1/nc_openbsd.1.gz
  подчинённый netcat: /bin/nc.openbsd
  подчинённый netcat.1.gz: /usr/share/man/man1/nc_openbsd.1.gz
/bin/nc.traditional — приоритет 10
  подчинённый nc.1.gz: /usr/share/man/man1/nc.traditional.1.gz
  подчинённый netcat: /bin/nc.traditional
  подчинённый netcat.1.gz: /usr/share/man/man1/nc.traditional.1.gz
Смысл этого примечания в том, что и на сервере (передающем файл) и на клиенте (его получающем) должна использоваться одна и та же реализация nc :!:
Здесь был использован nc.traditional

Ещё, того же назначения, но ещё более мощная утилита socat (см. socat) - на том же сервере выполняем команду ожидания запроса на передачу:

Код: Выделить всё

olej@277938:~$ socat -u file:www.arch tcp4-listen:8080,reuseaddr
После чего на клиенте, в торсифицированном терминале, запрашиваем передачу файла:

Код: Выделить всё

olej@R420:~$ socat -u tcp4:90.156.230.27:8080 STDOUT > file.socat
Результат (2-х последовательных экспериментов):

Код: Выделить всё

olej@R420:~$ ls -l file.*
-rw-rw-r-- 1 olej olej 225 дек 14 22:29 file.nc
-rw-rw-r-- 1 olej olej 225 дек 14 23:04 file.socat

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 19:18

Olej писал(а):
14 дек 2023, 12:13
Подключение к управляющему порту:
Множество команд через управляющий интерфейс TOR - Tor Specifications. Commands

Код: Выделить всё

olej@R420:~$ telnet 127.0.0.1 9051
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
AUTHENTICATE
250 OK
GETCONF
250 OK
GETCONF HiddenServiceOptions
250-HiddenServiceDir=/var/lib/tor/onion.service/
250-HiddenServicePort=8080 127.0.0.1:80
250 HiddenServicePort=22 127.0.0.1:22
SIGNAL DUMP
250 OK
GETINFO version
250-version=0.4.6.10
250 OK
GETINFO config-file
250-config-file=/etc/tor/torrc
250 OK

Код: Выделить всё

GETINFO traffic/read
250-traffic/read=11586959
250 OK
GETINFO traffic/written
250-traffic/written=16980937
250 OK
GETINFO uptime
250-uptime=27793
250 OK

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 19:47

Управляем Tor из консоли с помощью Nyx
28.01.2019

Код: Выделить всё

olej@R420:~$ aptitude search nyx | grep tor
p  nyx - terminal status monitor for tor

Код: Выделить всё

olej@R420:~$ sudo apt install nyx 
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Следующие НОВЫЕ пакеты будут установлены:
  nyx
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 39 пакетов не обновлено.
Необходимо скачать 67,5 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 302 kB.
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 nyx all 2.1.0-2.1 [67,5 kB]
Получено 67,5 kB за 1с (59,4 kB/s)        
Выбор ранее не выбранного пакета nyx.
(Чтение базы данных … на данный момент установлено 583394 файла и каталога.)
Подготовка к распаковке …/archives/nyx_2.1.0-2.1_all.deb …
Распаковывается nyx (2.1.0-2.1) …
Настраивается пакет nyx (2.1.0-2.1) …
Обрабатываются триггеры для man-db (2.10.2-1) …

Код: Выделить всё

olej@R420:~$ which nyx
/usr/bin/nyx

Код: Выделить всё

olej@R420:~$ nyx --help
Usage nyx [OPTION]
Terminal status monitor for Tor relays.

  -i, --interface [ADDRESS:]PORT  change control interface from 127.0.0.1:default
  -s, --socket SOCKET_PATH        attach using unix domain socket if present,
                                    SOCKET_PATH defaults to: /var/run/tor/control
  -c, --config CONFIG_PATH        loaded configuration options, CONFIG_PATH
                                    defaults to: /home/olej/.nyx/config
  -d, --debug LOG_PATH            writes all nyx logs to the given location
  -l, --log EVENTS                comma separated list of events to log
  -v, --version                   provides version information
  -h, --help                      presents this help

Example:
nyx -i 1643             attach to control port 1643
nyx -l we -c /tmp/cfg   use this configuration file with 'WARN'/'ERR' events

Код: Выделить всё

olej@R420:~$ nyx -v
nyx version 2.1.0 (released January 12, 2019)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 20:04

Olej писал(а):
14 дек 2023, 19:47

Код: Выделить всё

olej@R420:~$ which nyx
/usr/bin/nyx
Конфигурационный файл образец: https://nyx.torproject.org/nyxrc.sample - там показаны умалчиваемые значения, они могут быть изменены.
Его умалчиваемое местоположение: ~/.nyx/config
Но он не создаётся и, наверное, нужно создать при намерении создать отличия от дефаултов.

Код: Выделить всё

olej@R420:~$ ls ~/.nyx/config
ls: невозможно получить доступ к '/home/olej/.nyx/config': Нет такого файла или каталога
Возможно, как минимум, туда нужно вписать ту же парольную строку для /etc/tor/torrc, которую получаем:
tor --hash-password SUPER_STRONG_PASSWORD
Конфигурационный файл отдельно для каждого пользователя находится в каталоге ~/.nyx/config
Открываем его для редактирования любым текстовым редактором и вставляем строку:

Код: Выделить всё

password SUPER_STRONG_PASSWORD
Где значение “SUPER_STRONG_PASSWORD” – заменяем на пароль, хеш которого генерировали командой tor –hash-password на предыдущем этапе. Сохраняем и закрываем файл.
Запуск:

Код: Выделить всё

olej@R420:~$ nyx
...
Снимок экрана от 2023-12-14 18-44-44.png
Снимок экрана от 2023-12-14 18-44-44.png (67.59 КБ) 288 просмотров
По клавише 'm' открывается меню (как на рисунке) для управления режимами программы.
Позволяет не только наблюдать значения параметров и статистику трафика в динамике, но и управлять работой TOR-стека, изменяя его параметры.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 14 дек 2023, 20:14

Olej писал(а):
14 дек 2023, 20:04
статистику трафика в динамике
Это вот работа TV-Online через TOR-стек:
Снимок экрана от 2023-12-14 19-12-53.png
Снимок экрана от 2023-12-14 19-12-53.png (138.75 КБ) 286 просмотров

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 15 дек 2023, 00:17

Olej писал(а):
14 дек 2023, 18:28
Торификация терминала (shell)
Торификация терминала (направление сетевого потока CLI команды через цепочку ретрансляторов TOR, без явного указания SOCKS-прокси) - это настолько интересная возможность, что просто полезно собрать перечнем команды, которые смогли неявно использовать прокси, и те которыми не удалось это сделать :!:
Не сработали (не исключено, что это я не смог их нормально запустить):
- telnet
- nmap
- ssh

Сработали:
- curl
- wget
- iperf
- iperf3
- nc
- socat

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

TOR сеть (продолжение)

Непрочитанное сообщение Olej » 05 мар 2024, 11:47

Olej писал(а):
14 дек 2023, 20:04
Возможно, как минимум, туда нужно вписать ту же парольную строку для /etc/tor/torrc, которую получаем:
Возвратившись как-то к использованию этого монитора ... обнаружил, что а). каким-то образом попортил его конфигурацию, и б). потом довольно здорово прободался с её созданием по-новой (это совсем не тривильная задача оказалась!).
А монитор очень удобный ... и нужно пользоваться!
(Конфигурация, в общем, описана в Управляем Tor из консоли с помощью Nyx ... но возникли и некоторые мелкие отличий!)
Поэтому конфигурирование конспектирую подробно...

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей