Iptables的規則文法__input

來源:互聯網
上載者:User

(一)

基本文法

iptables-t filter -A INPUT -p icmp -j DROP

進階文法

iptables-t filter -A INPUT -m mac –mac-source 00:1C:23:3B:2E:B1 -j DROP

區別進階文法與基本文法的不同:首先filter的機制是由iptables_filter.ko模組所提供的功能,而這個模組本身就已提供了一些簡單的匹配的過濾方式,而所謂的基本文法是指只使用iptable_filter.ko模組自身所提供的功能。進階文法必須調用其它模組的功能。以進階文法的範例為例,“-mmac”就是告知iptables工具,我們要動用xt_mac.ko模組的功能,由於是調用其它的模組,因此,文法的部分將會隨著不同的模組而有所改變,而且每一個模組的文法也不一樣,這就是所謂的“進階文法”。

舉例1:將222.24.21.195送到原生ICMP封包丟棄

文法:iptables-A INPUT -p icmp -s 222.24.21.195 -j DROP

文法解釋:

-AINPUT

保護對象

因為本範例所使用的是INPUTChain,故其保護的對象為本機

-picmp

原文

-pProtocol(協議)

目的

匹配某個特定協議封包,本範例是匹配icmp的封包

文法

-p icmp、-ptcp、 -pudp -p all等

-s222.24.21.195

原文

-s Source

對應的參數

-dDestination

目的

匹配封包中“來源”或“目的”端的IP

文法

-s222.24.21.195 -s www.baidu.com等,由例子可知,IP位置的表示方法可以用單一IP或標準的CID網段,至於QDN的部分,實際上iptables是把FQDN送至DNS去執行解析,最後加入到規則之中的還是IP

-j

目的

JUMP

文法

將符合以上兩項條件的封包以特定的方式來“處理”

較常見的處理方式:

ACCEPT

允許通過

DROP

將封包丟棄調,這種處理方式將導致來源端誤以為封包丟失,而不斷重新發送封包,這個動作將持續到串連Timeout為止

REJECT

將封包丟棄掉,並回送一個DestinationUnreachable的ICMP封包給發送端,發送端的應用程式收到這個錯誤資訊封包之後,會終止串連的動作


舉例2:不允許222.24.21.195主機通過本機DNS服務來執行名稱解析

文法:iptables-A INPUT -p udp -s 222.24.21.195 --dport 53 -j REJECT

文法解釋:

--dport53

原文

--dportDestination Port

對應的參數

--sportSource Port

目的

匹配TCP、UDP包頭中的“來源端Port”或“目的端Port”,這樣即可判斷串連所要訪問的服務,例如:-pudp –dport 53 代表用戶端要訪問UDP的53port,而UDP的53port就是DNS服務

文法

--dport 80、--sport80,但請注意,當時用--dport或--sport參數時,一定要指明是tcp還是udp協議。注意一點:只要規則文法中用到“Port參數”時,一定要加上“-pudp或-ptcp”的參數。


舉例3:允許192.168.1.0/24網段的主機對192.168.0.1提出任何的服務要求

文法:iptables-A INPUT -p all -s 192.168.1.0/24 -d 192.168.0.1 -j ACCEPT

文法解釋:

-pall

目的

匹配所有的協議包

-s192.168.1.0/24

目的

匹配來源端IP為192.168.1.0/24網段的封包

-jACCEPT

目的

開放符合以上3項條件的封包進入


舉例4:只允許使用者端主機從eth1訪問的本機SSH服務

文法: iptables-A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT

文法解釋:

-ieth1

原文

-iin-interface

對應的參數

-oout-interface

目的

匹配封包的出入介面

文法

-i eth1 -oeth2


舉例5:不允許原生應用程式從eth0介面送出封包去訪問www.baidu.com網站

文法:iptables-A OUTPUT -o eth0 -p tcp -d www.baidu.com --dport 80 -j REJECT

文法解釋:

-AOUTPUT

限制的對象

因為該例子使用的OUTPUChain,所以目的是限制本機對外的串連


(二)

有上面幾個例子瞭解了iptables的基本文法,下面對參數進行整理總結。

(1)介面的匹配參數

參數名稱

-i 、-o

參數值

參數值會因為防火牆主機所使用的物理介面不同而有所改變,下面列出常見的網路介面名稱:

* eth0 :乙太網路絡的介面名稱。

* ppp0:PPP介面的名稱。

* lo :LocalLoopback介面。

* fddi0:光線介面

使用範例

-i eth0:匹配從eth0介面送入的封包

意義

匹配封包的進出介面

補充

可搭配“。”來代表反向,例如,“-i。eth0”即表示匹配不是從eth0介面進入的封包

(2)上層協議(UpperLayer Protocal)的匹配參數

參數名稱

-p

參數值

這些參數會因為匹配的上層協議的不同而有所差異,一般常見的參數如下:

* tcp :匹配的上層協議為TCP協議。

* udp :匹配的上層協議為UDP協議。

* icmp :匹配的上層協議為ICMP協議。

* all :匹配所有的上層協議。

關於其它的上層協議可以參考/etc/protocols文檔,現在取出一部分內容:

ip 0 IP

hopopt 0 HOPOPT

icmp 1 ICMP

igmp 2 IGMP

ggp 3 GGP

ipencap 4 IP-ENCAP

tcp 6 TCP

註:其中第一和第二欄位是給系統來使用的,比如說我們寫-ptcp還可以寫為-p6。因為tcp的代碼就是6,第三個欄位用於管理員來識別用。


(3)匹配來源/目的的IP地址

參數名稱

-s -d

參數值

來源及目的IP地址匹配,其可接受的IP地址格式如下:

*192.168.0.1 :匹配單一IP。

*172.10.0.0/16 :匹配一個Class B的網段。

*192.168.0.0/24 :匹配一個ClassC的網段。

*192.168.0.0/28 :也可以是任何標準CIDR的網段。

* www.qq.com : 也可以是網址,但最後存放到Chain裡的值還是IP



使用範例

-s192.168.0.1 :匹配從192.168.0.1主機送來的封包

-s192.1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.