Pull to refresh

Прозрачное проксирование в I2P и Tor

Reading time2 min
Views40K
Всем привет!
Захотелось мне установить кеширующий прокси на основе Polipo, ну и заодно настроить прозрачное проксирование i2p и Tor. Из всех сервисов, которые есть в этих анонимных сетях(почта, торренты и прочее) я использую только веб, так что, скорее всего, вы не сможете использовать сервисы, которые используют не http протокол, если последуете по этой инструкции.
Есть у меня домашний сервер на Debian, который раздает интернет. Использовал TinyProxy в качестве распределителя на основе доменов, два демона polipo — один для кеширования интернета, второй для(в большей степени) преобразования socks5 в http прокси, чтобы прописать ее в TinyProxy, ну еще и кеширует Tor трафик отдельно; dnsmasq для резолва адресов .i2p и .onion(он у меня и до этого использовался и для DNS, и для DHCP).
Будем считать, что I2P и Tor уже настроены и работают.

                I2P (4444)
                /
LAN port — TinyProxy (8888) — Polipo-WAN (8123)
                \
                Polipo-Tor (8124) — Tor (9050)


Начнем!


dnsmasq

Для начала, настроим dnsmasq, чтобы браузер смог получить какой-нибудь несуществующий ip для .i2p и .onion доменов
Отрывок из /etc/dnsmasq.conf:
address=/.i2p/192.168.99.99
address=/.onion/192.168.99.99


TinyProxy

Теперь настроим TinyProxy. В этом сервере правила upstream выполняются по принципу «последнее — главное», так что если мы поставим апстрим для интернета после апстримов для .i2p и .onion, ничего работать не будет.
Отрывок из /etc/tinyproxy.conf:
upstream 127.0.0.1:8123
upstream 127.0.0.1:4444 ".i2p"
upstream 127.0.0.1:8124 ".onion"


Polipo

Здесь все просто. Polipo для WAN настраиваем по вкусу, а в Polipo для Tor все то же самое, только еще добавляем строки:
socksParentProxy = "localhost:9050"
socksProxyType = socks5


iptables

Наверное, самая важная часть. Без нее не заработает. Выполняем команду:
sudo iptables -t nat -I PREROUTING -i _LANETH_ -d ! 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8888

Где _LANETH_ — сетевой интерфейс локалки, а 192.168.4.0/24 — ваша локальная подсеть.

Вот, собственно, и все! Вы можете ходить по .i2p и .onion сайтам без дополнительных настроек браузера с любого устройства.
Tags:
Hubs:
Total votes 30: ↑27 and ↓3+24
Comments18

Articles