三 、IPtables的常用比對規則
比對規則可以用!号進行非運算
1、正常比對
1.1 通用比對規則
-s(--src):對封包源ip位址進行比對
可以是正常的數字IP位址,也可以是ip網段,如果是ip網段可以用如下方式定義:
例如:-s 192.168.1.0/24 或者 -s 192.168.1.0/255.255.255.0 兩者等效
-d(--dst):對目的ip位址進行比對
此規則和-s相同
-p(--protocol):對ip協定進行比對
可以是關鍵字TCP、UDP或ICMP,也可以是這些協定在IP協定上的協定号(ICMP-1,TCP-6,UDP-7)。
如果是關鍵字可以在/etc/protocols裡定義的協定關鍵字都可以。還可以是ALL,表示上述三個協定都可以。
例如:-p !TCP 表示比對協定為非tcp的包。
2、暗含比對規則:
2.1 對tcp和udp協定可以對源端口和目的端口進行比對
-dport:對目的端口進行比對
-sport:對源端口進行比對
例如: -p tcp --dport 8080
-p tcp --dport 8080:9000 //比對tcp 端口從8080---9000的所有端口
-p udp --sport :90 //比對源端口從0--90端口的所有包
2.2 icmp包類型比對
--icmp-type:對icmp包的某個特殊類型進行比對
例如:-p icmp --icmp-type 8
3、詳細比對
所有前述的比對都是不需要加載特殊子產品就可以執行的動作。但是現在所描述的比對都是需要顯地加載子產品才可以支援。
加載子產品的方法用-m或者--match 跟子產品名
例如: -m state
2.1、Addrtype比對
對封包的位址類型進行比對。常見的位址類型有:
LOCAL:表示位址是本地位址,指本地一切位址含:127.0.0.1回環位址
UNICAST:單點傳播位址
MULTICAST:多點傳播位址
BROADCAST:廣播位址
例如:
-m addrtype --dst-type LOCAL
-m addrtype --src-type MULTICAST
2.2、 Mac比對
對包的源mac位址進行比對
-m mac --mac-source 01:11:12:13:14:15
隻能對prerouting ,forward, input進行比對。
2.3 、Multiport比對
對多個端口進行比對。
-p tcp -m multiport --source-port 22,53,44
-p udp -m multiport --destination-port 11,44,55
-p all -m multi port --port 88,8080
2.4、iprange比對
對多個ip位址進行比對
例如:-m iprange --src-range 192.168.3.4-192.168.3.7
-m iprange --dst-range 192.168.3.4-192.168.3.9
2.5、pkttype比對
可以對ip包的類型進行比對:unicast,multicast或broadcast
-m pktype --pkt-type !broadcast
2.6、physdev比對
可以對netfilter的接入和發送接口名進行比對。這個和iptables自帶的-i 和-o不同的是,physdev隻針對網橋的接口。
-m physdev --physdev-in eth1 --physdev-out eth0
2.7 length比對
比對包長度可以length比對
例如
-m length --length 1400:1500
-m length --length 1400
2.8、state比對
netfilter在核心中有連結跟蹤子產品,能夠對連結(面向連結和非面向連結都一樣)進行狀态跟蹤,iptables可以利用連結跟蹤子產品進行比對常用的連結跟蹤比對子產品有state比對和下文的conntrack比對(state比對的擴充)
連結跟蹤子產品定義了以下幾種狀态:
NEW:當一個ip包被第一次發出以後,防火牆就規定該流向進入了NEW狀态。對應了tcp的sync包發出、udp和icmp的第一個包發出
ESTABLISHED:當該流向的第一包發出後,得到來自對段的ip包後進入此狀态。對應tcp收到對端的ack(回複sync)或對段sync包,udp收到對段響應包
RELATED:就是當本流進入established狀态後,防火牆識别到本流相關的流就被标記為此狀态。例如:ftp 指令流對應的ftp資料流。
INVALID
例如:-m state --state RELATED
2.9、conntrack比對
是對state比對的擴充,常用的是--cstate 它除了有state 比對的狀态,還定義了SNAT DNAT
2.10、limit比對
對于iptables的log動作,可以使用limit比對來限制記錄的資料包頻率。
-m limit --limit 3/hour
-m limit --limit 4/second
-m limit --limit 10/minute
-m limit --limit 11/day