Krótka wersja:
Jak przekierować cały ruch z portu en2 80/443 na 127.0.0.1:8080, gdy włączyłem Udostępnianie Internetu w OS X Mountain Lion (10.8)?
Niektóre tło:
Robię pracę magisterską, w której ocenię bezpieczeństwo komunikacji dla różnych aplikacji na smartfony. Wybrałem używanie mojego nowego MacBooka Air jako routera.
Podłączyłem Air do Internetu za pomocą USB Ethernet i skonfigurowałem Udostępnianie Internetu do mojego Wi-Fi. To działa dobrze. Mogę podłączyć inne urządzenia do mojego Air przez Wi-Fi i uzyskać dostęp do Internetu. Świetny!
Teraz chcę przechwycić ten ruch i zmodyfikować go w locie. Pomyślałem, że potrzebuję proxy, aby to zrobić, ale potrzebuję przezroczystego, w którym nie muszę wykonywać żadnej konfiguracji na urządzeniu. Odkryłem, że mitmproxy oferuje dokładnie te funkcje. Mam go więc na 127.0.0.1:8080, gotowy do przechwytywania ruchu.
Niestety utknąłem próbując przekierować mój ruch przychodzący z Wi-Fi (en2) na porcie 80 i 443 do 127.0.0.1:8080. Dokumenty mitmproxy sugerują konfigurację dla pfctl, ale to nie działa. Zauważyłem, że Apple dostarczył konfigurację do udostępniania Internetu, włączając NAT. Więc jeśli nie użyję ich konfiguracji, Udostępnianie Internetu przestanie działać. A kiedy próbuję dodać wiersze rdr do ich konfiguracji, to nie działa (próbowałem kilku miejsc w pliku /etc/pf.conf). Mój ruch po prostu przechodzi do Internetu, omijając mitmproxy.