iptables命令格式

2021-07-23 21:46:03 字數 3464 閱讀 2711

1、iptables命令格式

iptables的命令格式較為複雜,一般的格式如下:

iptables [-t 表] -命令 匹配   操作

說明(1) -t 表

表選項用於指定命令應用於哪個iptables內建表。

(2)命令

命令選項用於指定iptables的執行方式,包括插入規則,刪除規則和新增規則,如下表所示

命令              說明

-p    --policy  鏈名》         定義預設策略

-l    --list  鏈名》           檢視iptables規則列表

-i    --insert  鏈名》         在指定的位置插入1條規則

-d    --delete  鏈名》         從規則列表中刪除1條規則

-r    --replace  鏈名》        替換規則列表中的某條規則

-f    --flush  鏈名》          刪除表中所有規則

-z    --zero  鏈名》           將表中資料報計數器和流量計數器歸零

-x    --delete-chain  鏈名》   刪除自定義鏈

-v    --verbose  鏈名》        與-l他命令一起使用顯示更多更詳細的資訊

(3) 匹配規則

匹配選項指定資料報與規則匹配所具有的特徵,包括源位址,目的位址,傳輸協議和埠號,如下表所示

匹配                              說明

-i     --in-inte***ce  網路介面名》       指定資料報從哪個網路介面進入,

-o    --out-inte***ce  網路介面名》       指定資料報從哪個網路介面輸出

-p    ---proto協議型別                   指定資料報匹配的協議,如tcp、udp和icmp等

-s     --source  源位址或子網》           指定資料報匹配的源位址

--sport 源埠號》                        指定資料報匹配的源埠號

--dport 目的埠號》                      指定資料報匹配的目的埠號

-m  --match 匹配的模組                   指定資料報規則所使用的過濾模組

iptables執行規則時,是從規則表中從上至下順序執行的,如果沒遇到匹配的規則,就一條一條往下執行,如果遇到匹配的規則後,那麼就執行本規則,執行後根據本規則的動作(accept,reject,log,drop等),決定下一步執行的情況,後續執行一般有三種情況。

一種是繼續執行當前規則佇列內的下一條規則。比如執行過filter佇列內的log後,還會執行filter佇列內的下一條規則。

一種是中止當前規則佇列的執行,轉到下一條規則佇列。比如從執行過accept後就中斷filter佇列內其它規則,跳到nat佇列規則去執行

一種是中止所有規則佇列的執行。

2、iptables規則的動作

前面我們說過iptables處理動作除了 accept、reject、drop、redirect 、masquerade 以外,還多出 log、ulog、dnat、return、tos、snat、mirror、queue、ttl、mark等。我們只說明其中最常用的動作:

reject

攔阻該資料報,並返回資料報通知對方,可以返回的資料報有幾個選擇:icmp port-unreachable、icmp echo-reply 或是tcp-reset(這個資料報包會要求對方關閉聯機),進行完此處理動作後,將不再比對其它規則,直接中斷過濾程式。 範例如下:

iptables -a  input -p tcp --dport 22 -j reject --reject-with icmp echo-reply

drop

丟棄資料報不予處理,進行完此處理動作後,將不再比對其它規則,直接中斷過濾程式。

redirect

將封包重新導向到另乙個埠(pnat),進行完此處理動作後,將會繼續比對其它規則。這個功能可以用來實作透明** 或用來保護web 伺服器。例如:

iptables -t nat -a prerouting -p tcp --dport 80 -j redirect--to-ports 8081

masquerade

改寫封包**ip為防火牆的ip,可以指定port 對應的範圍,進行完此處理動作後,直接跳往下乙個規則鏈(mangle:postrouting)。這個功能與 snat 略有不同,當進行ip 偽裝時,不需指定要偽裝成哪個 ip,ip 會從網絡卡直接讀取,當使用撥接連線時,ip 通常是由 isp 公司的 dhcp伺服器指派的,這個時候 masquerade 特別有用。範例如下:

iptables -t nat -a postrouting -p tcp -j masquerade --to-ports 21000-31000

log將資料報相關資訊紀錄在 /var/log 中,詳細位置請查閱 /etc/syslog.conf 配置檔案,進行完此處理動作後,將會繼續比對其它規則。例如:

iptables -a input -p tcp -j log --log-prefix "input packet"

snat

改寫封包** ip 為某特定 ip 或 ip 範圍,可以指定 port 對應的範圍,進行完此處理動作後,將直接跳往下乙個規則煉(mangle:postrouting)。範例如下:

iptables -t nat -a postrouting -p tcp-o eth0 -j snat --to-source 192.168.10.15-192.168.10.160:2100-3200

dnat

改寫資料報包目的地 ip 為某特定 ip 或 ip 範圍,可以指定 port 對應的範圍,進行完此處理動作後,將會直接跳往下乙個規則鏈(filter:input 或 filter:forward)。範例如下:

iptables -t nat -a prerouting -p tcp -d 15.45.23.67 --dport 80 -j dnat --to-destination 192.168.10.1-192.168.10.10:80-100

mirror

映象資料報,也就是將** ip與目的地ip對調後,將資料報返回,進行完此處理動作後,將會中斷過濾程式。

queue

中斷過濾程式,將封包放入佇列,交給其它程式處理。透過自行開發的處理程式,可以進行其它應用,例如:計算聯機費用.......等。

return

結束在目前規則鏈中的過濾程式,返回主規則鏈繼續過濾,如果把自訂規則煉看成是乙個子程式,那麼這個動作,就相當於提早結束子程式並返回到主程式中。

mark

將封包標上某個代號,以便提供作為後續過濾的條件判斷依據,進行完此處理動作後,將會繼續比對其它規則。範例如下:

iptables -t mangle -a prerouting -p tcp --dport 22 -j mark --set-mark 22

iptables命令解析

宣告 本文 bbs.chinaunix.net thread 2204793 1 1.html iptables 指令 語法 iptables t table command match j target jump t引數 用來指定規則表,內建的規則表有三個,分別是 nat,mangle和filte...

iptables命令學習

iptables 指令 語法 iptables t table command match j target jump t引數 用來指定規則表,內建的規則表有三個,分別是 nat,mangle和filter,當未指定規則表時,則一律視為是filter。幾個功能表的功能如下 nat規則表擁有prero...

iptables命令學習

設定鏈的預設策略。一般有兩種方法。1 首先允許所有的包,然後再禁止有危險的包通過放火牆。iptables p input accept iptables p output accept iptables p forward accept 2 首先禁止所有的包,然後根據需要的服務允許特定的包通過防火牆...