pf ファイアウォールが raspbian apt-get アップデートをブロックする

pf ファイアウォールが raspbian apt-get アップデートをブロックする

私は、インターネット共有機能を使用して、ブリッジ アダプタ ( ) の一部である 802.3 イーサネット ポートに、Raspberry Pi 3 (Raspbian Stretch) を Macpro (10.13.2、High Sierra) に接続しています。Macのインターネット インターフェイスは(ワイヤレス)bridge100です。en2

pinggoogle.comや は実行できますが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 updatepass out all実行するつもりでしたが、PF ファイアウォールを完全に理解していないようです。助けてください。

答え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システムのチェックボックス環境設定

関連情報