動作 Target

  1. Targets 動作有很多,以下只列出一部分。但並不是任何 table 都可以使用所有的動作,例如 MASQUERADE 只能用在 nnat 表上:
    1. ACCEPT :接受該封包。
    2. DROP :丟棄封包。
    3. REJECT :丟棄封包但回應 cilent。
    4. LOG :將該封包的資訊記錄下來 (預設記錄到 /var/log/messages 檔案)
    5. QUEUE :將該封包送到用戶空間,用戶空間如何接受此封包,不同的 kernel 版本有不同的作法。
    6. RETURN :停止這條鏈的傳送並回到前一條鏈的下一規則,如果已到最後一條規則或符合 RETURN target,則由鏈政策決定封包的命運。
    7. MASQUERADE :偽裝 IP。
  2. REJCET 與 DROP 比較:
    1. DROP 丟棄封包;REJECT 丟棄封包外,還會送一個 ICMP host-unreachable 回應到來源 IP。
    2. 只要不做 LOG 的動作,從 CPU 及記憶體性能的角度考量,這兩種的差異很小。
    3. 從網路性能的角度,DROP 當然比較簡單,因為只是丟棄封包;REJECT 則比較容易讓駭客使用欺騙 (spoofing) 手法進行 DoS 攻擊。因此,從安全的考量角度,使用 DROP 是比較安全。
    4. 從 IP 來源用戶端的性能角度看,REJECT 是比較好的。因為 DROP 動作,用戶端得不到回應,它必須一直等到逾時;而 REJECT 動作會送一個 ICMP 封包回到用戶端,用戶端不用等到 timeout,很快可以得到結果。