мы внедрили другое решение в качестве поддержки 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