同じホストのプロセス間通信をフィルタリングするためのPFファイアウォールルールを作成する方法は?
このページを読みながらman
ルールを適用するには、パケットが特定のインターフェイスを物理的に通過する必要があり、ローカルインターフェイスから別のローカルインターフェイスに送信されたパケットはホストのTCP / IPスタックによって処理され、フィルタリングされないことがわかります。
しかし、ローカルインターフェイスから他のローカルインターフェイスへのすべてのトラフィックをフィルタリングするためのPFファイアウォールルールをどのように作成できますか?例:
DROP <local-src-ip>:<local-src-port> -> <local-target-ip>:<local-target-port>
答え1
PFファイアウォールルールを作成する方法[...]
方法論について質問していますか?それとも、そのような規則の例を挙げることができますか?とにかく、これを自分で行うのは難しくないと言いたいです。
user
Pfには(および)などのフィルタリング基準の概念があるため、group
必要な戦略を実行できる必要があります。
man pf.conf
:「…
user
ユーザー- このルールは、指定されたユーザーが所有するソケットパケットにのみ適用されます。ファイアウォールで開始された発信接続の場合、接続を開いたユーザーです。ファイアウォール自体に着信接続の場合、これは宛先ポートでリッスンするユーザーです。
… 」
ループバックインターフェイスからすべてのトラフィックを記録することから始めます。このタイプの通信にはループバックが使用されるためです。一部のチュートリアルでは、set skip on lo0
これを当然のように指示しますが、明らかに反対の規則が必要なので、それを破棄します。 - キーワードを使用してルールセットをホストに属するアドレスに制限することもできますが、(self)
これは必ずしも必要ではありません。
Pfは、さまざまなポートとバージョン間で大きく異なる可能性があることに注意してください。たとえば、MacOSに付属している機能は古く、マニュアルページに記載されているものとは異なり、一部の機能は正しく機能しません。