PFを使用して特定のIPへの接続をブロックする

PFを使用して特定のIPへの接続をブロックする

TCP要求が特定のIPアドレスに送信されたときにデフォルトの拒否ルールを設定する方法についてのヒントはありますか?使っていますPFパケットフィルタ。助けが必要ですか?

答え1

/etc/pf.conf構成で最も基本的な形式は次のとおりです。

block from any to 192.0.2.2

# which is equivalent to:
block drop from any to 192.0.2.2

デフォルトでは、これはblockパケットdrop何も言わずにすべてのインターフェイスで、anyソースIPから双方向。クライアントは自分がブロックされたことを知らないため、タイムアウトして再試行することもできます。

block return~である「フレンドリーな隣人」クライアントにアドレスにアクセスできないことを知らせる方法答えるプロトコル固有の方法で以下を使用します。TCP RST(リセット)またはICMPに接続できないバッグ。顧客はこの情報を使用して放棄したり、通常の方法で再試行したりできます。

block return from any to 192.0.2.2


blockこのオプションを使用してデフォルトの動作を変更できますset block-policy


より複雑な例ですが、ルールセットが大きくなり始めると、管理して読みやすくなります。

mybadhosts = "{ 192.0.2.2, 203.0.113.0/24 }"
ext_if = "em0"

block return on $ext_if from any to $mybadhosts                 # example #1
block return on em0 from any to { 192.0.2.2, 203.0.113.0/24 }   # ^expanded form

block drop out on egress from any to $mybadhosts                # example #2

例 #1変数、リスト{}、ネットマスクの簡単な使い方を表示し、/24インターフェースを指定しますem0。 (変数が定義されていることに注意してください。$記号なし引用符が削除されました。、実行時にルールが拡張される場合)

例 #2インターフェイスグループoutからのアウトバウンドパケットのドロップegress(参照ifconfig(8)


また見なさい:

関連情報