Я делаю некоторое тестирование удобства пользования веб-приложения и пытаюсь отладить и записать некоторое использование сессий SSL mitmproxy
как прозрачный прокси и по некоторым причинам pf
в соответствии с Mac OS X Пума не настраивает прозрачные перенаправления.
Во-первых, я позволяю передать:
sudo sysctl -w net.inet.ip.forwarding=1
Затем, я создаю простое pf.conf
файл с одной строкой на нем:
rdr on {en1, en0} inet proto tcp to any port {80, 443} -> 192.168.1.40 port 3128
Где эти 192.168.1.40 являются удаленным хостом, который в настоящее время работает mitmproxy
и en1
и en2
основные исходящие интерфейсы на Mac.
Наконец, я запускаю pf
со следующими командами:
sudo pfctl -vf pf.conf
sudo pfctl -e
Однако ничего не происходит. Когда я перечисляю в настоящее время под управлением правила для pf
с pfctl -sr
это ничего не показывает.
Я подтвердил это pf
может работать над машиной путем предоставления ему фиктивного правила, которое блокирует весь исходящий доступ к порту 80, и это работает.
Любые подсказки о том, что еще я должен сделать для включения pf
перенаправить веб-трафик к прозрачному прокси на Пуме Mac OS X?
Вы пробовали net.inet.ip.scopedroute = 0
? Из http://lucumr.pocoo.org/2013/1/6/osx-wifi-proxy/ :
Сейчас, если вы завершите эту настройку выше, вы заметите, что на самом деле ничего не работает. Причина этого - ошибка в ядре OS X. это требует установки флага net.inet.ip.scopedroute в 0. Я не совершенно уверен, что он делает, но в Интернете сообщают, что он ломается совместное использование сети через настройки пользователя. В любом случае это исправляет перенаправление на основе ipfw, поэтому вы можете перевернуть его с помощью sysctl:
$ sudo sysctl -w net.inet.ip.scopedroute = 0
К сожалению, в OS X Lion этот флаг фактически не может быть сброшен из пользовательское пространство, поэтому вам нужно установить его как параметр загрузки, а затем перезапустить твой компьютер. Вы можете сделать это, отредактировав Файл /Library/Preferences/SystemConfiguration/com.apple.Boot.plist (продолжение ...)