LINUX.ORG.RU
ФорумAdmin

Iptables + TOR-прозрачное проксирование

 , ,


0

2

Приветствую! Пытаюсь настроить машину так чтобы весь траффик проходил через Тор запущенный на этой же машине, а остальной средствами файерволла не выходил наружу. Тор сидит на 6666 порту, куда пересылаются все tcp пакеты не принадлежащие юзеру tor, а для ДНС так же поднимается локальный торднс на 5353 порту, куда через iptables перенаправляются все пакеты отправленные на 53й порт. В общем-то энкапсулировать tcp траффик получилось(браузер и другие приложения прозрачно используют тор) но возникла проблема с запретом на исходящий/входящий не-tor траффик: «iptables -P OUTPUT DROP» & «iptables -P INPUT DROP» наглухо закрывают всё, в том числе и казалось бы явно разрешенные соединения с внешним миром для юзера tor. Как мне кажется необходимо явно разрешить еще какой то тип соединения или более явно указать что-то, но не знаю что именно. Прилагаю конфиг тора и скрипт через который передаю iptables параметры. Надеюсь на помощь :)

torrc:

PIDFile /var/run/tor/tor.pid
Log notice syslog
DataDirectory /var/lib/tor/data

TransPort 127.0.0.1:6666 IsolateClientAddr IsolateSOCKSAuth IsolateClientProtocol IsolateDestPort IsolateDestAddr
DNSPort 127.0.0.1:5353

usetorasproxy.sh:

#!/bin/bash

#iptables -P OUTPUT DROP
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner tor -j ACCEPT

#iptables -P INPUT DROP
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# all tcp packets of all users except tor are forwarding to tor proxy
iptables -t nat -A OUTPUT -p TCP -m owner ! --uid-owner tor -j DNAT --to-destination 127.0.0.1:6666

# dns requests to 127.0.0.1 are forwarding to tordns resolver
iptables -t nat -A OUTPUT -p TCP --dport 53 -j DNAT --to-destination 127.0.0.1:5353
iptables -t nat -A OUTPUT -p UDP --dport 53 -j DNAT --to-destination 127.0.0.1:5353

echo "nameserver 127.0.0.1" > /etc/resolv.conf


Очевидно, что на 127.0.0.1 свет клином не сошелся, не?

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

А причем тут 127.0.0.1? Траффику генерируемому тором в оутпуте дан зеленый свет(и по-идее должно быть всеравно с какими адресами). В инпуте дан зеленый свет соединениям, весь траффик юзеров инкапсулируется в тор, т.е. наружу идут пакеты с реальными ип-адресами только от тора, и ему это разрешено. Этого недостаточно?

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  localhost            localhost           
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  localhost            localhost           
ACCEPT     all  --  anywhere             anywhere             owner UID match tor
Virun ()
Ответ на: комментарий от Virun

вот так не стоит писать как у тебя.

iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
пиши lo. Посмотри не заворачиваются ли у тебя запросы от процесса тора, инт. lo, локальных адресов в тор. Перейди по ссылке там все есть.

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

ну так у тебя на первый взгляд, все в норме. Но я бы переписал с интерфейсами и сделал бы RETURN в правилах.

ving2 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.