iptables 实际操作 之 规则查询 2
?? 在之前的文章中,我們已經(jīng)總結(jié)過,iptables 為我們預(yù)定義了4張表,他們分別是raw 表,mangle表,nat表,filter表,不同的表擁有不同的功能。
??? filter 負(fù)責(zé)過濾功能,比如允許那些IP 地址訪問,拒絕那些IP地址訪問,允許訪問那些端口,禁止訪問那些端口,filter表會根據(jù)我們定義的規(guī)則進(jìn)行過濾,filter表應(yīng)該是我們最常用到的表了,所以此處,我們一filter表為例,開始學(xué)習(xí)怎樣實(shí)際操作iptables。
???
? 一. 查看filter 表的規(guī)則
[root@localhost ~]# iptables -t filter -L -nv --line
Chain INPUT (policy ACCEPT 78 packets, 5830 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destina
tion????????
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destina
tion????????
Chain OUTPUT (policy ACCEPT 51 packets, 5100 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destina
tion?
上例中我們使用 –t 選項(xiàng),指定要操作的表,使用-L 選項(xiàng),查看-t 選項(xiàng)對應(yīng)的表的規(guī)則,-L選項(xiàng)的意思是列出規(guī)則,所以,上述命令的含義為列出filter表的所有規(guī)則。上圖中顯示了3條鏈,INPUT 鏈,FORWARD 鏈,OUTPUT 鏈,每條鏈中都有“過濾”的能力,所以,當(dāng)我們要定義某條“過濾”的規(guī)則時,我們會在filter 表定義,但是具體在那條“鏈”上定義規(guī)則,這取決于我們的工作場景。比如,我們需要禁止某個IP地址訪問我們的主機(jī),我們則需要在INPUT 鏈上定義規(guī)則。因?yàn)?#xff0c;我們在理論總結(jié)中已經(jīng)提到過,報(bào)文發(fā)往本機(jī)時,會經(jīng)過PREROUTING 鏈于INPUT 鏈,所以,如果我們想要禁止某些報(bào)文發(fā)往本機(jī),我們只能在PREROUTING鏈和INPUT鏈中定義規(guī)則,但是PREROUTING 鏈并不存在于filter 表中,換句話說就是,PREROUTING 關(guān)卡天生就沒有過濾的能力,所以,我們只能在IPNPUT鏈中定義,當(dāng)然,如果是其他工作場景,可能需要在FORWARD鏈或者OUTPUT鏈中定義過濾規(guī)則。其實(shí),我們可以省略 –t filter當(dāng)沒有使用使用-t 選項(xiàng)指定表時,默認(rèn)認(rèn)為操作filter表,即iptables –L? 表示列出filter 表中的所有規(guī)則。
?
我們還可以只查看指定表中的指定鏈的規(guī)則,如下,我們只查看filter表中的INPUT 鏈的規(guī)則:
[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target???? prot opt source?????????????? destination
?
我們可以使用 –v 來選項(xiàng),查看出更多的,更詳細(xì)的信息;使用 –n 表示不對ip地址進(jìn)行名稱反解,直接顯示IP地址,實(shí)例如下:
[root@localhost ~]# iptables -L -nv
Chain INPUT (policy ACCEPT 393 packets, 33975 bytes)
?pkts bytes target???? prot opt in???? out???? source?????????????? destination????????
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target???? prot opt in???? out???? source?????????????? destination????????
Chain OUTPUT (policy ACCEPT 200 packets, 18176 bytes)
pkts bytes target???? prot opt in???? out???? source?????????????? destination
?
pkts: 對應(yīng)規(guī)則匹配到的報(bào)文的個數(shù)
bytes: 對應(yīng)匹配到的報(bào)文包的大小總和
target:規(guī)則對應(yīng)的target,往往表示規(guī)則對應(yīng)的“動作”,即規(guī)則匹配成功后需要采取的措施。
prot:表示規(guī)則對應(yīng)的協(xié)議,是否只針對某些協(xié)議應(yīng)用次規(guī)則。
opt:表示規(guī)則對應(yīng)的選項(xiàng)。
in:表示數(shù)據(jù)包由那個接口(網(wǎng)卡)流入,我們可以設(shè)置通過那塊網(wǎng)卡流入的報(bào)文需要匹配當(dāng)前規(guī)則。
out:表示數(shù)據(jù)包由那個接口(網(wǎng)卡)流出,我們可以設(shè)置通過那塊網(wǎng)卡流出的報(bào)文需要匹配當(dāng)前規(guī)則。
source:表示規(guī)則對應(yīng)的源頭地址,可以是一個IP,也可以是一個網(wǎng)段。
destination:表示規(guī)則對應(yīng)的目標(biāo)地址。可以是一個IP,也可以是一個網(wǎng)段。
?
使用 --line-numbers 可顯示規(guī)則的編號,--line-numbers 選項(xiàng)可以縮寫成 --line,iptables也可以識別
[root@localhost ~]# iptables -L -nv --line
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destination????????
1?????? 34? 2556 ACCEPT???? tcp? --? *????? *?????? 0.0.0.0/0??????????? 0.0.0.0/0?????????? multiport dports 22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destination????????
Chain OUTPUT (policy ACCEPT 24 packets, 2256 bytes)
num?? pkts bytes target???? prot opt in???? out???? source?????????????? destination
聰明的你,一定會注意到括號里的內(nèi)容 policy ACCEPT?? packets? bytes,他們表示的意思如下:
policy 表示當(dāng)前鏈的默認(rèn)策略,policy ACCEPT 表示上圖中INPUT的鏈的默認(rèn)動作為ACCEPT,換句話說就是,默認(rèn)接受通過INPUT 關(guān)卡的所有請求,所以我們在配置INPUT 鏈的具體規(guī)則時,應(yīng)該將需要拒絕的請求配置到規(guī)則中,說白了就是“黑名單”機(jī)制,默認(rèn)所有人都能通過,只有指定的人不能通過,當(dāng)我們把INPU 鏈默認(rèn)動作設(shè)置為接受(ACCEPT),就表示所有人都能通過這個關(guān)卡,此時就應(yīng)該在具體的規(guī)則中指定需要拒絕的請求,就 表示只有指定的人不能通過這個關(guān)卡,這就是黑名單機(jī)制,但是,你一定發(fā)現(xiàn)了,上圖中所顯示出的規(guī)則,大部分都是接受請求(ACCEPT),并不是想象中的拒絕請求(DROP或者REJECT),這與我們所描述的黑名單機(jī)制不符啊,按照道理倆說,默認(rèn)動作為接受,就應(yīng)該在具體的規(guī)則中配置需要拒絕的人,但是上圖中并不是這樣的,之所以出現(xiàn)上圖中的情況,是因?yàn)閕ptables 的工作機(jī)制導(dǎo)致的,上例其實(shí)是利用了這些“機(jī)制”,完成了所謂的“白名單”機(jī)制,并不是我們所描述的“黑名單”。此處我們只要明白policy 對應(yīng)的動作為鏈的默認(rèn)動作即可,或者換句話說,我們只要理解,policy為鏈的默認(rèn)策略即可。
?
packets 表示當(dāng)前鏈(上例為INPUT 鏈)默認(rèn)策略匹配到的包的數(shù)量,0 packets 表示策略匹配到0個包。
?
bytes 表示當(dāng)前鏈默認(rèn)策略匹配到的所有包的大小總和。
其實(shí)我們可以把packets 和bytes 稱作“計(jì)數(shù)器”,上圖中的計(jì)數(shù)器記錄了默認(rèn)策略匹配到的報(bào)文數(shù)量與總大小,“計(jì)數(shù)器”只會在使用 –v 選項(xiàng)時,才會顯示出來。當(dāng)被匹配到包達(dá)到一定數(shù)量是,計(jì)數(shù)器會自動將匹配到的包的大小轉(zhuǎn)換為可讀性較高的單位,如下圖所示。
[root@localhost ~]# iptables -nvL INPUT
Chain INPUT (policy ACCEPT 55578 packets, 332K bytes)
?
如果你想要查看精確的計(jì)數(shù)值,而不是經(jīng)過可讀性優(yōu)化過的計(jì)數(shù)值,那么你可以使用-x 選項(xiàng),表示顯示精確的計(jì)數(shù)值,示例如下。
[root@localhost ~]# iptables -nvxL INPUT
Chain INPUT (policy ACCEPT 380 packets, 33500 bytes)
??? pkts????? bytes target???? prot opt in???? out???? source?????????????? destination????????
???? 127???? 9448 ACCEPT???? tcp? --? *????? *?????? 0.0.0.0/0??????????? 0.0.0.0/0?????????? multiport dports 22
?
二. 命令小結(jié)
1. iptable –t 表名 –L
查看對應(yīng)表的所有規(guī)則,-t 選項(xiàng)指定要操作的表,省略“-t 表名” 時,默認(rèn)表示操作filter表,-L 表示列出規(guī)則,即查看規(guī)則。
?
2. iptables –t 表名 –L 鏈名
查看指定表的指定鏈中的規(guī)則
?
3. iptables –t 表名 –v –L
查看指定表的所有規(guī)則,并且顯示更詳細(xì)的信息(更多字段),-v 表示 verbose,表示詳細(xì)的,冗長的,當(dāng)使用 –v 選項(xiàng)時,會顯示出“計(jì)數(shù)器” 的信息,由于上例中使用的選項(xiàng)都是短選項(xiàng),所以一般簡寫成為iptables –t 表名 –vL
?
4. iptables –t 表名 –n –L
表示查看表的所有規(guī)則,并且在顯示規(guī)則時,不對規(guī)則中的IP 或者端口進(jìn)行名稱反解,-n 選項(xiàng)表示不解析IP 地址。
?
5. iptables –lin-number –t 表名 –L
表示查看表的所有規(guī)則,并且顯示規(guī)則的序號,—line-numbers 選項(xiàng)表示顯示規(guī)則的序號,注意,此選項(xiàng)為長選項(xiàng),不能與其他短選項(xiàng)合并,不過此選項(xiàng)可以簡寫為 –line 注意,簡寫后仍然是兩條橫杠,仍然是長選項(xiàng)。
?
6. iptables –t 表名 –v –x –L
表示查看表中的所有規(guī)則,并且顯示更詳細(xì)的信息 (-v 選項(xiàng)),不過,計(jì)數(shù)器中的信息顯示為精確的計(jì)數(shù)值,而不是顯示為經(jīng)過可讀優(yōu)化的計(jì)數(shù)值,-x 選項(xiàng)表示顯示計(jì)數(shù)器的精確值。
?
7. iptables –line –t filter –nvxL
為了方便會將短選項(xiàng)進(jìn)行合并,將選項(xiàng)粘合在一起,寫成如上命令。
?
8. iptables –line –t filter –nvxL INPUT
可以只查看某張表中的某條鏈,此處一filter 表的INPUT 鏈為例
轉(zhuǎn)載于:https://www.cnblogs.com/lzcys8868/p/9192086.html
總結(jié)
以上是生活随笔為你收集整理的iptables 实际操作 之 规则查询 2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nop 插件解析
- 下一篇: VMware workstation运维