So erstellen Sie eine Tor-Only-Netzwerkschnittstelle, die für Firejail geeignet ist?

2057
VasyaNovikov

Die bekannte, aber unsichere Methode ist zu verwenden torify. Es ist unsicher, weil wir eine Anwendung bitten, Tor zu verwenden, nicht zu erzwingen. Wenn sich die Anwendung nicht korrekt verhält oder von einem Fehler explodiert wird, können auch Nicht-Tor-Verbindungen zur Außenwelt hergestellt werden.

Auf der anderen Seite ist Firejail ein Sicherheitstool, mit dem Sie Anwendungen in Sandbox- Umgebungen einbinden können, indem Sie ihnen einen isolierten Kernel-Namespace, Seccomp-Filter und, was wichtig ist, einen benutzerdefinierten Netzwerkstapel bereitstellen.

So, wie erstelle ich ein Tor-nur Netzwerkschnittstelle, die Firejail zugeführt werden könnte ? Gemäß der Firejail-Dokumentation akzeptiert es jede Bridge-Netzwerkschnittstelle:

Firejail kann einen neuen TCP / IP-Netzwerkstack an die Sandbox anhängen. Der neue Stack verfügt über eine eigene Routing-Tabelle, eine Firewall und einen Satz von Schnittstellen. Es ist völlig unabhängig vom Host-Netzwerkstack.

  • Neue Schnittstellen erstellen - Linux-Kernel-Macvlan- und Bridge-Geräte werden automatisch erstellt und in der Sandbox verschoben.
  • Vorhandene Schnittstellen verschieben - Vorhandene Schnittstellen können in die Sandbox verschoben werden. Die Schnittstellenkonfiguration bleibt erhalten.
4

2 Antworten auf die Frage

4
user5321531

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

Ich kann nicht verifizieren, dass tor wie in dem obigen Artikel beschrieben funktioniert, jedoch funktioniert die Weiterleitung von ssh mit demselben Ansatz (z. B. ein Socks5-Port) einwandfrei.

"Umleitung des Datenverkehrs von der Brücke zum HTTP-Proxy" https://superuser.com/questions/1172607/redirect-traffic-from-bridge-to-http-proxy - Ich verwende diese Konfiguration derzeit, jedoch mit Privoxy anstelle von tinyproxy, was dies tun wird (sowie das Blockieren von Anzeigen) leiten HTTP-Anforderungen über einen SOCKS-Proxy weiter. user5321531 vor 7 Jahren 0
3
les

Wir haben eine weitere Lösung als Firejail-Unterstützung implementiert. Um Firejail innerhalb eines Netzwerk-Namensraums zu binden, der nur über tor zum Internet gelangen kann, sind die folgenden Schritte erforderlich:

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

dann..

# 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 

Wir haben diese Methode torjailfür eine einfache Verwendung implementiert.

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