Как создать Tor-единственный сетевой интерфейс, подходящий для Firejail?

2031
VasyaNovikov

Общеизвестным, но небезопасным методом является использование torify. Это небезопасно, потому что мы просим приложение использовать Tor, а не форсировать его. Если приложение плохо себя ведет или эксплуатируется из-за ошибки, оно все равно позволит устанавливать соединения не-Tor с внешним миром.

Firejail, с другой стороны, представляет собой инструмент безопасности, который позволяет выполнять изолированную программную среду приложений, предоставляя им изолированное пространство имен ядра, фильтры seccomp и, что важно, настраиваемый сетевой стек.

Итак, как мне создать сетевой интерфейс Tor только для передачи в Firejail ? Согласно документации Firejail, он принимает любой сетевой интерфейс моста:

Firejail может подключить новый стек TCP / IP к песочнице. Новый стек поставляется с собственной таблицей маршрутизации, брандмауэром и набором интерфейсов. Он полностью независим от сетевого стека хоста.

  • Создание новых интерфейсов - устройства ядра Macvlan и моста Linux создаются и автоматически перемещаются в песочницу.
  • Переместить существующие интерфейсы - существующие интерфейсы можно перемещать внутри песочницы. Конфигурация интерфейса сохраняется.
4

2 ответа на вопрос

4
user5321531

Firejail с Tor HOWTO https://www.void.gr/kargig/blog/2016/12/12/firejail-with-tor-howto/

Я не могу убедиться, что tor будет работать так, как описано в приведенной выше статье, однако пересылка ssh с использованием того же подхода (т. Е. Порта socks5) работает нормально.

'перенаправить трафик с моста на http-прокси' https://superuser.com/questions/1172607/redirect-traffic-from-bridge-to-http-proxy - в настоящее время я использую эту конфигурацию, но с privoxy вместо tinyproxy, который будет (а также блокировка рекламы) направляет HTTP-запросы через SOCKS-прокси. user5321531 7 лет назад 0
3
les

мы внедрили другое решение в качестве поддержки firejail --netns flag. чтобы связать firejail с пространством имен сети, которое может подключаться к Интернету только через tor, необходимо выполнить следующие шаги:

# configure tor with this configuration AutomapHostsOnResolve 1 TransPort 9040 TransListenAddress 10.0.0.1 DNSPort 5354 DNSListenAddress 10.0.0.1 SOCKSPort 0 

затем..

# create a new network namespace named torjail ip netns add torjail  # create two virtual ethernet interface ip link add out-torjail type veth peer name in-torjail  # bind one interface to torjail network namespace ip link set in-torjail netns torjail  # set interfaces ip and default routing ip addr add 10.0.0.1/24 dev out-torjail ip link set out-torjail up ip netns exec torjail ip addr add 10.0.0.2/24 dev in-torjail ip netns exec torjail ip link set in-torjail up ip netns exec torjail ip route add default via 10.0.0.1  # forward all dns traffic to tor DNSPort iptables -t nat -A PREROUTING -i out-torjail -p udp -d 10.0.0.1 --dport 53 -j DNAT --to-destination 10.0.0.1:5354  # forward all traffic to tor TransPort iptables -t nat -A PREROUTING -i out-torjail -p tcp --syn -j DNAT --to-destination 10.0.0.1:9040  # accept established connection iptables -A OUTPUT -m state -o out-torjail --state ESTABLISHED,RELATED -j ACCEPT  # accept only forwarded traffic iptables -A INPUT -i out-torjail -p udp --destination 10.0.0.1 --dport 5354 -j ACCEPT iptables -A INPUT -i out-torjail -p tcp --destination 10.0.0.1 --dport 9040 -j ACCEPT iptables -A INPUT -i out-torjail -p udp --destination 10.0.0.1 --dport 9040 -j ACCEPT iptables -A INPUT -i out-torjail -j DROP   # finally run firejail within torjail namespace firejail --dns=10.0.0.1 --netns=torjail $YOUR_ANONYMOUS_COMMAND_HERE 

мы реализовали этот метод torjailдля простого использования, взгляните:

https://torjail.github.io
https://github.com/torjail/torjail

Похожие вопросы