iptables防火牆reject與drop的區別


Linux防火牆REJECT與DROP的區別

Linux防火牆內的策略動作有REJECT和DROP兩種,區別如下:

1.、REJECT動作會返回一個拒絕(終止)數據包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明確的拒絕對方的連接動作。

連接馬上斷開,Client會認為訪問的主機不存在。

REJECT在IPTABLES里面有一些返回參數,參數如下:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(這個封包會要求對方關閉聯機),進行完此處理動作后,將不再比對其它規則,直接中斷過濾程序。

2、DROP動作只是簡單的直接丟棄數據,並不反饋任何回應。需要Client等待超時,Client容易發現自己被防火牆所阻擋。

 至於使用DROP還是REJECT更合適一直未有定論,因為的確二者都有適用的場合:

1、REJECT是一種更符合規范的處理方式,並且在可控的網絡環境中,更易於診斷和調試網絡/防火牆所產生的問題;

2、DROP則提供了更高的防火牆安全性和稍許的效率提高,但是由於DROP不很規范(不很符合TCP連接規范)的處理方式,可能
會對你的網絡造成一些不可預期或難以診斷的問題。

因為DROP雖然單方面的中斷了連接,但是並不返回任何拒絕信息,因此連接客戶端將被動的等到tcp session超時才能判斷連接是否成功,這樣早企業內部網絡中會有一些問題,例如某些客戶端程序或應用需要IDENT協議支持(TCP Port 113, RFC 1413),如果防
火牆未經通知的應用了DROP規則的話,所有的同類連接都會失敗,並且由於超時時間,將導致難以判斷是
由於防火牆引起的問題還是網絡設備/線路故障。

注:在部署防火牆時,如果是面向企業內部(或部分可信任網絡),那么最好使用更紳士REJECT
方法,對於需要經常變更或調試規則的網絡也是如此;而對於面向危險的Internet/Extranet的防火牆,
則有必要使用更為粗暴但是安全的DROP方法,可以在一定程度上延緩黑客攻擊的進度(和難度,至少,DROP
可以使他們進行TCP-Connect方式端口掃描時間更長)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM