0%
iptables
- 基本上, iptables接到封包後, 會經由三個以上的主要規則表(tables)來處理:
- (1)Mangle: 即圖中的M, 通常都不使用這個規則表了.
- (2)NAT: 即圖中的N,
- (3)Filter: 即圖中的F.
- 當然還有一個Raw規則表, 也是少用.
四表五鏈
- 我們加規則,加到每個鏈中,每個鏈中的規則有很多,有一部分規則是相似的,根據這些規則的型別,把相似的規則放在一起,這些放在一起的規則的集合稱為表。
- 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