自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iptables的基礎(chǔ)知識-iptables中的狀態(tài)檢測

運(yùn)維 系統(tǒng)運(yùn)維
iptables的基礎(chǔ)知識-iptables中的狀態(tài)檢測:iptabels被認(rèn)為是Linux中實(shí)現(xiàn)包過濾功能的第四代應(yīng)用程序。iptables包含在Linux2.4以后的內(nèi)核中。本文介紹的是iptables的基礎(chǔ)知識-iptables中的狀態(tài)檢測。

iptables狀態(tài)

  問題:什么是iptable狀態(tài)

  首先讓我們看一下服務(wù)器/客戶機(jī)的交互原理。服務(wù)器提供某特定功能的服務(wù)總是由特定的后臺程序提供的。在TCP/IP網(wǎng)絡(luò)中,常常把這個特定的服務(wù)綁定到特定的TCP或UDP端口。之后,該后臺程序就不斷地監(jiān)聽(listen)該端口,一旦接收到符合條件的客戶端請求,該服務(wù)進(jìn)行TCP握手后就同客戶端建立一個連接,響應(yīng)客戶請求。與此同時,再產(chǎn)生一個該綁定的拷貝,繼續(xù)監(jiān)聽客戶端的請求。

  舉一個例子:假設(shè)網(wǎng)絡(luò)中有一臺服務(wù)器A(IP地址為1.1.1.1)提供WWW服務(wù),另有客戶機(jī)B(2.2.2.2)、C(3.3.3.3)。首先,服務(wù)器A運(yùn)行提供WWW服務(wù)的后臺程序(比如Apache)并且把該服務(wù)綁定到端口80,也就是說,在端口80進(jìn)行監(jiān)聽。當(dāng)B發(fā)起一個連接請求時,B將打開一個大于1024的連接端口(1024內(nèi)為已定義端口),假設(shè)為1037。A在接收到請求后,用80端口與B建立連接以響應(yīng)B的請求,同時產(chǎn)生一個80端口綁定的拷貝,繼續(xù)監(jiān)聽客戶端的請求。假如A又接收到C的連接請求(設(shè)連接請求端口為1071),則A在與C建立連接的同時又產(chǎn)生一個80端口綁定的拷貝繼續(xù)監(jiān)聽客戶端的請求。如下所示,因?yàn)橄到y(tǒng)是以源地址、源端口、目的地址、目的端口來標(biāo)識一個連接的,所以在這里每個連接都是唯一的。

  服務(wù)器 客戶端

  連接1:1.1.1.1:80 <=> 2.2.2.2:1037

  連接2:1.1.1.1:80 <=> 3.3.3.3:1071

  從上邊我們可以看出,每個網(wǎng)絡(luò)連接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字對(socket pairs);協(xié)議類型、連接狀態(tài)(TCP協(xié)議)和超時時間等。iptable防火墻把這些信息叫作狀態(tài)(stateful),能夠檢測每個連接狀態(tài)的防火墻叫作狀態(tài)包過濾防火墻。它除了能夠完成簡單包過濾防火墻的包過濾工作外,還在自己的內(nèi)存中維護(hù)一個跟蹤連接狀態(tài)的表,比簡單包過濾防火墻具有更大的安全性。這連接跟蹤的表是/proc/net/ip_conntrack(conntrack就是connection tracking 的首字母縮寫),能容納多少記錄是被一個變量控制的。默認(rèn)值取決于你的內(nèi)存大小,128MB可以包含8192條目錄,256MB是16376條。你也可以在/proc/sys/net/ipv4/ip_conntrack_max里查看、設(shè)置。

  注意:必須要加載ip_conntrack模塊后才可以看到/proc/net/ip_conntrack表??梢杂胢odprobe ip_conntrack來加載。

  每一種特定的服務(wù)都有自己特定的端口,一般說來小于1024的端口多為服務(wù)器保留端口,這些端口分配給眾所周知的服務(wù)(如WWW、FTP等等),從512到1024的端口通常保留給特殊的UNIX TCP/IP應(yīng)用程序,具體情況請參考/etc/services文件或RFC1700。

  iptables中的狀態(tài)檢測功能是由state選項(xiàng)來實(shí)現(xiàn)iptable的。對這個選項(xiàng),在iptables的手冊頁中有以下描述:

  state

  這個模塊能夠跟蹤分組的連接狀態(tài)(即狀態(tài)檢測)。

  格式:--state XXXXX

  這里,state是一個用逗號分割的列表,表示要匹配的連接狀態(tài)。

  在iptables中有四種狀態(tài):NEW,ESTABLISHED,RELATED,INVALID。

  NEW,表示這個分組需要發(fā)起一個連接,或者說,分組對應(yīng)的連接在兩個方向上都沒有進(jìn)行過分組傳輸。NEW說明這個包是我們看到的第一個包。意思就是,這是conntrack模塊看到的某個連接第一個包,它即將被匹配了。比如,我們看到一個SYN包,是我們所留意的連接的第一個包,就要匹配它。第一個包也可能不是SYN包,但它仍會被認(rèn)為是NEW狀態(tài)。比如一個特意發(fā)出的探測包,可能只有RST位,但仍然是NEW。

  ESTABLISHED,表示分組對應(yīng)的連接已經(jīng)進(jìn)行了雙向的分組傳輸,也就是說連接已經(jīng)建立,而且會繼續(xù)匹配這個連接的包。處于ESTABLISHED狀態(tài)的連接是非常容易理解的。只要發(fā)送并接到應(yīng)答,連接就是ESTABLISHED的了。一個連接要從NEW變?yōu)镋STABLISHED,只需要接到應(yīng)答包即可,不管這個包是發(fā)往防火墻的,還是要由防火墻轉(zhuǎn)發(fā)的。ICMP的錯誤和重定向等信息包也被看作是ESTABLISHED,只要它們是我們所發(fā)出的信息的應(yīng)答。

  RELATED,表示分組要發(fā)起一個新的連接,但是這個連接和一個現(xiàn)有的連接有關(guān),例如:FTP的數(shù)據(jù)傳輸連接和控制連接之間就是RELATED關(guān)系。RELATED是個比較麻煩的狀態(tài)。當(dāng)一個連接和某個已處于ESTABLISHED狀態(tài)的連接有關(guān)系時,就被認(rèn)為是RELATED的了。換句話說,一個連接要想是RELATED的,首先要有一個ESTABLISHED的連接。這個ESTABLISHED連接再產(chǎn)生一個主連接之外的連接,這個新的連接就是RELATED的了,當(dāng)然前提是conntrack模塊要能理解RELATED。ftp是個很好的例子,F(xiàn)TP-data連接就是和FTP-control有RELATED的。還有其他的例子,

  INVAILD,表示分組對應(yīng)的連接是未知的,說明數(shù)據(jù)包不能被識別屬于哪個連接或沒有任何狀態(tài)。有幾個原因可以產(chǎn)生這種情況,比如,內(nèi)存溢出,收到不知屬于哪個連接的ICMP錯誤信息。一般地,我們DROP這個狀態(tài)的任何東西。

  這些狀態(tài)可以一起使用,以便匹配數(shù)據(jù)包。這可以使我們的防火墻非常強(qiáng)壯和有效。以前,我們經(jīng)常打開1024以上的所有端口來放行應(yīng)答的數(shù)據(jù)。現(xiàn)在,有了狀態(tài)機(jī)制,就不需再這樣了。因?yàn)槲覀兛梢灾婚_放那些有應(yīng)答數(shù)據(jù)的端口,其他的都可以關(guān)閉。這樣就安全多了。

  上一節(jié):iptables的基礎(chǔ)知識-防火墻的介紹。下一節(jié):iptables中TCP的三次握手

【編輯推薦】

IPtables防火墻使用技巧(超實(shí)用)

Linux下Iptables端口轉(zhuǎn)發(fā)功能的解決

四種NAT的iptables實(shí)現(xiàn)

責(zé)任編輯:zhaolei 來源: netren
相關(guān)推薦

2011-03-16 11:17:56

IptablesICMP

2011-03-18 09:26:13

Iptables規(guī)則

2011-03-16 11:15:12

2011-03-18 08:52:23

Iptables

2011-03-18 09:26:14

iptableslimit

2011-03-16 11:06:55

Iptables防火墻

2011-03-18 09:26:13

IptablesTOS

2011-08-22 10:52:30

iptables狀態(tài)

2023-07-14 15:10:17

PythonAsyncIO庫

2011-03-14 14:40:11

iptables編譯

2023-07-04 07:31:06

MapReduce數(shù)據(jù)處理編程模型

2013-10-22 15:48:35

2021-11-05 15:31:01

UbuntuLinux

2011-03-16 09:05:34

iptablesnat

2013-03-27 15:56:05

Android開發(fā)Andriod繪圖

2011-03-16 14:55:36

關(guān)閉iptables

2011-03-16 14:38:55

iptables命令

2011-11-04 17:26:12

2011-03-15 09:59:54

2011-03-15 09:59:54

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號