剛開始接觸Iptables 就對-I 和 -A 參數(shù)很疑惑,-I 插入一條或多條規(guī)則 ,-A 是追加一條或多條規(guī)則。
創(chuàng)新互聯(lián)公司客戶idc服務(wù)中心,提供IDC機房托管、成都服務(wù)器、成都主機托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機房提供7*24小時標(biāo)準(zhǔn)級技術(shù)保障。
都是加一條規(guī)則,究竟這兩個有什么不同呢?
實驗:
拿了兩臺機器,一臺發(fā)PING包,一臺被PING。
兩臺機器使用 iptables -nvL INPUT 查看,iptables 是空的
然后在被PING的機器加入 iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
再用 iptables -nvL INPUT 查看如下:
Chain INPUT (policy ACCEPT 592 packets, 55783 bytes)
pkts bytes target prot opt in out source destination
8 672 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
此時發(fā)PING包的機器顯示的PING包停住了。
此時在被PING的機器再加入 iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT
再用 iptables -nvL INPUT 查看如下:
Chain INPUT (policy ACCEPT 678 packets, 62701 bytes)
pkts bytes target prot opt in out source destination
21 1764 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
顯示iptables 被追加了一條規(guī)則,但發(fā)PING包的機器顯示的PING包仍停住,證明新加入的規(guī)則不能放行PING包
在被PING的機器再加入iptables -I INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT
再用 iptables -nvL INPUT 查看如下:
Chain INPUT (policy ACCEPT 770 packets, 70223 bytes)
pkts bytes target prot opt in out source destination
2 168 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
31 2604 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
顯示iptables 新增一條規(guī)則,此時發(fā)PING包的機器顯示的PING包再次跳動,證明新加入的規(guī)則能放行PING包
而兩個規(guī)則放行規(guī)則的差異只是 -A 和 -I ,-A 追加規(guī)則在DROP 規(guī)則后,-I增加規(guī)則在DROP 規(guī)則前。
iptables 是由上而下的進行規(guī)則匹配,放行規(guī)則需在禁行規(guī)則之前才能生效。