
Ich verbinde meinen Raspberry Pi 3 (Raspbian Stretch) mit meinem Macpro (10.13.2; High Sierra) über den 802.3-Ethernet-Port, der Teil eines überbrückten Adapters ( bridge100
) ist, und verwende die Funktion „Internet Share“. Die Internetschnittstelle auf dem Mac ist en2
(drahtlos).
Obwohl ich einen Ping google.com
oder senden kann mirrordirector.raspbian.org
, bleibt apt-get beim Versuch, Pakete zu aktualisieren, für immer hängen:
# 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 PF-Firewall auf dem Mac deaktiviere, funktioniert sie. Meine PF-Regeln lauten wie folgt:
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, pass out all
ich mache das, aber anscheinend verstehe ich die PF-Firewall nicht ganz. Bitte helfen Sie.
Antwort1
Nun, ich habe es endlich herausgefunden. Das Problem war komplex.
1 – Ich hatte die folgenden Umleitungsregeln, die mir nicht bewusst 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
Deshalb habe ich sie auskommentiert, weil apt-get Port 80 (und wahrscheinlich 443) verwendet.
2 - Hauptsache. Beim AnkreuzenInternet-FreigabeKontrollkästchen inEinstellungen, MacOS fügt dynamisch die folgenden pf-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 den Vorgang aus sudo pfctl -sa
, um sicherzustellen, dass diese Anker enthalten sind. Wenn nicht, deaktivieren Sie einfach das Häkchen und aktivieren Sie es erneut.Internet-FreigabeKontrollkästchen im MacOS-SystemEinstellungen.