pf Firewall blockiert raspbian apt-get update

0

Ich verbinde meinen Himbeer-Pi 3 (Raspbian Stretch) mit meinem Macpro (10.13.2; High Sierra) mit dem 802.3-Ethernet-Port, der Teil des Bridged-Adapters ( bridge100) ist, und verwende die Internet Share-Funktion. Die Internetschnittstelle auf dem Mac ist en2(drahtlos).

Obwohl ich pingen kann google.comoder mirrordirector.raspbian.orgwenn ich versuche, Pakete zu aktualisieren, hängt apt-get für immer:

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

Wenn ich die Firewall auf dem Mac deaktiviere, funktioniert sie. Meine pf-Regeln sind die folgenden:

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

Welche Regel sollte ich verwenden, um zuzulassen apt-get update. Ich dachte, ich pass out allwerde es tun, aber anscheinend verstehe ich die Firewall nicht ganz. Bitte helfen Sie.

Drew
quelle

Antworten:

0

Nun, endlich habe ich es herausgefunden. Das Problem war komplex.

1 - Ich hatte die folgenden Weiterleitungsregeln, die mir nicht bekannt waren:

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

Also habe ich sie kommentiert, weil apt-get Port 80 (und wahrscheinlich 443) benutzt.

2 - Hauptsache. Wenn Sie das Kontrollkästchen Internetfreigabe in den Einstellungen aktivieren, fügt MacOS dynamisch die folgenden Anker hinzu:

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

Führen Sie sudo pfctl -saden Test aus, um sicherzustellen, dass diese Anker enthalten sind. Wenn nicht, dann deaktivieren Sie einfach und dann kreuzen wieder Internet Sharing Checkbox in MacOS Systemeinstellungen .

Drew
quelle