私はちょうどpfを使用するMac OS Xサーバーを継承しました。私が解決しようとしている問題は、サーバーにpingを送信できない理由です。心配せずに端末にpingを送信できますが、pingがタイムアウトします。
例えば
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
既知の「良好な」IPアドレスセットがテーブル(実際には複数のテーブル)に設定され、以下を使用してアクセスすることができる非常に単純なpf設定があります。
pass in from { <my-good-ips1>, <my-good-ips2>, <my-good-ips3> } to any
以下でも許可されています。
pass in quick inet proto udp from any port 67 to any port 68
他のすべてはブロックされます。
そして(最も重要なのは)すべてのトラフィックが許可されることです。
pass out proto tcp from any to any keep state
pass out proto udp from any to any keep state
PFを見たとき、私はまだ正しいと思いますか?それとも別の方向に調査を指示する必要がありますか?
答え1
あなたは消えましたpass proto icmp
。
これは通常、最初のパスルールとして使用する合理的な方法です。
pass quick proto icmp
それ以外の場合、そのトラフィックは暗黙的にブロックされます。 ICMP は独自のプロトコルであり、TCP または UDP には含まれません。よりPFのOpenBSDページ。