一、鏈的基本操作
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...