2011-02-05 66 views

回答

46

「拒絕」使用DROP iptables目標,它默默丟棄傳入的數據包。

「reject」使用REJECT iptables目標,該目標將錯誤數據包發送回被拒絕的數據包的發送方。

ufw manual page

有時需要讓當通信正在 否認,而不是簡單地忽略它的發送者知道。在這些情況下,請使用拒絕 而不是拒絕。

但從用戶/程序的點試圖連接到您的服務器:

  • 「拒絕」將保持程序的等待,直到連接嘗試超時,有些短的時間後來。

  • 「拒絕」將產生一個即時和非常翔實的「連接被拒絕」消息。

編輯:

從安全角度來看, 「拒絕」 是略有 preferrable。它會強制潛在攻擊者的每個連接超時,從而減慢服務器的探測速度。

經驗豐富的和/或堅定的攻擊者不會受到影響 - 他們通常是耐心的,無論如何,他們都有幾種方法來應對減速。不過,這可能會阻止偶爾的想念,即使不去閱讀手冊頁nmap

「拒絕」通過不發送錯誤數據包,也可以節省上行鏈路帶寬。這對於非對稱網絡連接可能非常重要,因爲DoS攻擊可能會使錯誤數據包的上行鏈路(通常較窄)飽和。

另一方面,讓人們知道你拒絕他們的關係比較有禮貌。被拒絕的連接讓人們知道這很可能是一個永久的決策,而不是一個短期的網絡問題。

+15

減速並不是DROP的主要安全優勢。事實上,攻擊者無法判斷有任何服務在運行。這意味着,如果您使用DROP,正在掃描大量開放端口IP地址的攻擊者可能會從您的網站上移除,而如果您拒絕您成爲進一步針對適用端口進行漏洞調查的目標,因爲您已經放棄某些東西在傾聽。 – JBentley 2013-12-20 02:05:54