Iptables + TOR-прозрачное проксирование
Приветствую! Пытаюсь настроить машину так чтобы весь траффик проходил через Тор запущенный на этой же машине, а остальной средствами файерволла не выходил наружу. Тор сидит на 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