Die Kurzversion:
Wie leite ich den gesamten Datenverkehr vom en2-Port 80/443 auf 127.0.0.1:8080 um, wenn ich die Internetfreigabe in OS X Mountain Lion (10.8) aktiviert habe?
Einige Hintergrundinformationen:
Ich mache eine Masterarbeit, in der ich die Kommunikationssicherheit für verschiedene Smartphone-Apps bewerten werde. Ich habe mich entschieden, mein neues MacBook Air als Router zu verwenden.
Ich habe mein Air über USB-Ethernet mit dem Internet verbunden und die Internetfreigabe für mein WLAN eingerichtet. Das funktioniert gut. Ich kann andere Geräte über WLAN mit meinem Air verbinden und auf das Internet zugreifen. Großartig!
Jetzt möchte ich diesen Verkehr abfangen und im laufenden Betrieb ändern. Ich dachte, ich brauche dafür einen Proxy, aber ich brauche einen transparenten, bei dem ich keine Konfiguration auf dem Gerät vornehmen muss. Ich fand, dass Mitmproxy genau diese Funktionen bietet. Ich habe es also auf 127.0.0.1:8080 ausgeführt und bin bereit, den Verkehr abzufangen.
Leider stecke ich fest und versuche, meinen Datenverkehr vom WLAN (en2) auf Port 80 und 443 auf 127.0.0.1:8080 umzuleiten. Die mitmproxy-Dokumente schlagen eine Konfiguration für pfctl vor, die jedoch nicht funktioniert. Ich habe festgestellt, dass Apple eine Konfiguration für die Internetfreigabe bereitgestellt hat, mit der NAT aktiviert wird. Wenn ich ihre Konfiguration nicht verwende, funktioniert die Internetfreigabe nicht mehr. Und wenn ich versuche, die rdr-Zeilen zu ihrer Konfiguration hinzuzufügen, wird dies nicht wirksam (mehrere Stellen in der Datei /etc/pf.conf ausprobiert). Mein Datenverkehr wird einfach an das Internet weitergeleitet und umgeht den Mitmproxy.