Linux

-A INPUT -j REJECT –reject-with icmp-host-prohibited Iptables 行究竟做了什麼?

  • December 17, 2018

我一直在閱讀 redhat iptables 文件,但無法弄清楚以下幾行的作用:

... -j REJECT **--reject-with icmp-host-prohibited**   
... -j REJECT **--reject-with icmp-host-prohibited** 

REJECT目標拒絕數據包。如果您不指定要拒絕哪個 ICMP 消息,則預設情況下伺服器將發回 ICMP 埠不可達(類型 3,程式碼 3)。

--reject-with修改此行為以將特定的 ICMP 消息發送回源主機。您可以在以下位置找到有關--reject-with和可用拒絕消息的資訊man iptables

拒絕

這用於返回一個錯誤包以響應匹配的數據包:否則它相當於 DROP,因此它是一個終止 TARGET,結束規則遍歷。此目標僅在 INPUT、FORWARD 和 OUTPUT 鏈以及僅從這些鏈呼叫的使用者定義鏈中有效。以下選項控制返回的錯誤數據包的性質:

--reject-with type

給出的類型可以是:

  • icmp-net-無法訪問
  • icmp 主機無法訪問
  • icmp 埠無法訪問
  • icmp-proto-無法訪問
  • icmp-net-禁止
  • icmp-host-prohibited 或
  • icmp-admin-禁止 (*)

它返回適當的 ICMP 錯誤消息(埠不可達是預設值)。選項 tcp-reset 可用於僅匹配 TCP 協議的規則:這會導致發回 TCP RST 數據包。這主要用於阻止在向損壞的郵件主機發送郵件時經常發生的 ident (113/tcp) 探測(否則將不接受您的郵件)。

(*) 對不支持它的核心使用 icmp-admin-prohibited 將導致一個普通的 DROP 而不是 REJECT

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