Перенаправлення трафіку за допомогою PF разом із спільним доступом до Інтернету


8

Коротка версія:

Як перенаправити весь трафік з порту en2 80/443 на 127.0.0.1:8080, коли я ввімкнув обмін в Інтернеті в OS X Mountain Lion (10.8)?

Деякі відомості:

Я роблю магістерську роботу, де буду оцінювати безпеку зв’язку для різних додатків для смартфонів. Я вибрав використовувати свій новий MacBook Air в якості маршрутизатора.

Я підключив свій Інтернет до Інтернету через USB Ethernet і налаштував Інтернет-обмін на свій Wi-Fi. Це чудово працює. Я можу підключити інші пристрої до свого повітря через wifi та отримати доступ до Інтернету. Чудово!

Тепер я хочу перехопити цей трафік і змінити його на ходу. Я подумав, що для цього мені потрібен проксі, але мені потрібен прозорий, де мені не потрібно робити конфігурацію на пристрої. Я виявив, що mitmproxy пропонує саме ці функції. Тож у мене він працює на 127.0.0.1:8080, готовий перехопити трафік.

На жаль, я застряг, намагаючись перенаправити свій трафік, що надходить з wifi (en2) на порт 80 та 443 на 127.0.0.1:8080. Документи mitmproxy пропонують конфігурацію для pfctl, але вона не працює. Я помітив, що Apple надала конфігурацію для спільного доступу до Інтернету, що дозволяє NAT. Тож якщо я не використовую їх конфігурацію, то Інтернет-обмін перестає працювати. І коли я намагаюся додати рядки rdr до їх конфігурації, це не вступає в силу (спробувало кілька місць у файлі /etc/pf.conf). Мій трафік просто передається в Інтернет, минаючи mitmproxy.

Відповіді:


6

Я знайшов відповідь.

Я завантажив свої правила як частина якоря, com.apple/100.InternetSharing/natpmpякий використовується для обміну в Інтернеті.

У файлі mitm.pf.confмістяться правила:

rdr on bridge0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr on bridge0 proto tcp from any to any port 443 -> 127.0.0.1 port 8080`

Завантажте його за допомогою якоря Internet Sharing:

sudo pfctl -a com.apple/100.InternetSharing/natpmp -f mitm.pf.conf

0

У подібній ситуації я використовував брандмауер для перенаправлення трафіку з одного NIC на проксі. Ви можете використовувати щось подібне:

$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 80 in via en1
$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 443 in via en1

Якщо для мене добре працювали.

Ви також можете використовувати безкоштовну програму WaterRoof як графічний інтерфейс для налаштування брандмауера. Це нічого не додає до команди ipsw, вона просто надає простіший доступ до всіх параметрів.

Ця сторінка мені дуже допомогла в налаштуванні моєї конфігурації:

http://lucumr.pocoo.org/2013/1/6/osx-wifi-proxy/


Я це намагався, але чомусь не вийшло. Це повністю порушило Інтернет-обмін. Крім того, я розумію, що Apple відходить від ipfw від FreeBSD на користь pf від OpenBSD.
Крістофер Рейєр

Ця відповідь працює лише для старих Mac. Apple знизила IPFW.
Брейді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.