Назад | Перейти на главную страницу

Как я могу использовать iptables для ограничения доступа к адресам .onion в Tor?

Я хочу ограничить исходящий сетевой доступ (за исключением подключений к localhost) TCP и UDP через Tor и заблокировать все остальное (за исключением приложения Tor и подключений localhost). Цель состоит в том, чтобы ограничить пользователей localhost и *.onion адреса, для которых Tor создает виртуальную адресную сеть 10.192.0.0/10 (используя VirtualAddrNetwork вариант в файле torrc).

Вот мой текущий iptables-save:

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -d 10.192.0.0/10 -p tcp -j REDIRECT --to-ports 9040
-A OUTPUT ! -o lo -p tcp -m tcp -m owner ! --uid-owner debian-tor -j REDIRECT --to-ports 9040
-A OUTPUT ! -o lo -p udp -m udp --dport 53 -m owner ! --uid-owner debian-tor -j REDIRECT --to-ports 53
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -m owner --uid-owner debian-tor -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9040 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT ! -o lo -j DROP
-A OUTPUT -p icmp -j REJECT --reject-with icmp-port-unreachable
COMMIT

Я пробовал добавить это в начале *filter, до остальных правил, но все соединения не удались:

-A OUTPUT -o lo -j ACCEPT
-A OUTPUT ! -d 10.192.0.0/10 -m owner ! --uid-owner debian-tor -j REJECT

Почему вторая строка в приведенном выше коде блокирует весь трафик? Каковы правильные правила для следующего: