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)
)
また見なさい: