짧은 버전 :
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를 우회하여 인터넷으로 전달됩니다.
답변
답을 찾았습니다.
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
답변
비슷한 상황에서 방화벽을 사용하여 한 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/