三 、IPtables的常用匹配規(guī)則
匹配規(guī)則可以用船庇!號進行非運算
1、常規(guī)匹配
1.1 通用匹配規(guī)則
-s(--src):對報文源ip地址進行匹配
可以是常規(guī)的數(shù)字IP地址侣监,也可以是ip網(wǎng)段鸭轮,如果是ip網(wǎng)段可以用如下方式定義:
例如:-s 192.168.1.0/24 或者 -s 192.168.1.0/255.255.255.0 兩者等效
-d(--dst):對目的ip地址進行匹配
此規(guī)則和-s相同
-p(--protocol):對ip協(xié)議進行匹配
可以是關(guān)鍵字TCP、UDP或ICMP,也可以是這些協(xié)議在IP協(xié)議上的協(xié)議號(ICMP-1,TCP-6,UDP-7)橄霉。
如果是關(guān)鍵字可以在/etc/protocols里定義的協(xié)議關(guān)鍵字都可以窃爷。還可以是ALL,表示上述三個協(xié)議都可以。
例如:-p 姓蜂!TCP 表示匹配協(xié)議為非tcp的包按厘。
2、暗含匹配規(guī)則:
2.1 對tcp和udp協(xié)議可以對源端口和目的端口進行匹配
-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钱慢、詳細匹配
所有前述的匹配都是不需要加載特殊模塊就可以執(zhí)行的動作逮京。但是現(xiàn)在所描述的匹配都是需要顯地加載模塊才可以支持。
加載模塊的方法用-m或者--match 跟模塊名
例如: -m state
2.1束莫、Addrtype匹配
對報文的地址類型進行匹配懒棉。常見的地址類型有:
LOCAL:表示地址是本地地址草描,指本地一切地址含:127.0.0.1回環(huán)地址
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的接入和發(fā)送接口名進行匹配份名。這個和iptables自帶的-i 和-o不同的是碟联,physdev只針對網(wǎng)橋的接口。
例如:
-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在內(nèi)核中有鏈接跟蹤模塊鲤孵,能夠?qū)︽溄樱嫦蜴溄雍头敲嫦蜴溄佣家粯樱┻M行狀態(tài)跟蹤,iptables可以利用鏈接跟蹤模塊進行匹配常用的鏈接跟蹤匹配模塊有state匹配和下文的conntrack匹配(state匹配的擴展)
鏈接跟蹤模塊定義了以下幾種狀態(tài):
NEW:當一個ip包被第一次發(fā)出以后辰如,防火墻就規(guī)定該流向進入了NEW狀態(tài)普监。對應(yīng)了tcp的sync包發(fā)出、udp和icmp的第一個包發(fā)出
ESTABLISHED:當該流向的第一包發(fā)出后琉兜,得到來自對段的ip包后進入此狀態(tài)凯正。對應(yīng)tcp收到對端的ack(回復(fù)sync)或?qū)Χ蝧ync包,udp收到對段響應(yīng)包
RELATED:就是當本流進入established狀態(tài)后豌蟋,防火墻識別到本流相關(guān)的流就被標記為此狀態(tài)廊散。例如:ftp 命令流對應(yīng)的ftp數(shù)據(jù)流。
INVALID
例如:-m state --state RELATED
2.9梧疲、conntrack匹配
是對state匹配的擴展允睹,常用的是--cstate 它除了有state 匹配的狀態(tài),還定義了SNAT DNAT
2.10幌氮、limit匹配
對于iptables的log動作缭受,可以使用limit匹配來限制記錄的數(shù)據(jù)包頻率。
例如:
-m limit --limit 3/hour
-m limit --limit 4/second
-m limit --limit 10/minute
-m limit --limit 11/day