맥 OSX에서 pfctl 포트 포워딩?


16
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 10.0.10.0/24 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
COMMIT

위의 코드는 리눅스에서 트래픽을 전달하는 데 사용한 코드입니다.

이제 Mac OSX에서 동일한 작업을 수행해야합니다. 10.8 중요한 경우.

그래서 여기에 거래가 있습니다.

이전에는 프록시를 사용하여 Linux 시스템에 연결하고 해당 프록시를 사용하여 mitmproxy를 사용하여 트래픽을 모니터링 할 수있었습니다

이제 Mac에서 내장 인터넷 공유를 사용하고 포트 8080의 항목 만 수신하는 mitmproxy를 사용하려고합니다.

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ac:de:48:81:1d:4a 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3<LEARNING,DISCOVER>
             port 5 priority 0 path cost 0

위의 내용은 전달해야 할 "공유 연결"입니다.

답변:


23

모든 웹 트래픽 요청이 192.168.2.0/24인터페이스 에서 온 것으로 가정 하고 인터페이스bridge0

/etc/pf.conf에 다음 규칙을 추가하십시오.

rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port http -> 127.0.0.1 port 8080
rdr pass on bridge0 inet proto tcp from 192.168.2.0/24 to any port https -> 127.0.0.1 port 8080

빠른 팁

  1. 구문 오류에 대한 pf.conf 테스트

    pfctl -v -n -f /etc/pf.conf
    
  2. 규칙 적용 / 다시로드

    pfctl -f /etc/pf.conf
    

이것은 OS X pfctl 의 치트 시트 입니다.


3
pf기본적으로 사용 설정되어 있지 않은 것 같습니다 . -e플래그 를 추가해야 할 수도 있습니다 pfctl -ef /etc/pf.conf.
Webthusiast

4
그것은 구문 오류를 말한다
Hitesh Joshi

@HiteshJoshi : 같은 문제가 있습니다. 나를 위해 "rdr-anchor"와 "dummynet-anchor"를 사용하여 줄 사이에서 줄을 옮기는 것이 고정되었습니다.
Albin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.