Android: Apps über Orbot routen

Im XMPP-Leseraum lese ich öfter über Probleme mit Orbot in Kombination mit der AFWall+. Das Problem: Falls ihr in Orbot »Transparent Proxying« aktiviert habt, überschreibt Orbot die AFWall+ Regelsätze und umgekehrt. Das ist natürlich nicht optimal.

Über die Custom Scripts von AFWall+ lässt sich das Problem lösen:

Zuerst erlauben wir, dass die lokalen Ports von Orbot überhaupt erreichbar sind:

# Enable Apps to access Orbot
$IPTABLES -A "afwall" -d 127.0.0.1 -p tcp --dport 9040 -j ACCEPT
$IPTABLES -A "afwall" -d 127.0.0.1 -p udp --dport 5400 -j ACCEPT

Anschließend möchten wir bspw. NewPipe über Orbot »routen« bzw. natten:

# Newpipe » org.schabi.newpipe
NEWPIPE_UID=`dumpsys package org.schabi.newpipe | grep userId= | cut -d= -f2 - | cut -d' ' -f1 -` 
$IPTABLES -t nat -A OUTPUT -p tcp -m owner --uid-owner $NEWPIPE_UID -j DNAT --to-destination 127.0.0.1:9040 
$IPTABLES -t nat -A OUTPUT -p udp -m owner --uid-owner $NEWPIPE_UID -j DNAT --to-destination 127.0.0.1:5400

Alle ausgehenden TCP- und UDP-Pakete von NewPipe leiten wir zu den entsprechenden lokalen Ports von Orbot (9040/5400) um.

Damit die Video-Wiedergabe innerhalb von NewPipe funktioniert, muss noch der Android Media Server mit der Außenwelt kommunizieren dürfen – ebenfalls über das Tor-Netzwerk:

# Android Media Server (Default UID: 1013)
$IPTABLES -t nat -A OUTPUT -p tcp -m owner --uid-owner 1013 -j DNAT --to-destination 127.0.0.1:9040
$IPTABLES -t nat -A OUTPUT -p udp -m owner --uid-owner 1013 -j DNAT --to-destination 127.0.0.1:5400

Wollt ihr weitere Apps über Orbot routen, dann könnt ihr wie folgt vorgehen. Beispiel VLC:

  • Zunächst benötigen wir den Package Name der App: pm list packages
  • Der Package Name der VLC App lautet: org.videolan.vlc
  • Jetzt bauen wir uns die Regeln
# VLC » org.videolan.vlc
VLC_UID=`dumpsys package org.videolan.vlc | grep userId= | cut -d= -f2 - | cut -d' ' -f1 -`
$IPTABLES -t nat -A OUTPUT -p tcp -m owner --uid-owner $VLC_UID -j DNAT --to-destination 127.0.0.1:9040
$IPTABLES -t nat -A OUTPUT -p udp -m owner --uid-owner $VLC_UID -j DNAT --to-destination 127.0.0.1:5400

Hinweis: Ihr müsst innerhalb AFWall+ lediglich Orbot den Zugriff auf das Internet erlauben.

Unterstütze den Blog mit einem Dauerauftrag! Mitmachen ➡