Задний ход в DarkWeb

Материал из ALT Linux Wiki

Введение

Для хождения с собственного линукса по сайтам в зонах .i2p, .onion и прочим, напрямую недоступным, достаточно настроить несколько утилит. Приготовим остренького — макарошки с чесноком и луком:

  • макарошки — «запутывающий» (obfuscating) прокси obfs4, без которого теперь не работает...
  • лук — прокси TORsocks (The Onion Router) как добавка к «луковому» маршрутизатору;
  • чеснок же — самостоятельный демон для протокола «невидимого» интернета i2pd (Invisible Internet Protocol daemon) с «чесночным» (garlic) построением маршрутов.

И завернём всё это в лаваш-плагин для браузера — вот вам и хрестоматийный «пирожок с вермишелью».

«Невидимый» интернет

Установить и запустить i2pd:

# apt-get install -y i2pd
# systemctl enable --now i2pd

По адресу http://localhost:7070/ через браузер (хоть текстовый) доступны такие плюшки как:

  • проверка работоспособности демона;
  • наблюдение за его процессами-туннелями-транспортами;
  • смена некоторых настроек (например, понятный язык для веб-консоли) на время сессии (навсегда — через конфиг);
  • остановка-перезапуск...

и прочие.

Памятка: в дистрибутиве старая версия 2.38.0-alt1; в Сизифе новая 2.41.0-alt1, но со старыми юнитами-конфигами — на момент правки статьи лучше пересобрать пакет i2pd-2.41.0-alt2.src.rpm из приложения № 10772 к отчёту в багзилле № 42746.
Внимание: с прошлого года эту технологию блокируют по ТСПУ, работоспособность не гарантирована.

«Луковый» прокси

  1. Установить пакеты:
    • torsocks (автоматом подтягивающий основной сервис tor, если тот ещё не установлен),
    • obfs4 («путаник», добавляющий тору способы миновать РКНовские блокировки по «мостикам») и
    • lsof (для проверки результата).
  2. Добавить в конфиг тора /etc/tor/torrc опцию, включающую предоставленные пакетом obfs4 настройки со списком мостов (об их обновлении см. ниже).
  3. После чего (пере)запустить сам сервис и удостовериться, что тор слушает на нужном порту.
Суммарно выглядит примерно так...  
# apt-get update && apt-get install -y torsocks obfs4 lsof
# echo "%include /etc/tor/obfs4.torrc" >>/etc/tor/torrc
# systemctl restart (или enable --now) tor
# lsof -ni :9050
...
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
tor     2778 _tor    6u  IPv4  27181      0t0  TCP 127.0.0.1:9050 (LISTEN)

Обновление мостов для обфускатора

Скачать свежий обновлятор мостиков (например, в /etc/tor/) и сделать короткий симлинк:

# ln -s tor-relay-scanner-0.0.9.pyz tor-relay-scanner

Создать скриптец для их обновления с последующим подсовыванием тору, например:

/usr/local/sbin/obfuscator  
#!/bin/sh

WD=/etc/tor
LIST=obfsbridges.conf
CONF=$WD/conf.d/$LIST

cat $CONF >$WD/$LIST # бэкап конфига на случай неполучения нового списка.
python3 $WD/tor-relay-scanner --torrc -o $CONF

[ `wc -l $CONF | awk '{print $1}'` -gt 0 ] && {
    sed -i /UseBridges/d $CONF
    serv tor reload
} || cat $WD/$LIST >$CONF

И юнит для его периодического запуска, например:

/lib/systemd/system/obfuscator.service  
[Unit]
Description = Update tor obfs4 bridges list

[Service]
ExecStart = /usr/local/sbin/%N

[Install]
WantedBy = doit@daily.target

Последняя строчка задаёт периодичность обновления (как задействовать таймеры вместо кронтабов для служб такого рода, описано здесь). Сам на невыключающихся компах и серверах обновляю ежесуточно, а на командировочно-отпускном лапте — ежечасно (doit@hourly), хотя следовало бы переделать на момент загрузки системы.

Остаётся лишь оный обновлятор включить:

# systemctl enable obfuscator

Браузерный плагин

Сам использовал FoxyProxy (для хрома и ЯБ или огнелиса) и SwitchyOmega, настройку коего и опишу.

  1. Добавить в браузер соответствующий плагин для хрома/ЯБ или огнелиса.
  2. В меню плагина Значок выбрать пункт автопереключения Меню
  3. Создать профиль i2p для сайтов в одноимённой зоне (протокол: HTTP, сервер: localhost, порт: 4447 — не проиллюстрировано, делать по аналогии со следующим пунктом).
  4. Второй профиль proxy — для .onion и прочих труднодоступных сайтов (протокол: SOCKS5, сервер: localhost, порт: 9050):
    Настройка прокси
  5. Задать для доступа к сайтам .i2p одноимённый профиль, а к сайтам .onion и прочим недоступным — тор-прокси, по мере надобности пополняя список другими блокируемыми сайтами:
    Список сайтов
Список в режиме редактирования исходного кода (можно попросту скопипастить):  
[SwitchyOmega Conditions]
@with result

*.i2p +i2p
*.bookafan.website +proxy
*.btmet.com +proxy
*.byxatab.* +proxy
*.canva.com +proxy
*.dell.com +proxy
*.epicgames.com +proxy
*.facebook.com +proxy
*.freegogpcgames.com +proxy
*.gfi.com +proxy
*.instagram.com +proxy
*.kritka.info +proxy
*.kyiv.ua +proxy
*.linkedin.com +proxy
*.nitroflare.com +proxy
*.onion +proxy
*.rutracker.* +proxy
*.santehnika1.ru +proxy
*.semyanich.com +proxy
*.terraform.io +proxy
*.torgamez.com +proxy
*.torproject.org +proxy
*.ubi.com +proxy
*.underver.se +proxy
*.vonos.net +proxy
*.weebly.com +proxy
*baza-knig.ru +proxy
*bookzip.ru +proxy
*citilink.ru +proxy
*fantasy-worlds.org +proxy
*flibusta.* +proxy
*gmt-max.net +proxy
*intoupload.net +proxy
*kinobar.me +proxy
*kinogo.la +proxy
*kinosvit.tv +proxy
*kinotazz.ru +proxy
*loveread.* +proxy
*mechanics-games.* +proxy
*nnmclub.to +proxy
*onion.live +proxy
*otxataba.net +proxy
*piratam.net +proxy
*rg-mechanics.* +proxy
*rgmechanics.* +proxy
*rutor* +proxy
*seasonvar.ru +proxy
*serialytut.me +proxy
*skidrowcpy.com +proxy
*steampowered.com +proxy
*torlock.cc +proxy
*torrent* +proxy
*tracker.* +proxy
*twitter.com +proxy
*weebly.com +proxy
*xatab-repack* +proxy
*zenmoney.ru +proxy

* +direct

Подборки ресурсов

Обратная связь