iptables綜述

1 概述bash

以下圖所示,iptables共有Filter,Nat,Mangle和RAW共四個table,每一個table還有若干個chain,每一個chain中還包含若干個ruletcp

 

 

1.1 Filter table概述3d

如上所示,對於Filter table,封包的處理將分爲如下三種狀況:blog

  • 當封包的目的地是本地主機時:當封包進入主機時首先會由Packet IN標記的位置進入,接着封包由ROUTING TABLE進行處理,在本例中,封包將送往本機的Process,所以封包將由INPUT Chain進行處理,若INPUT Chain內的規則不容許封包進入,則將被丟棄,不然封包被送往Local Process
  • 當本地的Process產生封包往外發送時:這時Local Process將產生封包對外發送,首先進入ROUTING TABLE進行處理,接着封包被送往OUTPUT Chain,若OUTPUT Chain內的規則不容許封包離開本機,則封包被丟棄,不然封包從Packet OUT標記的位置離開本機
  • 當封包穿越本機時:封包首先由Packet IN的位置進入,接着封包進入ROUTING TABLE進行處理,在本例中,封包將由另外一個接口送出,所以封包被送往FORWARD Chain,若FORWARD Chain內的規則不容許封包穿越,那麼封包將被丟棄,不然,封包由Packet OUT處離開本機

 

1.2 規則匹配方式接口

下面咱們將以Filter Table中的INPUT Chain做爲例子進行說明。如上所示,第一個被加進來的規則會存放在INPUT Chain的rule1中,以此類推。當一個封包進入,進行具體的匹配工做時,將從rule1開始依次往下匹配。當有一條rule知足匹配規則時,那麼它能夠決定封包的命運,不管封包是進入Local Process仍是丟棄,INPUT Chain以後全部的rule都再也不進行匹配。另外咱們能夠注意到,在每一個Chain的結尾都有一個Default Policy,它的做用是在全部rule都未匹配成功的時候進行最後的裁決,它的狀態不是ACCEPT,就是DROP。ip

 

1.3 iptables命令格式table

// 將Filter Table中的INPUT Chain列出
iptables -t filter -L INPUT

// 將Filter Table中的全部內容刪除
iptables -t filter -F

// 將規則加入到Filter Table中的INPUT Chain
iptables -t filter -A INPUT -p icmp -j ACCEPT

// 把FORWARD Chain的Default Policy設置爲DROP
// 須要注意的是,iptables的-F參數不會影響到Default Policy的狀態,若要改變Default Policy的狀態
// 必定要用-P來指定
iptables -t filter -P FORWARD DROP

// 在INPUT Chain中插入新的規則
iptables -t filter -I INPUT 2 -p tcp -j ACCEPT

// 取代INPUT Chain內已存在的規則
iptables -t filter -R INPUT 2 -p tcp -j ACCEPT

// 刪除INPUT Chain內已存在的規則
iptables -t filter -D INPUT 2
相關文章
相關標籤/搜索