iptables命令的結構
iptables命令大家都經常用到,但本文要講的是iptables命令的結構,對學習和記憶iptables命令非常有幫助!
命令行本節(jié)列出了iptables命令行的組成部分(跟在實用工具名iptables后面的內容)。除了明確標示出來的部分之外,實用工具iptables對命令行參數(shù)的位置并沒有特殊的要求。本章中的示例反映的是一種普遍接受的語法,它可以讓命令行更加易于閱讀、理解和維護。不是所有命令都包括全部的組成部分。
iptables命令行中的很多符號都有兩種形式:短格式(單個字母,前面還有一個連字符)和長格式(一個單詞,前面有兩個連字符)。為了簡潔起見,大多數(shù)腳本使用短格式,而使用長格式的命令行顯得有些笨重。下面的兩條iptables命令行是一樣的效果,本節(jié)將它們作為示例:
表指定命令所操作的表的名稱:Filter、NAT還是Mangle??梢栽谌魏蝘ptables命令中指定表名。如果不指定表名,那么該命令操作的就是Filter表。本章的大多數(shù)示例不指定表名,因此它們操作的是Filter表。用-ttablename或--tabletablename來指定表。
命令用來說明命令行剩余部分的作用,比如添加或刪除規(guī)則、顯示規(guī)則或添加規(guī)則鏈。這個示例中的命令(-A和--append)將命令行指定的規(guī)則添加到指定的表和規(guī)則鏈中。15.7.1節(jié)列出了所有命令。
規(guī)則鏈指定規(guī)則所屬的規(guī)則鏈或命令操作的規(guī)則鏈的名稱。規(guī)則鏈有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING,或者由用戶定義的規(guī)則鏈。在指定規(guī)則鏈時,直接將規(guī)則鏈的名字放進命令行,不需要在前面放置任何連字符。本節(jié)開頭的示例操作的是FORWARD規(guī)則鏈。
匹配條件 有兩種匹配條件:分組匹配條件(匹配網絡分組)和規(guī)則匹配條件(匹配已有規(guī)則)。
分組匹配條件/規(guī)則定義分組匹配條件用來識別網絡分組,并實現(xiàn)規(guī)則,對匹配條件的分組采取相應的行動。分組匹配條件和動作的組合被稱為規(guī)則定義。規(guī)則定義構成了分組過濾的基礎。本節(jié)開頭的第一個示例使用的規(guī)則匹配條件是--in-interfaceeth1--out-interface eth0。第二個示例使用的是同一個條件,但用的是短格式:-i eth1-oeth0。這兩條規(guī)則都用來轉發(fā)設備eth1上接收到的分組,并將其通過設備eth0發(fā)送到網絡。
規(guī)則匹配條件規(guī)則匹配條件識別已有的規(guī)則。iptables命令能夠修改、刪除或將一條新規(guī)則放置到與規(guī)則匹配條件指定的規(guī)則相鄰的地方。有兩種方法可以指定某條已有規(guī)則:可以使用與曾經用來建立規(guī)則相同的規(guī)則定義,也可以使用規(guī)則的序號(被稱為規(guī)則編號)。規(guī)則編號從1開始,它表示的是規(guī)則鏈中的第一條規(guī)則,可在iptables-L(或者--line-numbers)的結果中顯示。下面的第一條命令將本節(jié)開頭所列的規(guī)則刪除。第二條命令將INPUT規(guī)則鏈中編號為3的規(guī)則替換成另一條規(guī)則,將所有來自IP地址192.168.0.10的分組拒絕:
跳轉或目標用來指定內核對分組(它們匹配規(guī)則的所有匹配條件)所采取的動作。指定跳轉或目標的方式為-jtarget或者--jumptarget。本節(jié)開頭的示例使用命令--jump ACCEPT和-jACCEPT,來指定目標ACCEPT。
跳轉跳轉將控制轉移到同一個表中的不同規(guī)則鏈。下面的命令將一條規(guī)則添加(--append)到INPUT鏈,將使用TCP協(xié)議(--protocoltcp)的分組傳遞給用戶定義鏈tcp_rules(--jumptcp_rules):
當分組經過tcp_rules鏈的處理之后(假設還沒有被丟棄或拒絕),它將從剛跳轉的那條規(guī)則之后的規(guī)則繼續(xù)經過INPUT鏈處理。
目標目標指定內核對分組所采取的動作,最簡單的動作是ACCEPT、DROP和REJECT,下面的命令向FORWARD鏈中添加一條規(guī)則,將來自FTP端口(/etc/services--iptables根據(jù)這個文件來確定使用哪個端口--顯示FTP使用的端口是23)的分組拒絕:
有些目標(比如LOG)并不是最終的目標:在執(zhí)行該目標之后,將控制傳遞給下一條規(guī)則。
通過文章的詳細描述,我們知道了iptables命令的結構,希望大家都能快速掌握iptables命令!
【編輯推薦】