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.