導航:首頁 > 凈水問答 > iptables過濾數據包

iptables過濾數據包

發布時間:2022-06-12 10:04:47

❶ 如何在linux中利用iptables阻止來自某個域名(不是來自某個IP)的數據包

iptables -A INPUT -m dmain --name "你要屏蔽的域名" - j DROP

❷ 關於iptables做網關過濾數據包的一些問題

為了能採用遠程SSH登陸,我們要開啟22埠.

[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
只允許.168.0.3的機器進行SSH連接
[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

如果要允許,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

24表示子網掩碼數.但要記得把 /etc/sysconfig/iptables 里的這一行刪了.

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 因為它表示所有地址都可以登陸.
寫 !192.168.0.3 表示除了192.168.0.3的ip地址
其他的規則連接也一樣這么設置.

虛擬通道我沒明白你什麼意思,如果是指特定埠,上面就是,如果是指特定設備,舉個網卡的例子給你
開啟轉發功能,(在做NAT時,FORWARD默認規則是DROP時,必須做)

[root@tp ~]# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

[root@tp ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT

丟棄壞的TCP包

[root@tp ~]#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP

處理IP碎片數量,防止攻擊,允許每秒100個

[root@tp ~]#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

設置ICMP包過濾,允許每秒1個包,限制觸發條件是10個包.

[root@tp ~]#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

上面的操作做完之後別忘了
[root@tp ~]# /etc/rc.d/init.d/iptables save

這樣就可以寫到/etc/sysconfig/iptables文件里了.寫入後記得把防火牆重起一下,才能起作用.

[root@tp ~]# service iptables restart

❸ 防火牆iptables的包過濾的基本流程

簡單地說來,就是設定一些規則,自對進來和出去的數據包的ip做檢查,符合規則的通行,不符合的做響應的處理,要了解這個流程中的三個表:
nat表,filter表,mangle表,
五條鏈:INPUT鏈,OUTPUT鏈,FORWARD鏈,PREROUTING鏈,POSTROUTING鏈。
1)對於進來的包:經過IP校驗後,經過第一條鏈PREROUTING處理,一般是做DNAT;然後經過路由,決定是到本地的還是需要轉發的包。
a、如果是到本地的,就經過INPUT鏈處理,比如過濾等,經過處理後發往上層協議。
b、如果是需要轉發的,經過FORWARD鏈處理,一般是做過濾,然後經過路由代碼,再經過POSTROUTING鏈處理(主要是做SNAT),再傳輸到網路上。
2)對於本地產生的包:先經過OUTPUT鏈處理,若過濾可以後,進行路由選擇處理,然後經過POSTROUTING做SNAT處理後發送到網路上。

大概的原理就是這樣,啰啰嗦嗦一對不如去看看netfilter網站,講得更清楚一些。

❹ 急!!!利用 iptables 實現 linux 防火牆功能有關問題

自己看:
什麼是Iptables?

iptables 是建立在 netfilter 架構基礎上的一個包過濾管理工具,最主要的作用是用來做防火牆或透明代理。Iptables 從 ipchains 發展而來,它的功能更為強大。Iptables 提供以下三種功能:包過濾、NAT(網路地址轉換)和通用的 pre-route packet mangling。包過濾:用來過濾包,但是不修改包的內容。Iptables 在包過濾方面相對於 ipchians 的主要優點是速度更快,使用更方便。NAT:NAT 可以分為源地址 NAT 和目的地址 NAT。

Iptables 可以追加、插入或刪除包過濾規則。實際上真正執行這些過慮規則的是 netfilter 及其相關模塊(如 iptables 模塊和 nat 模塊)。Netfilter 是 Linux 核心中一個通用架構,它提供了一系列的 「表」(tables),每個表由若干 「鏈」(chains)組成,而每條鏈中可以有一條或數條 「規則」(rule)組成。

系統預設的表為 「filter」,該表中包含了 INPUT、FORWARD 和 OUTPUT 3 個鏈。

每一條鏈中可以有一條或數條規則,每一條規則都是這樣定義的:如果數據包頭符合這樣的條件,就這樣處理這個數據包。當一個數據包到達一個鏈時,系統就會從第一條規則開始檢查,看是否符合該規則所定義的條件: 如果滿足,系統將根據該條規則所定義的方法處理該數據包;如果不滿足則繼續檢查下一條規則。最後,如果該數據包不符合該鏈中任一條規則的話,系統就會根據該鏈預先定義的策略來處理該數據包。

? table,chain,rule

iptables 可以操縱3 個表:filter 表,nat 表,mangle 表。

NAT 和一般的 mangle 用 -t 參數指定要操作哪個表。filter 是默認的表,如果沒有 -t 參數,就默認對 filter 表操作。

Rule 規則:過濾規則,埠轉發規則等,例如:禁止任何機器 ping 我們的伺服器,可以在伺服器上設置一條規則:

iptables -A INPUT -s ! 127.0.0.1 -p icmp -j DROP

從 –s 開始即是一條規則,-j 前面是規則的條件,-j 開始是規則的行為(目的)。整條命令解釋為,在filter 表中的 INPUT 規則鏈中插入一條規則,所有源地址不為 127.0.0.1 的 icmp 包都被拋棄。

Chain 規則鏈:由一系列規則組成,每個包順序經過 chain 中的每一條規則。chain 又分為系統 chain和用戶創建的 chain。下面先敘述系統 chain。

filter 表的系統 chain: INPUT,FORWAD,OUTPUT

nat 表的系統 chain: PREROUTING,POSTROUTING,OUTPUT

mangle 表的系統 chain: PREROUTING,OUTPUT

每條系統 chain 在確定的位置被檢查。比如在包過濾中,所有的目的地址為本地的包,則會進入INPUT 規則鏈,而從本地出去的包會進入 OUTPUT 規則鏈。

所有的 table 和 chain 開機時都為空,設置 iptables 的方法就是在合適的 table 和系統 chain 中添相應的規則。

--------------------------------------------------------------

IPTABLES 語法:

表: iptables從其使用的三個表(filter、nat、mangle)而得名, 對包過濾只使用 filter 表, filter還是默認表,無需顯示說明.

操作命令: 即添加、刪除、更新等。

鏈:對於包過濾可以針對filter表中的INPUT、OUTPUT、FORWARD鏈,也可以操作用戶自定義的鏈。

規則匹配器:可以指定各種規則匹配,如IP地址、埠、包類型等。

目標動作:當規則匹配一個包時,真正要執行的任務,常用的有:

ACCEPT 允許包通過

DROP 丟棄包

一些擴展的目標還有:

REJECT 拒絕包,丟棄包同時給發送者發送沒有接受的通知

LOG 包有關信息記錄到日誌

TOS 改寫包的TOS值

為使FORWARD規則能夠生效,可使用下面2種方法的某種:

[root@rhlinux root]# vi /proc/sys/net/ipv4/ip_forward
[root@rhlinux root]# echo "1" > /proc/sys/net/ipv4/ip_forward

[root@rhlinux root]# vi /etc/sysconfig/network
[root@rhlinux root]# echo "FORWARD_IPV4=true" > /etc/sysconfig/network

--------------------------------------------------------

iptables語法可以簡化為下面的形式:

iptables [-t table] CMD [chain] [rule-matcher] [-j target]

--------------------------------------------------------

常用操作命令:

-A 或 -append 在所選鏈尾加入一條或多條規則

-D 或 -delete 在所選鏈尾部刪除一條或者多條規則

-R 或 -replace 在所選鏈中替換一條匹配規則

-I 或 -insert 以給出的規則號在所選鏈中插入一條或者多條規則. 如果規則號為1,即在鏈頭部.

-L 或 -list 列出指定鏈中的所有規則,如果沒有指定鏈,將列出鏈中的所有規則.

-F 或 -flush 清除指定鏈和表中的所由規則, 假如不指定鏈,那麼所有鏈都將被清空.

-N 或 -new-chain 以指定名創建一條新的用戶自定義鏈,不能與已有鏈名相同.

-X 或 -delete-chain 刪除指定的用戶定義簾,必需保證鏈中的規則都不在使用時才能刪除,若沒有指定鏈,則刪除所有用戶鏈.

-P 或 -policy 為永久簾指定默認規則(內置鏈策略),用戶定義簾沒有預設規則,預設規則也使規則鏈中的最後一條規則,用-L顯示時它在第一行顯示.

-C 或 -check 檢查給定的包是否與指定鏈的規則相匹配.

-Z 或 -zero 將指定簾中所由的規則包位元組(BYTE)計數器清零.

-h 顯示幫助信息.

-------------------------------------------------------------

常用匹配規則器:

-p , [!] protocol 指出要匹配的協議,可以是tcp, udp, icmp, all, 前綴!為邏輯非,表示除該協議外的所有協議.

-s [!] address[/mask] 指定源地址或者地址范圍.

-sport [!] port[:port] 指定源埠號或范圍,可以用埠號也可以用/ETC/SERVICES文件中的名子.

-d [!] address[/mask] 指定目的地址或者地址范圍.

-dport [!] port[:port] 指定目的埠號或范圍,可以用埠號也可以用/ETC/SERVICES文件中的名子.

-icmp-type [!] typename 指定匹配規則的ICMP信息類型(可以使用 iptables -p icmp -h 查看有效的ICMP類型名)

-i [!] interface name[+] 匹配單獨或某種類型的介面,此參數忽略時,默認符合所有介面,介面可以使用"!"來匹配捕食指定介面來的包.參數interface是介面名,如 eth0, eht1, ppp0等,指定一個目前不存在的介面是完全合法的,規則直到介面工作時才起作用,折中指定對於PPP等類似連接是非常有用的."+"表示匹配所有此類型介面.該選項只針對於INPUT,FORWARD和PREROUTING鏈是合法的.

-o [!] interface name[+] 匹配規則的對外網路介面,該選項只針對於OUTPUT,FORWARD,POSTROUTING鏈是合法的.

[!] --syn 僅僅匹配設置了SYN位, 清除了ACK, FIN位的TCP包. 這些包表示請求初始化的TCP連接.阻止從介面來的這樣的包將會阻止外來的TCP連接請求.但輸出的TCP連接請求將不受影響.這個參數僅僅當協議類型設置為了TCP才能使用. 此參數可以使用"!"標志匹配已存在的返回包,一般用於限制網路流量,即只允許已有的,向外發送的連接所返回的包.

----------------------------------------------------------

如何制定永久規則集:

/etc/sysconfig/iptables 文件是 iptables 守護進程調用的默認規則集文件.

可以使用以下命令保存執行過的IPTABLES命令:

/sbin/iptables-save > /etc/sysconfig/iptables

要恢復原來的規則庫,可以使用:

/sbin/iptables-restore < /etc/sysconfig/iptables

iptables命令和route等命令一樣,重啟之後就會恢復,所以:

[root@rhlinux root]# service iptables save
將當前規則儲存到 /etc/sysconfig/iptables: [ 確定 ]

令一種方法是 /etc/rc.d/init.d/iptables 是IPTABLES的啟動腳本,所以:

[root@rhlinux root]# /etc/rc.d/init.d/iptables save
將當前規則儲存到 /etc/sysconfig/iptables: [ 確定 ]

以上幾種方法只使用某種即可.

若要自定義腳本,可直接使用iptables命令編寫一個規則腳本,並在啟動時執行:

例如若規則使用腳本文件名/etc/fw/rule, 則可以在/etc/rc.d/rc.local中加入以下代碼:

if [-x /etc/fw/rule]; then /etc/fw/sule; fi;

這樣每次啟動都執行該規則腳本,如果用這種方法,建議NTSYSV中停止IPTABLES.

----------------------------------------------------------

實例:

鏈基本操作:

[root@rh34 root]# iptables -L -n
(列出表/鏈中的所有規則,包過濾防火牆默認使用的是filter表,因此使用此命令將列出filter表中所有內容,-n參數可加快顯示速度,也可不加-n參數。)

[root@rh34 root]# iptables -F
(清除預設表filter中所有規則鏈中的規則)

[root@rh34 root]# iptables -X
(清除預設表filter中使用者自定義鏈中的規則)

[root@rh34 root]# iptables -Z
(將指定鏈規則中的所有包位元組計數器清零)

------------------------------------------------------------

設置鏈的默認策略,默認允許所有,或者丟棄所有:

[root@rh34 root]# iptables -P INPUT ACCEPT
[root@rh34 root]# iptables -P OUTPUT ACCEPT
[root@rh34 root]# iptables -P FORWARD ACCEPT
(以上我們在不同方向設置默認允許策略,若丟棄則應是DROP,嚴格意義上防火牆應該是DROP然後再允許特定)

---------------------------------------------------------------

向鏈中添加規則,下面的例子是開放指定網路介面(信任介面時比較實用):

[root@rh34 root]# iptables -A INPUT -i eth1 -j ACCEPT
[root@rh34 root]# iptables -A OUTPUT -o eth1 -j ACCEPT
[root@rh34 root]# iptables -A FORWARD -i eth1 -j ACCEPT
[root@rh34 root]# iptables -A FORWARD -o eth1 -j ACCEPT

--------------------------------------------------------------

使用用戶自定義鏈:

[root@rh34 root]# iptables -N brus
(創建一個用戶自定義名叫brus的鏈)

[root@rh34 root]# iptables -A brus -s 0/0 -d 0/0 -p icmp -j DROP
(在此鏈中設置了一條規則)

[root@rh34 root]# iptables -A INPUT -s 0/0 -d 0/0 -j brus
(向默認的INPUT鏈添加一條規則,使所有包都由brus自定義鏈處理)

----------------------------------------------------------------

基本匹配規則實例:

匹配協議:

iptables -A INPUT -p tcp
(指定匹配協議為TCP)

iptables -A INPUT -p ! tcp
(指定匹配TCP以外的協議)

匹配地址:

iptables -A INPUT -s 192.168.1.1
(匹配主機)

iptables -A INPUT -s 192.168.1.0/24
(匹配網路)

iptables -A FORWARD -s ! 192.168.1.1
(匹配以外的主機)

iptables -A FORWARD -s ! 192.168.1.0/24
(匹配以外的網路)

匹配介面:

iptables -A INPUT -i eth0
iptables -A FORWARD -o eth0
(匹配某個指定的介面)

iptables -A FORWARD -o ppp+
(匹配所有類型為ppp的介面)

匹配埠:

iptables -A INPUT -p tcp --sport www
iptables -A INPUT -p tcp --sport 80
(匹配單一指定源埠)

iptables -A INPUT -p ucp --dport 53
(匹配單一指定目的埠)

iptables -A INPUT -p ucp --dport ! 53
(指定埠以外)

iptables -A INPUT -p tcp --dport 22:80
(指定埠范圍,這里我們實現的是22到80埠)

---------------------------------------------------------------------------------

指定IP碎片的處理:

[root@rh34 root]# iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT
[root@rh34 root]# iptables -A FORWARD -f -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT

[root@rh34 root]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.1.0/24 192.168.1.234 tcp dpt:http
ACCEPT tcp -f 192.168.1.0/24 192.168.1.234 tcp dpt:http

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

----------------------------------------------------------------------------------

設置擴展的規測匹配:

(希望獲得匹配的簡要說明,可使用: iptables -m name_of_match --help)

多埠匹配擴展:

iptables -A INPUT -p tcp -m multiport --source-port 22,53,80
(匹配多個源埠)

iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80
(匹配多個目的埠)

iptables -A INPUT -p tcp -m multiport --port 22,53,80
(匹配多個埠,無論是源還是目的埠)

-----------------------------------------------------------------------------

TCP匹配擴展:

iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN
(表示SYN、ACK、FIN的標志都要被檢查,但是只有設置了SYN的才匹配)

iptables -A INPUT -p tcp --tcp-flags ALL SYN,ACK
(表示ALL:SYN、ACK、FIN、RST、URG、PSH的標志都被檢查,但是只有設置了SYN和ACK的才匹配)

iptables -p tcp --syn
(選項--syn是以上的一種特殊情況,相當於「--tcp-flags SYN,RST,ACK SYN」的簡寫)

--------------------------------------------------------------------------------

limit速率匹配擴展:

[root@redhatlinux9 root]# iptables -A FORWARD -m limit --limit 300/hour
(表示限制每小時允許通過300個數據包)

[root@redhatlinux9 root]# iptables -A INPUT -m limit --limit-burst 10
(--limit-burst指定觸發時間的值(默認為5),用來比對瞬間大量數據包的數量。)
(上面的例子用來比對一次同時湧入的數據包是否超過十個,超過此上限的包將直接被丟棄)

[root@redhatlinux9 root]# iptables -A FORWARD -p icmp -m limit --limit 3/m --limit-burst 3
(假設均勻通過,平均每分鍾3個,那麼觸發值burst保持為3。如果每分鍾通過的包的數目小於3,那麼觸發值busrt將在每個周期(若每分鍾允許通過3個,則周期數為20秒)後加1,但最大值為3。每分鍾要通過的包數量如果超過3,那麼觸發值busrt將減掉超出的數值,例如第二分鍾有4個包,那麼觸發值變為2,同時4個包都可以通過,第三分鍾有6個包,則只能通過5個,觸發值busrt變為0。之後,每分鍾如果包數量小於等於3個,則觸發值busrt將加1,如果每分鍾包數大於3,觸發值busrt將逐漸減少,最終維持為0)
(即每分鍾允許的最大包數量等於限制速率(本例中為3)加上當前的觸發值busrt數。任何情況下,都可以保證3個包通過,觸發值busrt相當於是允許額外的包數量)

---------------------------------------------------------------------------------

基於狀態的匹配擴展(連接跟蹤):

每個網路連接包括以下信息:源和目的地址、源和目的埠號,稱為套接字對(cocket pairs);協議類型、連接狀態(TCP協議)和超時時間等。防火牆把這些叫做狀態(stateful)。能夠監測每個連接狀態的防火牆叫做狀態寶過濾防火牆,除了能完成普通包過濾防火牆的功能外,還在自己的內存中維護一個跟蹤連接狀態的表,所以擁有更大的安全性。

其命令格式如下:

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

state表示一個用逗號隔開的的列表,用來指定的連接狀態可以有以下4種:

NEW:該包想要開始一個連接(重新連接或將連接重定向)。

RELATED:該包屬於某個已經建立的連接所建立的新連接。例如FTP的數據傳輸連接和控制連接之間就是RELATED關系。

ESTABLISHED:該包屬於某個已經建立的連接。

INVALID:該包不匹配於任何連接,通常這些包會被DROP。

例如:

[root@redhatlinux9 root]# iptables -A INPUT -m state --state RELATED,ESTABLISHED
(匹配已經建立的連接或由已經建立的連接所建立的新連接。即匹配所有的TCP回應包)

[root@redhatlinux9 root]# iptables -A INPUT -m state --state NEW -i ! eth0
(匹配所有從非eth0介面來的連接請求包)

下面是一個被動(Passive)FTP連接模式的典型連接跟蹤
[root@redhatlinux9 root]# iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
[root@redhatlinux9 root]# iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

下面是一個主動(Active)FTP連接模式的典型連接跟蹤
[root@redhatlinux9 root]# iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@redhatlinux9 root]# iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT

--------------------------------------------------------------------------------------

日誌記錄:

格式為: -j LOG --log-level 7 --log-prefix "......"

[root@redhatlinux9 root]# iptables -A FORWARD -m tcp -p tcp -j LOG

[root@redhatlinux9 root]# iptables -A FORWARD -m icmp -p icmp -f -j LOG

[root@redhatlinux9 root]# iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.10.0/24 -p tcp --sport 80 -j LOG

[root@redhatlinux9 root]# iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-prefix "INPUT packet died:"

[root@redhatlinux9 root]# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New net syn:"

------------------------------------------------

回答你的問題:

1:設置為DROP默認不允許,然後你再開啟,這樣比門戶大開再阻止某些服務來的安全(避免遺漏)

2:前面阻止了後面就無效了,有先後順序的.

3:你了解了服務和埠號等即可用規則限制.

❺ 簡述iptables的工作過程

基本步驟如下:
1. 數據包到達網路介面,比如 eth0。
2. 進入 raw 表的 PREROUTING 鏈,這個鏈的作用是趕在連接跟蹤之前處理數據包。
3. 如果進行了連接跟蹤,在此處理。
4. 進入 mangle 表的 PREROUTING 鏈,在此可以修改數據包,比如 TOS 等。
5. 進入 nat 表的 PREROUTING 鏈,可以在此做DNAT,但不要做過濾。
6. 決定路由,看是交給本地主機還是轉發給其它主機。

到了這里我們就得分兩種不同的情況進行討論了,一種情況就是數據包要轉發給其它主機,這時候它會依次經過:
7. 進入 mangle 表的 FORWARD 鏈,這里也比較特殊,這是在第一次路由決定之後,在進行最後的路由決定之前,我們仍然可以對數據包進行某些修改。
8. 進入 filter 表的 FORWARD 鏈,在這里我們可以對所有轉發的數據包進行過濾。需要注意的是:經過這里的數據包是轉發的,方向是雙向的。
9. 進入 mangle 表的 POSTROUTING 鏈,到這里已經做完了所有的路由決定,但數據包仍然在本地主機,我們還可以進行某些修改。
10. 進入 nat 表的 POSTROUTING 鏈,在這里一般都是用來做 SNAT ,不要在這里進行過濾。
11. 進入出去的網路介面。完畢。

❻ linux中iptables防火牆怎麼設置

Linux系統內核內建了netfilter防火牆機制。Netfilter(數據包過濾機制),所謂的數據包過濾,就是分析進入主機的網路數據包,將數據包的頭部數據提取出來進行分析,以決該連接為放行或阻擋的機制。Netfilter提供了iptables這個程序來作為防火牆數據包過濾的命令。Netfilter是內建的,效率非常高。
我們可以通過iptables命令來設置netfilter的過濾機制。
iptables里有3張表:
> Filter(過濾器),進入Linux本機的數據包有關,是默認的表。
> NAT(地址轉換),與Linux本機無關,主要與Linux主機後的區域網內計算機相關。
> Mangle(破壞者),這個表格主要是與特殊的數據包的路由標志有關(通常不用涉及到這個表的修改,對這個表的修改破壞性很大,慎改之)。
每張表裡都還有多條鏈:

Filter:INPUT, OUTPUT, FORWARD
NAT:PREROUTING, POSTROUTING, OUTPUT
Mangle:PREROUTING, OUTPUT, INPUT, FORWARD
iptables命令的使用
基本格式:iptables [-t table] -CMD chain CRETIRIA -j ACTION
-t table:3張表中的其中一種filter, nat, mangle,如果沒有指定,默認是filter。
CMD:操作命令。查看、添加、替換、刪除等。
chain:鏈。指定是對表中的哪條鏈進行操作,如filter表中的INPUT鏈。
CRETIRIA:匹配模式。對要過濾的數據包進行描述
ACTION:操作。接受、拒絕、丟棄等。
查看

格式:iptables [-t table] -L [-nv]
修改

添加
格式:iptables [-t table] -A chain CRETIRIA -j ACTION
將新規則加入到表table(默認filter)的chain鏈的最後位置

插入

格式:iptables [-t table] -I chain pos CRETIRIA -j ACTION
將新規則插入到table表(默認filter)chain鏈的pos位置。原來之後的規則都往後推一位。pos的有效范圍為:1 ~ num+1
替換

格式:iptables [-t table] -R chain pos CRETIRIA -j ACTION
用新規則替換table表(默認filter)chain鏈的pos位置的規則。pos的有效范圍為:1 ~ num
刪除

格式:iptables [-t table] -D chain pos
刪除table表(默認filter)chain鏈的pos位置的規則。pos的有效范圍為:1 ~ num
包匹配(CRETIRIA)

上面沒有介紹CRETIRIA的規則,在這小節里詳細介紹。包匹配就是用於描述需要過濾的數據包包頭特殊的欄位。
指定網口:

-i :數據包所進入的那個網路介面,例如 eth0、lo等,需與INPUT鏈配合
-o: 數據包所傳出的那麼網路介面,需與OUTPUT鏈配合
指定協議:

-p:tcp, udp, icmp或all
指定IP網路:
-s:來源網路。可以是IP或網路
IP: 192.168.0.100
網路: 192.168.0.0/24 或 192.168.0.0/255.255.255.0 均可
可以在前加 ! 表示取反
-d:目標網格。同 -s
指定埠:
--sport:指定來源埠。可以是單個埠,還可以是連續的埠,例如:1024:65535。
--dport:指定目標埠。同--sport
注意:要指定了tcp或udp協議才會有效。
指定MAC地址:
-m mac --mac-source aa:bb:cc:dd:ee:ff
指定狀態:
-m state --state STATUS
STATUS可以是:
> INVALID,無效包
> ESTABLISHED,已經連接成功的連接狀態
> NEW,想要新立連接的數據包
> RELATED,這個數據包與主機發送出去的數據包有關,(最常用)
例如:只要已建立連接或與已發出請求相關的數據包就予以通過,不合法數據包就丟棄
-m state --state RELATED,ESTABLISHED
ICMP數據比對

ping操作發送的是ICMP包,如果不想被ping到,就可以拒絕。
--icmp-type TYPE
TYPE如下:
8 echo-request(請求)
0 echo-reply(響應)

注意:需要與 -p icmp 配合使用。

操作(ACTION)

DROP,丟棄
ACCEPT,接受
REJECT,拒絕
LOG,跟蹤記錄,將訪問記錄寫入 /var/log/messages

保存配置

將新設置的規則保存到文件
格式:iptables-save [-t table]
將當前的配置保存到 /etc/sysconfig/iptables

其它

格式:iptables [-t table] [-FXZ]
-F :請除所有的已制訂的規則
-X :除掉所有用戶「自定義」的chain
-Z :將所有的統計值清0

❼ 在linux 下如何設置iptables 防火牆

Linux系統內核內建了netfilter防火牆機制。Netfilter(數據包過濾機制),所謂的數據包過濾,就是分析進入主機的網路數據包,將數據包的頭部數據提取出來進行分析,以決該連接為放行或阻擋的機制。Netfilter提供了iptables這個程序來作為防火牆數據包過濾的命令。Netfilter是內建的,效率非常高。
我們可以通過iptables命令來設置netfilter的過濾機制。
iptables里有3張表:
> Filter(過濾器),進入Linux本機的數據包有關,是默認的表。
> NAT(地址轉換),與Linux本機無關,主要與Linux主機後的區域網內計算機相關。
> Mangle(破壞者),這個表格主要是與特殊的數據包的路由標志有關(通常不用涉及到這個表的修改,對這個表的修改破壞性很大,慎改之)。
每張表裡都還有多條鏈:

Filter:INPUT, OUTPUT, FORWARD
NAT:PREROUTING, POSTROUTING, OUTPUT
Mangle:PREROUTING, OUTPUT, INPUT, FORWARD
iptables命令的使用
基本格式:iptables [-t table] -CMD chain CRETIRIA -j ACTION
-t table:3張表中的其中一種filter, nat, mangle,如果沒有指定,默認是filter。
CMD:操作命令。查看、添加、替換、刪除等。
chain:鏈。指定是對表中的哪條鏈進行操作,如filter表中的INPUT鏈。
CRETIRIA:匹配模式。對要過濾的數據包進行描述
ACTION:操作。接受、拒絕、丟棄等。
查看

格式:iptables [-t table] -L [-nv]
修改

添加
格式:iptables [-t table] -A chain CRETIRIA -j ACTION
將新規則加入到表table(默認filter)的chain鏈的最後位置

插入

格式:iptables [-t table] -I chain pos CRETIRIA -j ACTION
將新規則插入到table表(默認filter)chain鏈的pos位置。原來之後的規則都往後推一位。pos的有效范圍為:1 ~ num+1
替換

格式:iptables [-t table] -R chain pos CRETIRIA -j ACTION
用新規則替換table表(默認filter)chain鏈的pos位置的規則。pos的有效范圍為:1 ~ num
刪除

格式:iptables [-t table] -D chain pos
刪除table表(默認filter)chain鏈的pos位置的規則。pos的有效范圍為:1 ~ num
包匹配(CRETIRIA)

上面沒有介紹CRETIRIA的規則,在這小節里詳細介紹。包匹配就是用於描述需要過濾的數據包包頭特殊的欄位。
指定網口:

-i :數據包所進入的那個網路介面,例如 eth0、lo等,需與INPUT鏈配合
-o: 數據包所傳出的那麼網路介面,需與OUTPUT鏈配合
指定協議:

-p:tcp, udp, icmp或all
指定IP網路:
-s:來源網路。可以是IP或網路
IP: 192.168.0.100
網路: 192.168.0.0/24 或 192.168.0.0/255.255.255.0 均可
可以在前加 ! 表示取反
-d:目標網格。同 -s
指定埠:
--sport:指定來源埠。可以是單個埠,還可以是連續的埠,例如:1024:65535。
--dport:指定目標埠。同--sport
注意:要指定了tcp或udp協議才會有效。
指定MAC地址:
-m mac --mac-source aa:bb:cc:dd:ee:ff
指定狀態:
-m state --state STATUS
STATUS可以是:
> INVALID,無效包
> ESTABLISHED,已經連接成功的連接狀態
> NEW,想要新立連接的數據包
> RELATED,這個數據包與主機發送出去的數據包有關,(最常用)
例如:只要已建立連接或與已發出請求相關的數據包就予以通過,不合法數據包就丟棄
-m state --state RELATED,ESTABLISHED
ICMP數據比對

ping操作發送的是ICMP包,如果不想被ping到,就可以拒絕。
--icmp-type TYPE
TYPE如下:
8 echo-request(請求)
0 echo-reply(響應)

注意:需要與 -p icmp 配合使用。

操作(ACTION)

DROP,丟棄
ACCEPT,接受
REJECT,拒絕
LOG,跟蹤記錄,將訪問記錄寫入 /var/log/messages

保存配置

將新設置的規則保存到文件
格式:iptables-save [-t table]
將當前的配置保存到 /etc/sysconfig/iptables

其它

格式:iptables [-t table] [-FXZ]
-F :請除所有的已制訂的規則
-X :除掉所有用戶「自定義」的chain
-Z :將所有的統計值清0

❽ iptables通過規則對數據包進行匹配

數據包有各種信息。規則過濾指定信息並做出操作。這就是匹配

❾ 怎麼用iptables丟棄所有的數據包

iptables -P INPUT DROP

❿ iptables命令詳解是什麼

禁止進入本機的,源地址為所有,目的地址為所有,目的埠為TCP埠13,的數據包。

iptables--靜態防火牆。iptables是復雜的,它集成到linux內核中。用戶通過iptables,可以對進出你的計算機的數據包進行過濾。通過iptables命令設置規則,來把守計算機網路——哪些數據允許通過,哪些不能通過,哪些通過的數據進行記錄(log)。

(10)iptables過濾數據包擴展閱讀:

iptables傳輸數據包的過程

① 當一個數據包進入網卡時,它首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉送出去。

② 如果數據包就是進入本機的,它就會沿著圖向下移動,到達INPUT鏈。數據包到了INPUT鏈後,任何進程都會收到它。本機上運行的程序可以發送數據包,這些數據包會經過OUTPUT鏈,然後到達POSTROUTING鏈輸出。

閱讀全文

與iptables過濾數據包相關的資料

熱點內容
空氣凈化器都有什麼作用 瀏覽:22
底燒瓶蒸餾燒瓶 瀏覽:795
用什麼樣的凈水器好 瀏覽:122
什麼工廠產生硫酸廢水 瀏覽:25
阿克薩納有水垢 瀏覽:130
凈水機濾芯什麼材料最好 瀏覽:338
dna在蒸餾水中易溶解 瀏覽:181
變頻器低頻轉如向提升 瀏覽:930
換濾芯怎麼用喇叭在農村叫 瀏覽:403
飲水機過濾桶介面怎麼安裝 瀏覽:953
酚醛樹脂粉塵爆炸極限 瀏覽:179
影響工業廢水污染物種類的因素 瀏覽:379
探岳330pro車載空氣凈化器怎麼使用 瀏覽:815
大眾汽車怎麼換機油濾芯 瀏覽:139
工業廢水能委託污水廠處理嗎 瀏覽:104
豬糞污水除臭劑 瀏覽:59
污水消毒 瀏覽:687
純凈水桶為什麼會發霉 瀏覽:867
常壓過濾圖解 瀏覽:865
車載空氣凈化器過濾網多久換一次 瀏覽:800