TOR сеть

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

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

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

Re: TOR сеть

Непрочитанное сообщение Olej » 27 окт 2015, 19:34

Интересные статьи относительно TOR (мне подсказали):

Раздельный запуск Torbrowser от нескольких пользователей с общим системным Tor-процессом и локальная прозрачная торификация - слишком заумное название, но это о том, как SOCKS5 прокси системы TOR заставить работать с группой портов, так, чтобы различные пользователи одной LAN могли использовать разные цепочки TOR.

I2P. Невидимый интернет. Анонимность в интернете - ещё раз, но гораздо менее внятно, о том, как разлиные экземпляры браузеров могут использовать разные цепочки адресов.

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

Re: TOR сеть

Непрочитанное сообщение Olej » 11 ноя 2015, 16:28

Olej писал(а): Вопрос технически достаточно интересный, можно повозиться.
В связи с этим вопросом - новый виток интереса к TOR.

Начиная с того, что и новые инсталляции системы TOR нужно сделать (проверить что там) ... у меня уже и компьютеры сменились за время обсуждения этой темы. :lol:

И информацию о TOR собрать пообъёмнее и посвежее...
Вот, опять же, подсказали: Изображение.
Там форумная тема "Tor" на 39 страниц, как началась в 2013 году, так до сих пор и тянется ... публика там, в большинстве, "пыанэрская", не тянущая в технических вопросах (другим голова занята :lol: ) ... но есть моментики ничего, дают натырку куда копать... ;-) - не столько объясняют, сколько подсказывают вопросы.
Olej писал(а):Там же (на той странице) Краткое руководство пользователя
Ссылки поплыли за это время, документы поисчезали :-o :-(

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

TOR сеть

Непрочитанное сообщение Olej » 08 дек 2015, 22:45

Игореха писал(а): настроить работу тора таким образом,чтоб я мог открывать много независимых профилей браузера(например мазилу),и каждый из них мог независимо работать через тор со своими айпишниками.Много профилей это примерно 10-20 штук.Правда я работаю на винде,но если надо,то ради такогодела перейду на линукс.На этой неделе я в командировке в
Игореха 26 окт в 21:30
Решаем вот этот вопрос....

Идея состоит в том, чтобы:
- для N сессий-профилей FireFox (или любого другого браузера)...
- создать N независимых контейнеров/зон LXC...
- в каждом из контейнеров LXC запустить отдельный экземпляр TOR SOCK5 прокси...
- а каждую из сессий браузера настроить на использование собственного прокси (IP:port)

Эксперименты внесли коррективы в эту схему:
- TOR SOCK5 прокси отказывается принимать соединение не с локального (для него) хоста... (возможно, я пока не смог этого добиться, но пишут, что в новых версиях так и есть, так и задумано)
- поэтому на каждом LXС заускаем HTTP прокси polipo...
- к которому цепляются по HTTP браузеры...
- а сами polipo используют как родительский SOCKS5 прокси TOR

Звучит накручено, но на самом деле всё не так страшно.

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

TOR сеть

Непрочитанное сообщение Olej » 08 дек 2015, 22:55

Olej писал(а):Звучит накручено, но на самом деле всё не так страшно.
1. Моя собственная (реальая) LAN 192.168.1.0/24 ...

2. Создание LXС контейнера (имя C1) описывалось раньше: контейнеры LXC.
Если всё делать по дефаулту, LXС контейнеры/зоны получают IP в сети 10.0.3.0/24.

3. Созданный контейнер - это ещё не значит, что он выполняется. Каждый раз перед началом работы (это можно поместить в стартовые скрипты, кому нужно):

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

olej@nvidia ~/2015_WORK/HISTORY.nvidia/12/01 $ sudo service lxc status
lxc start/running

olej@nvidia ~ $ sudo lxc-ls --fancy
NAME  STATE    IPV4  IPV6  AUTOSTART
------------------------------------
C1    STOPPED  -     -     NO

olej@nvidia ~ $ sudo lxc-start -n C1 -d

olej@nvidia ~ $ sudo lxc-ls --fancy
NAME  STATE    IPV4        IPV6  AUTOSTART
------------------------------------------
C1    RUNNING  10.0.3.176  -     NO
Т.е. сам сервис LXC после загрузки хоста работает, но его контейнеры остановлены. Нужно их стартовать.

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

TOR сеть

Непрочитанное сообщение Olej » 08 дек 2015, 23:01

4. Заходим в shell запущенных контейнеров 1-м из 2-х способов (они разные! по разным протоколам):

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

olej@nvidia ~/2015_WORK/HISTORY.nvidia/12/08 $ sudo lxc-console -n C1
Ubuntu 12.04.5 LTS C1 tty1

C1 login: ubuntu
Password: 
Last login: Fri Dec  4 23:49:16 EET 2015 on lxc/tty1
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-37-generic i686)

 * Documentation:  https://help.ubuntu.com/

ubuntu@C1:~$ whoami
ubuntu
ubuntu@C1:~$ 
...
Или так:

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

olej@nvidia ~ $ sudo lxc-attach -n C1

root@C1:/# who
ubuntu   lxc/tty1     2015-12-02 00:00

root@C1:/# uname -a
Linux C1 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:30:01 UTC 2014 i686 i686 i386 GNU/Linux

root@C1:/# whoami
root

root@C1:/# lsb_release -ircd
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:        12.04
Codename:       precise

root@C1:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3e:0f:49:3b
          inet addr:10.0.3.176  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe0f:493b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8228 (8.2 KB)  TX bytes:3044 (3.0 KB)

lo        Link encap:Локальная петля (Loopback)
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
5. В любом случае, у нас в контейнере LXC должны быть установлены:

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

root@C1:/# sudo aptitude install tor
Следующие НОВЫЕ пакеты будут установлены:
  libevent-2.0-5{a} tor tor-geoipdb{a} torsocks{a}
0 пакетов обновлено, 4 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 2 062 kБ архивов. После распаковки 6 923 kБ будет занято.
Хотите продолжить? [Y/n/?] y
Получено: 1 http://archive.ubuntu.com/ubuntu/ precise-updates/main libevent-2.0-5 i386 2.0.16-stable-1ubuntu0.1 [126 kB]
Получено: 2 http://archive.ubuntu.com/ubuntu/ precise/universe tor i386 0.2.2.35-1 [781 kB]
Получено: 3 http://archive.ubuntu.com/ubuntu/ precise/universe torsocks i386 1.2-1 [67,7 kB]
Получено: 4 http://archive.ubuntu.com/ubuntu/ precise/universe tor-geoipdb all 0.2.2.35-1 [1 087 kB]
Получено 2 062 kБ в 2с (859 kБ/с)
Выбор ранее не выбранного пакета libevent-2.0-5.
(Чтение базы данных ... на данный момент установлено 20609 файлов и каталогов.)
Распаковывается пакет libevent-2.0-5 (из файла .../libevent-2.0-5_2.0.16-stable-1ubuntu0.1_i386.deb)...
Выбор ранее не выбранного пакета tor.
Распаковывается пакет tor (из файла .../tor_0.2.2.35-1_i386.deb)...
Выбор ранее не выбранного пакета torsocks.
Распаковывается пакет torsocks (из файла .../torsocks_1.2-1_i386.deb)...
Выбор ранее не выбранного пакета tor-geoipdb.
Распаковывается пакет tor-geoipdb (из файла .../tor-geoipdb_0.2.2.35-1_all.deb)...
Обрабатываются триггеры для ureadahead ...
Настраивается пакет libevent-2.0-5 (2.0.16-stable-1ubuntu0.1) ...
Настраивается пакет tor (0.2.2.35-1) ...
Something or somebody made /var/run/tor disappear.
Creating one for you again.
Raising maximum number of filedescriptors (ulimit -n) to 32768.
Starting tor daemon: tor...
Dec 02 02:26:24.101 [notice] Tor v0.2.2.35 (git-73ff13ab3cc9570d). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i
Dec 02 02:26:24.102 [notice] Initialized libevent version 2.0.16-stable using method epoll. Good.
Dec 02 02:26:24.102 [notice] Opening Socks listener on 127.0.0.1:9050
Dec 02 02:26:24.102 [notice] Opening Control listener on /var/run/tor/control
done.
Настраивается пакет torsocks (1.2-1) ...
Настраивается пакет tor-geoipdb (0.2.2.35-1) ...
Обрабатываются триггеры для libc-bin ...
ldconfig deferred processing now taking place

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

root@C1:/# aptitude install polipo
Следующие НОВЫЕ пакеты будут установлены:
  polipo
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 185 kБ архивов. После распаковки 770 kБ будет занято.
Получено: 1 http://archive.ubuntu.com/ubuntu/ precise/universe polipo i386 1.0.4.1-1.1 [185 kB]
Получено 185 kБ в 0с (194 kБ/с)
Выбор ранее не выбранного пакета polipo.
(Чтение базы данных ... на данный момент установлено 20673 файла и каталога.)
Распаковывается пакет polipo (из файла .../polipo_1.0.4.1-1.1_i386.deb)...
Обрабатываются триггеры для ureadahead ...
Настраивается пакет polipo (1.0.4.1-1.1) ...
Starting polipo: polipo.

root@C1:/# sudo service polipo status
Usage: /etc/init.d/polipo {start|stop|restart|force-reload}

root@C1:/# ps -A | grep polipo
  367 ?        00:00:00 polipo

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

Re: TOR сеть

Непрочитанное сообщение Olej » 08 дек 2015, 23:07

6. Теперь на polipo нужно реконфигурировать на SOCKS proxy TOR.
Файл /etc/polipo/config :

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

# proxyAddress = "::0"        # both IPv4 and IPv6
proxyAddress = "0.0.0.0"    # IPv4 only

# If you are enabling 'proxyAddress' above, then you want to enable the
# 'allowedClients' variable to the address of your network, e.g.
# allowedClients = 127.0.0.1, 192.168.42.0/24
............................................
# allowedClients = 127.0.0.1..............
allowedClients = 127.0.0.1, 192.168.1.0/24, 10.0.3.0/24
IP адреса подсетей откуда polipo будет принимать HTTP запросы.

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

# Uncomment this if you want to use a parent SOCKS proxy:

socksParentProxy = "localhost:9050"
socksProxyType = socks5
То, куда перенапралять запросы к SOCKS5 proxy.

7. Обязательно рестартуем polipo:

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

root@C1:/etc/polipo# sudo service polipo restart
Restarting polipo: polipo.
Вся цепочка подготовлена.

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

Re: TOR сеть

Непрочитанное сообщение Olej » 08 дек 2015, 23:08

Olej писал(а):Вся цепочка подготовлена.
8. Теперь подготавливаем браузер (или много браузеров).
Я использую для проверок Opera - она проще в настройках.
op1.png
9. Теперь всё готово для проверки подключения через TOR.
Цепочка выглядит так:
Opera -> polipo -> tor -> Интернет ...
Для проверки используем тестовый IP с сайта TOR: https://check.torproject.org/
op2.png
Всё свершилось! ;-)

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

Re: TOR сеть

Непрочитанное сообщение Olej » 09 дек 2015, 11:54

Чтобы не создавать всё это в каждом экземпляре контейнера, просто клонируем содержимое контейнера:

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

olej@nvidia /var/lib $ sudo lxc-stop -n C1

olej@nvidia /var/lib $ sudo lxc-clone -o C1 -n C2
Created container C2 as copy of C1
Запуск...

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

olej@nvidia ~ $ sudo lxc-start -n C1 -d

olej@nvidia ~ $ sudo lxc-start -n C2 -d

olej@nvidia ~ $ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f4:6d:04:60:78:6f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.9/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f66d:4ff:fe60:786f/64 scope link
       valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether fe:c1:d7:89:a9:24 brd ff:ff:ff:ff:ff:ff
    inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::209d:d8ff:fe45:137c/64 scope link
       valid_lft forever preferred_lft forever
5: vethP1OXBI: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master lxcbr0 state UP group default qlen 1000
    link/ether fe:f9:b5:e9:a2:11 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fcf9:b5ff:fee9:a211/64 scope link
       valid_lft forever preferred_lft forever
7: vethM9ASFF: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master lxcbr0 state UP group default qlen 1000
    link/ether fe:c1:d7:89:a9:24 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fcc1:d7ff:fe89:a924/64 scope link
       valid_lft forever preferred_lft forever

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

Re: TOR сеть

Непрочитанное сообщение Olej » 09 дек 2015, 11:58

Olej писал(а): Запуск...
Заходим в консоль каждого их контейнеров:

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

olej@nvidia ~ $ sudo lxc-attach -n C1
root@C1:/# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3e:0f:49:3b brd ff:ff:ff:ff:ff:ff
    inet 10.0.3.176/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe0f:493b/64 scope link 
       valid_lft forever preferred_lft forever
root@C1:/# service torsatus
torsatus: unrecognized service
root@C1:/# service tor status
tor is running
root@C1:/# service polipo status
Usage: /etc/init.d/polipo {start|stop|restart|force-reload}
root@C1:/# 
root@C1:/# ps -A | grep tor
  278 ?        00:00:07 tor
root@C1:/# ps -A | grep polipo
  256 ?        00:00:00 polipo

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

olej@nvidia ~ $ sudo lxc-attach -n C2
root@C2:/# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3e:76:e8:74 brd ff:ff:ff:ff:ff:ff
    inet 10.0.3.85/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe76:e874/64 scope link 
       valid_lft forever preferred_lft forever
root@C2:/# srvice tor status
bash: srvice: команда не найдена
root@C2:/# service tor status
tor is running
root@C2:/# service polipo status
Usage: /etc/init.d/polipo {start|stop|restart|force-reload}
root@C2:/# ps -A | grep tor
  286 ?        00:00:12 tor
root@C2:/# ps -A | grep polipo
  263 ?        00:00:00 polipo
Нас интересуют их (C1 & C2) IP...
На хост компьютере:

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

olej@nvidia ~ $ ping -b 10.0.3.85
PING 10.0.3.85 (10.0.3.85) 56(84) bytes of data.
64 bytes from 10.0.3.85: icmp_seq=1 ttl=64 time=0.070 ms
64 bytes from 10.0.3.85: icmp_seq=2 ttl=64 time=0.033 ms
^C
--- 10.0.3.85 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.033/0.051/0.070/0.019 ms

olej@nvidia ~ $ ping -b 10.0.3.176
PING 10.0.3.176 (10.0.3.176) 56(84) bytes of data.
64 bytes from 10.0.3.176: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 10.0.3.176: icmp_seq=2 ttl=64 time=0.058 ms
^C
--- 10.0.3.176 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.058/0.063/0.069/0.009 ms
Всё что и требовалось :!:

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

Re: TOR сеть

Непрочитанное сообщение Olej » 09 дек 2015, 12:03

Olej писал(а):Всё что и требовалось :!:
Теперь осталось повозиться с нескольким независимыми сессиями (профилями) FireFox:

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

olej@nvidia ~/2015_WORK/HISTORY.nvidia/12/08 $ firefox --help
Usage: firefox [ options ... ] [URL]
       where options include:

X11 options
  --display=DISPLAY  X display to use
  --sync             Make X calls synchronous
  --g-fatal-warnings Make all warnings fatal
  
Firefox options
  -h or --help       Print this message.
  -v or --version    Print Firefox version.
  -P <profile>       Start with <profile>.
  --profile <path>   Start with profile at <path>.
  --migration        Start with migration wizard.
  --ProfileManager   Start with ProfileManager.
  --no-remote        Do not accept or send remote commands; implies --new-instance.
  --new-instance     Open new instance, not a new window in running instance.
  --UILocale <locale> Start with <locale> resources as UI Locale.
  --safe-mode        Disables extensions and themes for this session.
  --jsconsole        Open the Browser Console.
  --jsdebugger       Open the Browser Toolbox.
  --start-debugger-server [port|path] Start the debugger server on a TCP port or Unix domain socket path.  Defaults to TCP port 6000.
  --browser          Open a browser window.
  --new-window <url> Open <url> in a new window.
  --new-tab <url>    Open <url> in a new tab.
  --private-window <url> Open <url> in a new private window.
  --preferences      Open Preferences dialog.
  --search <term>    Search <term> with your default search engine.
  --recording <file> Record drawing for a given URL.
  --recording-output <file> Specify destination file for a drawing recording.
  --setDefaultBrowser Set this app as the default browser.

      -g or --debug          Start within debugger
      -d or --debugger       Specify debugger to start with (eg, gdb or valgrind)
      -a or --debugger-args  Specify arguments for debugger
Создаём и запускаем 2 профиля... (естественно, в разных терминалах, вкладках...)

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

olej@nvidia ~/2015_WORK/HISTORY.nvidia/12/08 $ firefox --new-instace -P p1
...
ff1.png
ff1.png (25.51 КБ) 7771 просмотр
ff2.png

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

olej@nvidia ~ $ firefox --new-instace -P p2
...
ff3.png
ff3.png (26.75 КБ) 7771 просмотр
(как я сейчас понимаю, опция --new-instace только нужна, а -P p1 нужна будет только при последующих запусках ... но я фиксирую лог, как оно было сделано)

Ответить

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

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

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