iptables 基本命令使用舉例

2022-02-18 12:40:53 字數 4992 閱讀 6987

一、鏈的基本操作

1、清除所有的規則。

1)清除預設表filter中所有規則鏈中的規則。

# iptables -f

2)清除預設表filter中使用者自定鏈中的規則。

#iptables -x

#iptables -z

2、設定鏈的預設策略。一般有兩種方法。

1)首先允許所有的包,然後再禁止有危險的包通過放火牆。

#iptables -p input accept

#iptables -p output accept

#iptables -p forward accept

2)首先禁止所有的包,然後根據需要的服務允許特定的包通過防火牆。

#iptables -p input drop

#iptables -p output drop

#iptables -p forward drop

3、列出表/鏈中的所有規則。預設只列出filter表。

#iptables -l

4、向鏈中新增規則。下面的語句用於開放網路介面:

#iptables -a input -i lo -j accept

#iptables -a output -o lo -j accept

#iptables -a input -i eth0 -j acept

#iptables -a output -o eth1 -j accept

#iptables -a forward -i eth1 -j accept

#iptables -a forward -0 eth1 -j accept

注意:由於本地程序不會經過forward鏈,因此回環介面lo只在input和output兩個鏈上作用。

5、使用者自定義鏈。

#iptables -n custom

#iptables -a custom -s 0/0 -d 0/0 -p icmp -j drop

#iptables -a input -s 0/0 -d 0/0 -j drop

二、設定基本的規則匹配

1、指定協議匹配。

1)匹配指定協議。

#iptables -a input -p tcp

2)匹配指定協議之外的所有協議。

#iptables -a input -p !tcp

2、指定位址匹配。

1)指定匹配的主機。

#iptables -a input -s 192.168.0.18

2)指定匹配的網路。

#iptables -a input -s 192.168.2.0/24

3)匹配指定主機之外的位址。

#iptables -a forward -s !192.168.0.19

4)匹配指定網路之外的網路。

#iptables -a forward -s ! 192.168.3.0/24

3、指定網路介面匹配。

1)指定單一的網路介面匹配。

#iptables -a input -i eth0

#iptables -a forward -o eth0

2)指定同型別的網路介面匹配。

#iptables -a forward -o ppp+

4、指定埠匹配。

1)指定單一埠匹配。

#iptables -a input -p tcp –sport www

#iptables -a input -p udp –dport 53

2)匹配指定埠之外的埠。

#iptables -a input -p tcp –dport !22

3)匹配埠範圍。

#iptables -a input -p tcp –sport 22:80

4)匹配icmp埠和icmp型別。

#iptables -a inout -p icmp –icimp-type 8

5)指定ip碎片。

每個網路介面都有乙個mtu(最大傳輸單元),這個引數定義了可以通過的資料報的最大尺寸。如果乙個資料報大於這個引數值時,系統會將其劃分成更小 的資料報(稱為ip碎片)來傳輸,而接受方則對這些ip碎片再進行重組以還原整個包。這樣會導致乙個問題:當系統將大資料報劃分成ip碎片傳輸時,第乙個 碎片含有完整的包頭資訊(ip+tcp、udp和icmp),但是後續的碎片只有包頭的部分資訊(如源位址、目的位址)。因此,檢查後面的ip碎片的頭部 (象有tcp、udp和icmp一樣)是不可能的。假如有這樣的一條規則:

#iptables -a forward -p tcp -s 192.168.1.0/24 -d 192.168.2.100 –dport 80 -j accept

並且這時的forward的policy為drop時,系統只會讓第乙個ip碎片通過,而餘下的碎片因為包頭資訊不完整而無法通過。可以通過—fragment/-f 選項來指定第二個及以後的ip碎片解決上述問題。

#iptables -a forward -f -s 192.168.1.0/24 -d 192.168.2.100 -j accept

注意現在有許多進行ip碎片攻擊的例項,如dos攻擊,因此允許ip碎片通過是有安全隱患的,對於這一點可以採用iptables的匹配擴充套件來進行限制。

三、設定擴充套件的規則匹配(舉例已忽略目標動作)

1、多埠匹配。

1)匹配多個源埠。

#iptables -a input -p tcp -m multiport –sport 22,53,80,110

2)匹配多個目的埠。

#iptables -a input -p tcp -m multiport –dpoort 22,53,80

3)匹配多埠(無論是源埠還是目的埠)

#iptables -a input -p tcp -m multiport –port 22,53,80,110

2、指定tcp匹配擴充套件

使用 –tcp-flags 選項可以根據tcp包的標誌位進行過濾。

#iptables -a input -p tcp –tcp-flags syn,fin,ack syn

#iptables -a froward -p tcp –tcp-flags all syn,ack

上例項中第乙個表示syn、ack、fin的標誌都檢查,但是只有syn匹配。第二個表示all(syn,ack,fin,rst,urg,psh)的標誌都檢查,但是只有設定了syn和ack的匹配。

#iptables -a forward -p tcp –syn

選項—syn相當於」–tcp-flags syn,rst,ack syn」的簡寫。

3、limit速率匹配擴充套件。

1)指定單位時間內允許通過的資料報個數,單位時間可以是/second、/minute、/hour、/day或使用第乙個子母。

#iptables -a input -m limit –limit 300/hour

2 )指定觸發事件的閥值。

#iptables -a input -m limit –limit-burst 10

用來比對一次同時湧入的封包是否超過10個,超過此上限的包將直接丟棄。

3)同時指定速率限制和觸發閥值。

#iptables -a input -p icmp -m limit –-limit 3/m –limit-burst 3

表示每分鐘允許的最大包數量為限制速率(本例為3)加上當前的觸發閥值burst數。任何情況下,都可保證3個資料報通過,觸發閥值burst相當於允許額外的包數量。

4)基於狀態的匹配擴充套件(連線跟蹤)

和超時時間等。防火牆把這些資訊稱為狀態(stateful)。狀態包過濾防火牆能在記憶體中維護乙個跟蹤狀態的表,比簡單包過濾防火牆具有更大的安全性,命令格式如下:

iptables -m state –-state [!]state [,state,state,state]

其中,state表是乙個逗號分割的列表,用來指定連線狀態,4種:

>new: 該包想要開始乙個新的連線(重新連線或連線重定向)

>related:該包是屬於某個已經建立的連線所建立的新連線。舉例:

ftp的資料傳輸連線和控制連線之間就是related關係。

>established:該包屬於某個已經建立的連線。

>invalid:該包不匹配於任何連線,通常這些包被drop。

例如:(1)在input鏈新增一條規則,匹配已經建立的連線或由已經建立的連線所建立的新連線。即匹配所有的tcp回應包。

#iptables -a input -m state –state related,established

(2)在input鏈鏈新增一條規則,匹配所有從非eth0介面來的連線請求包。

#iptables -a input -m state -–state new -i !eth0

又如,對於ftp連線可以使用下面的連線跟蹤:

(1)被動(passive)ftp連線模式。

#iptables -a input -p tcp –sport 1024: –dport 1024: -m state –-state established -j accept

#iptables -a output -p tcp –sport 1024: –dport 1024: -m

state -–state established,related -j accept

(2)主動(active)ftp連線模式

#iptables -a innput -p tcp –sport 20 -m state –-state established,related -j accept

#iptables -a output -p tcp –output -p tcp –dport 20 -m state –state established -j accept

5)tos匹配擴充套件。

四、設定目標擴充套件

目標擴充套件由核心模組組成,而且iptables的乙個可選擴充套件提供了新的命令列選項。

有時連入互連網的時候閘道器是動態的不確定的.如adsl上網

iptables -t nat -a output -s 192.168.0.0.1/24 -j marsuerade

iptables 基本命令使用舉例

一 鏈的基本操作 1 清除所有的規則。1 清除預設表filter中所有規則鏈中的規則。iptables f 2 清除預設表filter中使用者自定鏈中的規則。iptables x iptables z 2 設定鏈的預設策略。一般有兩種方法。1 首先允許所有的包,然後再禁止有危險的包通過放火牆。ipt...

GPRS基本命令使用

顯示模組資訊 ati 查詢sim 卡的狀態 查詢訊號 at csq 查詢sim卡的 商 at cops?如果返回 cops 0,0,chn unicom 表示 商為中國聯通,返回 cops 0,0,chian mobile 為中國移動 查詢使用者號碼 at cnum 查詢開發板的狀態 at cpas...

kafka基本命令使用

本文主要參考 最近開始接觸kafka,下面介紹介紹一些最基本的kafka 的操作。首先是啟動kafka。kafka依賴zookeeper,所以需要先啟動zookeeper。bin zookeeper server start.sh config zookeeper.properties然後啟動kaf...