Как я могу использовать 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

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

  • разрешить все входящие
  • разрешить все исходящие на localhost
  • разрешить все исходящие сообщения, инициированные пользователем debian-tor
  • перенаправить весь исходящий UDP 53, не инициированный debian-tor, на localhost 53
  • перенаправить все исходящие TCP и UDP, не инициированные debian-tor, на localhost 9040
  • заблокировать все остальное

0 ответов

Другие вопросы по тегам