iptables 指令
語法:iptables [-t table] command [match][-j target/jump]
-t引數:用來指定規則表,內建的規則表有三個,分別是:nat,mangle和filter,當未指定規則表時,則一律視為是filter。
幾個功能表的功能如下:
nat規則表擁有prerouting和postrouting兩個規則鏈,主要功能為進行一對
一、一對多、多對多等**轉譯工作(snat dnat),由於轉譯工作的特性,需要進行目的地**轉譯的封包,就不需要進行****轉譯,反之依然,因此為了提公升改寫封包的率,在防火牆運作時,每個封包只會經過這個規則表一次。如果我們把封包過濾的規則定義在這個資料表裡,將會造成無法對同一包進行多次比對,因此這個規則表除了做**轉譯外,請不要做其他用途。
mangle規則表擁有prerouting、forward和postrouting三個規則鏈。
除了進行**轉譯工作會改寫封包外,在某些特殊應用可能也必須去改寫封包(ttl,tos)或者是設定mark(將封包作記號,以進行後續的過濾),這時就必須將這些工作定義在mangle規則表中,由於使用率不高,我們打算在這裡討論mangle的用法。
filter規則表是預設規則表,擁有input、forward和output三個規則鏈,這個規則表顧名思義是用來進行封包過濾的處理動作(例如:drop,log,accept或reject),我們會將基本規則都建立在此規則表中。
常用命令表:
例: iptables -a input ...
說明:新增規則到某個規則鏈中,該規則將會成為規則鏈中的最後一天規則。
iptables -d 或--delete
例:iptables -d input --dport 80 -j drop
iptables -d input 1
說明:從某個規則鏈中刪除一條規則,可以輸入完整規則,或直接指定規則編號加以刪除。
iptables -r 或--replace
例:iptables -r input 1 -s 192.168.0.1 -j drop
說明:取代現行規則,規則被取代後並不會改變順序
iptables -i或--insert
例:iptables -i input 1 --drop 80 -j accept
說明:插入一條規則,原本該位置上的規則將會往後移動乙個順位。
iptables -l 或--list
例:iptables -l input
說明:列出某規則鏈中的所有規則。
iptables -f或--flush
例:iptables -f input
說明:刪除某規則鏈中的所有規則
iptables -z或--zero
例:iptables -z input
說明:將封包計數器歸零。封包計數器是用來計算同一封包出現次數,是過濾阻斷個、式攻擊不可或缺的攻擊
iptables -n或--new-chain
例:iptables -n allowed
說明:定義新的規則鏈
iptables -x或--delete-chain
例:iptables -x allowed
說明:刪除某個規則鏈
iptables -p或--policy
例:iptables -p input drop
說明:定義過濾策略。也就是為符合過濾條件的封包,預設的處理方式。
iptables -e或--rename-chain
例:iptables -e allowed disallowed
說明:修改某自定規則鏈的名稱
常用封包比對引數:
-p或--protocol
例:iptables -a input -p tcp
-d或--dst或--destination
例:iptables -a input -d 192.168.1.1
說明:用來比對封包的目的地ip,設定方式同上
-i或--in-inte***ce
例:iptables -a input -i eth0
說明:用來比對封包是從哪片網絡卡進入,可以使用通配字元+來做大範圍比對,例如:-i eth+表示所有的ethernet網絡卡,也可以使用!運運算元進行反向比對,例如:-i !eth0
-o或--out-inte***ce
例:iptables -a forward -o eth0
說明:用來比對封包要從哪片網絡卡送出,設定方式同上。
--sport或--source-port
例:iptables -a input -p tcp --sport 22
說明:用來必讀封包的**埠號,可以比對單一埠,後者乙個範圍,例如:--sport 22:80,表示從22到80埠之間都算是符合件,如果要比對不連續的多個埠,則必須使用--multiport引數,詳見後文。比對埠號,可以使用!運運算元進行反向比對。
--dport或--destination-port
例:iptables -a input -p tcp --dport 22
說明:用來比對封包的目的埠號,設定方式同上。
--tcp-flags
例:iptables -p tcp --tcp-flags syn,fin,ack syn
--syn
例;iptables -p tcp --syn
說明:用來比對是否要求聯機的tcp封包,與iptables -p tcp --tcp-flags syn,fin,ack,syn的作用完全相同,如果使用!運運算元,可用來比對非要求聯機封包。
-m multiport --source-port
例:uptables -a input -p tcp -m multiport --source-port 22,53,80,110
說明:用來比對不連續的多個**埠號,一次最多可以比對15個埠,可以使用!運運算元進行反向比對。
-m multiport --destination-port
例:iptables -a input -p tcp -m multiport --destiantion-port 22,53,80,110
說明:用來比對不連續的多個目的地埠號,設定方式同上。
-m multiport --port
例:iptables -a input -p tcp -m multiport --port 22,53,80,110
說明:這個引數比較特殊,用來比對**埠號和目的埠號相同的封包,設定方式同上。注意:在本範例中,如果**埠為80目的地埠號為110,這種封包並不算符合條件。
--icmp-type
例:iptables -a input -p icmp --icmp-type 8
說明:用來比對icmp的型別編號,可以使用**或數字編號來進行比對。請打iptables -p icmp --help 來檢視有哪些**可用。
-m limit --limit
例:iptables -a input -m limit --limit 3/hour
說明:用來必讀某段時間內封包的平均流量,上面的例子是用來比對:每小時平均流量是否超過一次3個封包。除了每小時平均次外,也可以每秒鐘、沒分鐘或每天平均一次,預設值為每小時平均一次,引數如後:/second 、 /minute 、 /day. 除了進行封數量的比對外,設定這個引數也會在條件達成時,暫停封包的比對動作,以避免因駭客使用洪水攻擊法,導致服務被阻斷。
--limit-burst
例:iptables -a input -m limit --limit-burst 5
說明:用來比對瞬間大量封包的數量,上面的例子是用來比對一次同時湧入的封包是否超過5個(這是預設值),超過此上限的封包將被直接丟棄。使用效果如上。
-m mac --mac-source
例:iptables -a input -m mac --mac-source 00:00:00:00:00:01
--mark
例:iptables -t mangle -a input -m mark --mark 1
說明:用來比對封包是否被表示某個號碼,當封包被比對成功時,我們可以透過mark處理動作,將該封包標示乙個號碼,號碼不可以超過4294967296
iptables命令學習
設定鏈的預設策略。一般有兩種方法。1 首先允許所有的包,然後再禁止有危險的包通過放火牆。iptables p input accept iptables p output accept iptables p forward accept 2 首先禁止所有的包,然後根據需要的服務允許特定的包通過防火牆...
iptables命令學習
iptables 指令 語法 iptables t table command match j target jump t引數 用來指定規則表,內建的規則表有三個,分別是 nat,mangle和filter,當未指定規則表時,則一律視為是filter。幾個功能表的功能如下 nat規則表擁有prero...
linux學習筆記 iptables命令
iptables命令是linux上常用的防火牆軟體,是netfilter專案的一部分。可以直接配置,也可以通過許多前端和圖形介面配置 語法 iptables 選項 引數 選項 t 表 指定要操縱的表 a 向規則鏈中新增條目 d 從規則鏈中刪除條目 i 向規則鏈中插入條目 r 替換規則鏈中的條目 l ...