pf 방화벽이 raspbian apt-get 업데이트를 차단합니다.

pf 방화벽이 raspbian apt-get 업데이트를 차단합니다.

bridge100인터넷 공유 기능을 사용하여 라즈베리 파이 3(raspbian Stretch)를 Macpro(10.13.2; High Sierra)와 브리지 어댑터( )의 일부인 802.3 이더넷 포트에 연결하고 있습니다 . Mac의 인터넷 인터페이스는 en2(무선)입니다.

google.comping 또는 을 실행할 수 있지만 mirrordirector.raspbian.org패키지를 업데이트하려고 하면 apt-get이 영원히 중단됩니다.

# apt-get update
0% [Connecting to mirrordirector.raspbian.org (93.93.128.193)] [Connecting to archive.raspberrypi.org (93.93.130.104)]

Mac에서 pf 방화벽을 비활성화하면 작동이 시작됩니다. 내 pf 규칙은 다음과 같습니다.

LAN="bridge100"
WLAN="en2"

dns="53"
ntp="123"

set fingerprints "/etc/pf.os"
set skip on lo
set block-policy drop

set ruleset-optimization basic
set optimization normal
set timeout { tcp.established 600, tcp.closing 60 }
scrub in all no-df fragment reassemble
antispoof log quick for { lo $LAN $WLAN }


block all
block in log quick from no-route to any

pass in quick on { $LAN $WLAN } proto { udp tcp } from any to any port $dns keep state
pass in quick proto udp from any port 67 to any port 68
pass in proto udp from any to port $ntp

pass in inet proto icmp from 10.8.0.0/24
pass in inet proto icmp from 192.168.1.0/24
pass in inet proto icmp from 192.168.2.0/24
pass in inet proto icmp from 172.16.42.0/24

pass out all

를 허용하려면 어떤 규칙을 사용해야 합니까 apt-get update? 할 것이라고 생각했지만 pass out all방화벽에 대해 완전히 이해하지 못하는 것 같습니다. 도와주세요.

답변1

글쎄, 마침내 나는 이것을 알아 냈습니다. 문제는 복잡했습니다.

1 - 내가 알지 못했던 다음과 같은 리디렉션 규칙이 있었습니다.

rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 8443

그래서 apt-get이 포트 80(그리고 아마도 443)을 사용하기 때문에 나는 그것들에 대해 언급했습니다.

2 - 중요한 것. 틱할 때인터넷 공유체크박스환경설정, MacOS는 다음 pf 앵커를 동적으로 추가합니다.

nat-anchor "com.apple.internet-sharing" all
rdr-anchor "com.apple.internet-sharing" all

scrub-anchor "com.apple.internet-sharing" all fragment reassemble
anchor "com.apple.internet-sharing" all

실행 sudo pfctl -sa하여 해당 앵커가 포함되어 있는지 확인하세요. 그렇지 않은 경우 선택을 취소한 다음 다시 선택하십시오.인터넷 공유MacOS 시스템의 확인란환경설정.

관련 정보