인터넷 공유와 함께 PF를 사용하여 트래픽 리디렉션


8

짧은 버전 :

OS X Mountain Lion (10.8)에서 인터넷 공유를 활성화 한 경우 en2 포트 80/443에서 127.0.0.1:8080으로 모든 트래픽을 리디렉션하려면 어떻게합니까?

일부 배경 :

다양한 스마트 폰 앱의 통신 보안을 평가할 마스터 논문을 작성하고 있습니다. 새 MacBook Air를 라우터로 사용하기로 선택했습니다.

USB 이더넷으로 Air를 인터넷에 연결하고 Wi-Fi에 인터넷 공유를 설정했습니다. 이것은 잘 작동합니다. Wi-Fi를 통해 다른 장치를 Air에 연결하고 인터넷에 액세스 할 수 있습니다. 큰!

이제이 트래픽을 가로 채서 즉시 수정하고 싶습니다. 이 작업을 수행하려면 프록시가 필요하다고 생각했지만 장치에서 구성을 수행 할 필요가없는 투명한 프록시가 필요합니다. mitmproxy가 이러한 기능을 정확하게 제공한다는 것을 알았습니다. 그래서 127.0.0.1:8080에서 실행 중이며 트래픽을 가로 챌 수 있습니다.

불행히도 포트 80 및 443의 wifi (en2)에서 들어오는 트래픽을 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`

인터넷 공유 앵커를 사용하여로드하십시오.

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 프로그램을 GUI로 사용하여 방화벽을 구성 할 수도 있습니다 . ipsw 명령에는 아무 것도 추가하지 않으며 모든 옵션에 쉽게 액세스 할 수 있습니다.

이 페이지는 구성 설정에 많은 도움이되었습니다.

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


나는 그것을 시도했지만 어떤 이유로 든 작동하지 않았다. 인터넷 공유가 완전히 끊어졌습니다. 또한 Apple이 OpenBSD의 pf를 선호하여 FreeBSD의 ipfw에서 멀어지고 있음을 이해합니다.
Christoffer Reijer

이 답변은 구형 Mac에서만 작동합니다. 애플은 IPFW를 떨어 뜨렸다.
Brady
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.