pf firewall блокирует raspbian apt-get update

444
Drew

Я подключаю мой raspberry pi 3 (raspbian stretch) к моему Macpro (10.13.2; High Sierra) к порту Ethernet 802.3, который является частью мостового адаптера ( bridge100) с использованием функции Internet Share. Интернет-интерфейс на Mac есть en2(беспроводной).

Хотя я могу пропинговать google.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)] 

Когда я отключаю брандмауэр pf на Mac, он начинает работать. Мои правила 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что сделаю это, но, похоже, я не совсем понимаю брандмауэр pf. Пожалуйста помоги.

0

1 ответ на вопрос

0
Drew

Ну, наконец-то я понял это. Проблема была сложной.

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 .