iptables

iptables

    • 基本上, iptables接到封包後, 會經由三個以上的主要規則表(tables)來處理:
      • (1)Mangle: 即圖中的M, 通常都不使用這個規則表了.
      • (2)NAT: 即圖中的N,
      • (3)Filter: 即圖中的F.
      • 當然還有一個Raw規則表, 也是少用.

四表五鏈

  • 我們加規則,加到每個鏈中,每個鏈中的規則有很多,有一部分規則是相似的,根據這些規則的型別,把相似的規則放在一起,這些放在一起的規則的集合稱為表。
    • filter表:負責過濾功能;
    • nat表:network address translation,網路地址轉換功能;
    • mangle表:拆解、修改、並重新封裝報文;
    • raw表:關閉nat表上啟用的連線追蹤機制;
  • 因為每個鏈中都有不同規則,所以表存在於每一個鏈中,但不是每個鏈都有這4種表
    • PREROUTING 的規則可以存在於:raw表,mangle表,nat表。
    • INPUT 的規則可以存在於:mangle表,filter表,nat表(centos7中有nat表,centos6中沒有)。
    • FORWARD 的規則可以存在於:mangle表,filter表。
    • OUTPUT 的規則可以存在於:raw表mangle表,nat表,filter表。
    • POSTROUTING 的規則可以存在於:mangle表,nat表。
  • 表的處理優先順序如下:
    • raw --> mangle --> nat --> filter
  • 只要遇到一個匹配的規則就按照這個規則進行處理,後面的規則對這個資料就不再起作用。
    • 拒絕可以使用DROP,也可以使用REJECT關鍵字
    • DROP不會給客戶端返回任何資訊,所以客戶端看到的情況就是連線超時,很難判斷是防火牆原因還是網路裝置故障等原因。
    • REJECT則明確返回給客戶端一個拒絕的資訊,客戶端會知道我是被防火牆拒絕了。
    • 可根據場景使用,REJECT更適合除錯,DROP抗攻擊上面更安全些。

reference