Networking

使用 PF 阻止到特定 IP 的傳出連接

  • September 21, 2016

每當任何 TCP 請求發送到特定 IP 地址時,有人可以給我提示如何設置基本拒絕規則嗎?我正在使用PF 數據包過濾器。有什麼幫助嗎?

/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操作將在所有介面上從源 IP 在兩個方向上靜默drop發送數據包。因為客戶端不知道它被阻止了,所以它會超時並可能再次嘗試,一次又一次……any

block return是*“友好鄰居”的方式,通過以特定協議的方式響應TCP RST(重置)ICMP UNREACHABLE*數據包,讓客戶端知道地址不可達。客戶可以使用此資訊放棄,或以理智的方式重試。

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)


也可以看看:

引用自:https://unix.stackexchange.com/questions/207949