iptables常用命令
下面是我整理出來的iptables常用命令:
命令 -A, --append
范例 iptables -A INPUT ...
說明 新增規(guī)則到某個(gè)規(guī)則煉中,該規(guī)則將會(huì)成為規(guī)則煉中的最后一條規(guī)則。
命令 -D, --delete
范例 iptables -D INPUT --dport 80 -j DROP
iptables -D INPUT 1
說明 從某個(gè)規(guī)則煉中刪除一條規(guī)則,可以輸入完整規(guī)則,或直接指定規(guī)則編號(hào)加以刪除。
命令 -R, --replace
范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP
說明 取代現(xiàn)行規(guī)則,規(guī)則被取代后并不會(huì)改變順序。
命令 -I, --insert
范例 iptables -I INPUT 1 --dport 80 -j ACCEPT
說明 插入一條規(guī)則,原本該位置上的規(guī)則將會(huì)往后移動(dòng)一個(gè)順位。
命令 -L, --list
范例 iptables -L INPUT
說明 列出某規(guī)則煉中的所有規(guī)則。
命令 -F, --flush
范例 iptables -F INPUT
說明 刪除某規(guī)則煉中的所有規(guī)則。
命令 -Z, --zero
范例 iptables -Z INPUT
說明 將封包計(jì)數(shù)器歸零。封包計(jì)數(shù)器是用來計(jì)算同一封包出現(xiàn)次數(shù),是過濾阻斷式攻擊不可或缺的工具。
命令 -N, --new-chain
范例 iptables -N allowed
說明 定義新的規(guī)則煉。
命令 -X, --delete-chain
范例 iptables -X allowed
說明 刪除某個(gè)規(guī)則煉。
命令 -P, --policy
范例 iptables -P INPUT DROP
說明 定義過濾政策。 也就是未符合過濾條件之封包,預(yù)設(shè)的處理方式。
命令 -E, --rename-chain
范例 iptables -E allowed disallowed
說明 修改某自訂規(guī)則煉的名稱。
#p#
常用封包比對(duì)參數(shù):
參數(shù) -p, --protocol
范例 iptables -A INPUT -p tcp
說明 比對(duì)通訊協(xié)議類型是否相符,可以使用 ! 運(yùn)算子進(jìn)行反向比對(duì),例如:-p ! tcp ,意思是指除 tcp 以外的其它類型,包含 udp、icmp ...等。如果要比對(duì)所有類型,則可以使用 all 關(guān)鍵詞,例如:-p all。
參數(shù) -s, --src, --source
范例 iptables -A INPUT -s 192.168.1.1
說明 用來比對(duì)封包的來源 IP,可以比對(duì)單機(jī)或網(wǎng)絡(luò),比對(duì)網(wǎng)絡(luò)時(shí)請(qǐng)用數(shù)字來表示屏蔽,例如:-s 192.168.0.0/24,比對(duì) IP 時(shí)也可以使用 ! 運(yùn)算子進(jìn)行反向比對(duì),例如:-s ! 192.168.0.0/24。
參數(shù) -d, --dst, --destination
范例 iptables -A INPUT -d 192.168.1.1
說明 用來比對(duì)封包的目的地 IP,設(shè)定方式同上。
參數(shù) -i, --in-interface
范例 iptables -A INPUT -i eth0
說明 用來比對(duì)封包是從哪片網(wǎng)卡進(jìn)入,可以使用通配字符 + 來做大范圍比對(duì),例如:-i eth+ 表示所有的 ethernet 網(wǎng)卡,也可以使用 ! 運(yùn)算子進(jìn)行反向比對(duì),例如:-i ! eth0。
參數(shù) -o, --out-interface
范例 iptables -A FORWARD -o eth0
說明 用來比對(duì)封包要從哪片網(wǎng)卡送出,設(shè)定方式同上。
參數(shù) --sport, --source-port
范例 iptables -A INPUT -p tcp --sport 22
說明 用來比對(duì)封包的來源埠號(hào),可以比對(duì)單一埠,或是一個(gè)范圍,例如:--sport 22:80,表示從 22 到 80
埠之間都算是符合條件,如果要比對(duì)不連續(xù)的多個(gè)埠,則必須使用 --multiport 參數(shù),詳見后文。比對(duì)埠號(hào)時(shí),可以使用 !
運(yùn)算子進(jìn)行反向比對(duì)。
參數(shù) --dport, --destination-port
范例 iptables -A INPUT -p tcp --dport 22
說明 用來比對(duì)封包的目的地埠號(hào),設(shè)定方式同上。
參數(shù) --tcp-flags
范例 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
說明 比對(duì) TCP
封包的狀態(tài)旗號(hào),參數(shù)分為兩個(gè)部分,第一個(gè)部分列舉出想比對(duì)的旗號(hào),第二部分則列舉前述旗號(hào)中哪些有被設(shè)定,未被列舉的旗號(hào)必須是空的。TCP
狀態(tài)旗號(hào)包括:SYN(同步)、ACK(應(yīng)答)、FIN(結(jié)束)、RST(重設(shè))、URG(緊急)、PSH(強(qiáng)迫推送)
等均可使用于參數(shù)中,除此之外還可以使用關(guān)鍵詞 ALL 和 NONE 進(jìn)行比對(duì)。比對(duì)旗號(hào)時(shí),可以使用 ! 運(yùn)算子進(jìn)行反向比對(duì)。
參數(shù) --syn
范例 iptables -p tcp --syn
說明 用來比對(duì)是否為要求聯(lián)機(jī)之 TCP 封包,與 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN 的作用完全相同,如果使用 ! 運(yùn)算子,可用來比對(duì)非要求聯(lián)機(jī)封包。
參數(shù) -m multiport --source-port
范例 iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110
說明 用來比對(duì)不連續(xù)的多個(gè)來源埠號(hào),一次最多可以比對(duì) 15 個(gè)埠,可以使用 ! 運(yùn)算子進(jìn)行反向比對(duì)。
參數(shù) -m multiport --destination-port
范例 iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110
說明 用來比對(duì)不連續(xù)的多個(gè)目的地埠號(hào),設(shè)定方式同上。
參數(shù) -m multiport --port
范例 iptables -A INPUT -p tcp -m multiport --port 22,53,80,110
說明 這個(gè)參數(shù)比較特殊,用來比對(duì)來源埠號(hào)和目的埠號(hào)相同的封包,設(shè)定方式同上。注意:在本范例中,如果來源端口號(hào)為 80 但目的地埠號(hào)為 110,這種封包并不算符合條件。
參數(shù) --icmp-type
范例 iptables -A INPUT -p icmp --icmp-type 8
說明 用來比對(duì) ICMP 的類型編號(hào),可以使用代碼或數(shù)字編號(hào)來進(jìn)行比對(duì)。請(qǐng)打 iptables -p icmp --help 來查看有哪些代碼可以用。
參數(shù) -m limit --limit
范例 iptables -A INPUT -m limit --limit 3/hour
說明 用來比對(duì)某段時(shí)間內(nèi)封包的平均流量,上面的例子是用來比對(duì):每小時(shí)平均流量是否超過一次 3 個(gè)封包。
除了每小時(shí)平均一次外,也可以每秒鐘、每分鐘或每天平均一次,默認(rèn)值為每小時(shí)平均一次,參數(shù)如后: /second、 /minute、/day。
除了進(jìn)行封包數(shù)量的比對(duì)外,設(shè)定這個(gè)參數(shù)也會(huì)在條件達(dá)成時(shí),暫停封包的比對(duì)動(dòng)作,以避免因駭客使用洪水攻擊法,導(dǎo)致服務(wù)被阻斷。
參數(shù) --limit-burst
范例 iptables -A INPUT -m limit --limit-burst 5
說明 用來比對(duì)瞬間大量封包的數(shù)量,上面的例子是用來比對(duì)一次同時(shí)涌入的封包是否超過 5 個(gè)(這是默認(rèn)值),超過此上限的封包將被直接丟棄。使用效果同上。
參數(shù) -m mac --mac-source
范例 iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01
說明 用來比對(duì)封包來源網(wǎng)絡(luò)接口的硬件地址,這個(gè)參數(shù)不能用在 OUTPUT 和 Postrouting
規(guī)則煉上,這是因?yàn)榉獍统龅骄W(wǎng)卡后,才能由網(wǎng)卡驅(qū)動(dòng)程序透過 ARP 通訊協(xié)議查出目的地的 MAC 地址,所以 iptables
在進(jìn)行封包比對(duì)時(shí),并不知道封包會(huì)送到哪個(gè)網(wǎng)絡(luò)接口去。
通過文章的描述,一定對(duì)新手們有很大的幫助!希望你們喜歡!
【編輯推薦】