導航:首頁 > 凈水問答 > ack在數據包過濾中起到

ack在數據包過濾中起到

發布時間:2023-06-07 03:35:50

Ⅰ TCP的ACK 有什麼作用

ACK是一個對數據包的確認,當正確收到數據包後,接收端會發送一個ACk給發送端,裡面會說明對那個數據包進行確認,每個數據包里都會有一個序列號,如果收到的數據包有誤,或錯序,還會申請重發,NAK是一個否定的回答,ACK是確定回答,這樣保證數據的正確傳輸,這是TCP協議的傳輸機制,被稱為面向連接的。當然,為了提高傳輸效率,會使用到一個窗口的概念,就是說,不是每一個數據包都需要確認,雙方可以協商多少個數據包才進行確認,只要雙方遵守就可以了。

Ⅱ 包過濾防火牆

包過濾防火牆是用一個軟體查看所流經的數據包的包頭(header),由此決定整個包的命運。它可能會決定丟棄(DROP)這個包,可能會接受(ACCEPT)這個包(讓這個包通過),也可能執行其它更復雜的動作。
包過濾防火牆將對每一個接收到的包做出允許或拒絕的決定。具體地講,它針對每一個數據報的報頭,按照包過濾規則進行判定,與規則相匹配的包依據路由信息繼續轉發,否則就丟棄。包過濾是在IP層實現的,包過濾根據數據包的源IP地址、目的IP地址、協議類型(TCP包、UDP包、ICMP包)、源埠、目的埠等報頭信息及數據包傳輸方向等信息來判斷是否允許數據包通過。
包過濾也包括與服務相關的過濾,這是指基於特定的服務進行包過濾,由於絕大多數服務的監聽都駐留在特定TCP/UDP埠,因此,為阻斷所有進入特定服務的鏈接,防火牆只需將所有包含特定TCP/UDP目的埠的包丟棄即可。
包過濾防火牆的工作原理
(1)使用過濾器。數據包過濾用在內部主機和外部主機之間, 過濾系統是一台路由器或是一台主機。過濾系統根據過濾規則來決定是否讓數據包通過。用於過濾數據包的路由器被稱為過濾路由器。
數據包過濾是通過對數據包的IP頭和TCP頭或UDP頭的檢查來實現的,主要信息有:
* IP源地址
* IP目標地址
* 協議(TCP包、UDP包和ICMP包)
* TCP或UDP包的源埠
* TCP或UDP包的目標埠
* ICMP消息類型
* TCP包頭中的ACK位
* 數據包到達的埠
* 數據包出去的埠
在TCP/IP中,存在著一些標準的服務埠號,例如,HTTP的埠號為80。通過屏蔽特定的埠可以禁止特定的服務。包過濾系統可以阻塞內部主機和外部主機或另外一個網路之間的連接,例如,可以阻塞一些被視為是有敵意的或不可信的主機或網路連接到內部網路中。
(2)過濾器的實現。數據包過濾一般使用過濾路由器來實現,這種路由器與普通的路由器有所不同。
普通的路由器只檢查數據包的目標地址,並選擇一個達到目的地址的最佳路徑。它處理數據包是以目標地址為基礎的,存在著兩種可能性:若路由器可以找到一個路徑到達目標地址則發送出去;若路由器不知道如何發送數據包則通知數據包的發送者「數據包不可達」。
過濾路由器會更加仔細地檢查數據包,除了決定是否有到達目標地址的路徑外,還要決定是否應該發送數據包。「應該與否」是由路由器的過濾策略決定並強行執行的。
路由器的過濾策略主要有:
* 拒絕來自某主機或某網段的所有連接。
* 允許來自某主機或某網段的所有連接。
* 拒絕來自某主機或某網段的指定埠的連接。
* 允許來自某主機或某網段的指定埠的連接。
* 拒絕本地主機或本地網路與其它主機或其它網路的所有連接。
* 允許本地主機或本地網路與其它主機或其它網路的所有連接。
* 拒絕本地主機或本地網路與其它主機或其它網路的指定埠的連接。
* 允許本地主機或本地網路與其它主機或其它網路的指定埠的連接。
1.1.4 包過濾器操作的基本過程
下面做個簡單的敘述:
(1)包過濾規則必須被包過濾設備埠存儲起來。
(2)當包到達埠時,對包報頭進行語法分析。大多數包過濾設備只檢查IP、TCP、或UDP報頭中的欄位。
(3)包過濾規則以特殊的方式存儲。應用於包的規則的順序與包過濾器規則存儲順序必須相同。
(4)若一條規則阻止包傳輸或接收,則此包便不被允許。
(5)若一條規則允許包傳輸或接收,則此包便可以被繼續處理。
(6)若包不滿足任何一條規則,則此包便被阻塞
(1)優點:
→對於一個小型的、不太復雜的站點,包過濾比較容易實現。
→因為過濾路由器工作在IP層和TCP層,所以處理包的速度比代理伺服器快。
→過濾路由器為用戶提供了一種透明的服務,用戶不需要改變客戶端的任何應用程序,也不需要用戶學習任何新的東西。因為過濾路由器工作在IP層和TCP層,而IP層和TCP層與應用層的問題毫不相關。所以,過濾路由器有時也被稱為「包過濾網關」或「透明網關」,之所被稱為網關,是因為包過濾路由器和傳統路由器不同,它涉及到了傳輸層。
→過濾路由器在價格上一般比代理伺服器便宜。
(2)缺點:
→一些包過濾網關不支持有效的用戶認證。
→規則表很快會變得很大而且復雜,規則很難測試。隨著表的增大和復雜性的增加,規則結構出現漏洞的可能 性也會增加。
→這種防火牆最大的缺陷是它依賴一個單一的部件來保護系統。如果這個部件出現了問題,會使得網路大門敞開,而用戶其至可能還不知道。
→在一般情況下,如果外部用戶被允許訪問內部主機,則它就可以訪問內部網上的任何主機。
→包過濾防火牆只能阻止一種類型的IP欺騙,即外部主機偽裝內部主機的IP,對於外部主機偽裝外部主機的IP欺騙卻不可能阻止,而且它不能防止DNS欺騙。
雖然,包過濾防火牆有如上所述的缺點,但是在管理良好的小規模網路上,它能夠正常的發揮其作用。一般情況下,人們不單獨使用包過濾網關,而是將它和其他設備(如堡壘主機等)聯合使用。

Ⅲ 闡述數據包過濾防火牆的工作原理_______.

推薦看一看 朱雁冰 寫的《Windows防火牆與網路封包截獲技術》,上面介紹了三種分別基於用戶態和核心態下的防火牆編譯,雖然他提到的三種技術現在看來都有不足,但是是一本講解詳細的好書~~~!!

防火牆就是一種過濾塞(目前你這么理解不算錯),你可以讓你喜歡的東西通過這個塞子,別的玩意都統統過濾掉。在網路的世界裡,要由防火牆過濾的就是承載通信數據的通信包。

天下的防火牆至少都會說兩個詞:Yes或者No。直接說就是接受或者拒絕。最簡單的防火牆是乙太網橋。但幾乎沒有人會認為這種原始防火牆能管多大用。大多數防火牆採用的技術和標准可謂五花八門。這些防火牆的形式多種多樣:有的取代系統上已經裝備的TCP/IP協議棧;有的在已有的協議棧上建立自己的軟體模塊;有的乾脆就是獨立的一套操作系統。還有一些應用型的防火牆只對特定類型的網路連接提供保護(比如SMTP或者HTTP協議等)。還有一些基於硬體的防火牆產品其實應該歸入安全路由器一類。以上的產品都可以叫做防火牆,因為他們的工作方式都是一樣的:分析出入防火牆的數據包,決定放行還是把他們扔到一邊。

所有的防火牆都具有IP地址過濾功能。這項任務要檢查IP包頭,根據其IP源地址和目標地址作出放行/丟棄決定。看看下面這張圖,兩個網段之間隔了一個防火牆,防火牆的一端有台UNIX計算機,另一邊的網段則擺了台PC客戶機。

當PC客戶機向UNIX計算機發起telnet請求時,PC的telnet客戶程序就產生一個TCP包並把它傳給本地的協議棧准備發送。接下來,協議棧將這個TCP包「塞」到一個IP包里,然後通過PC機的TCP/IP棧所定義的路徑將它發送給UNIX計算機。在這個例子里,這個IP包必須經過橫在PC和UNIX計算機中的防火牆才能到達UNIX計算機。

現在我們「命令」(用專業術語來說就是配製)防火牆把所有發給UNIX計算機的數據包都給拒了,完成這項工作以後,「心腸」比較好的防火牆還會通知客戶程序一聲呢!既然發向目標的IP數據沒法轉發,那麼只有和UNIX計算機同在一個網段的用戶才能訪問UNIX計算機了。

還有一種情況,你可以命令防火牆專給那台可憐的PC機找茬,別人的數據包都讓過就它不行。這正是防火牆最基本的功能:根據IP地址做轉發判斷。但要上了大場面這種小伎倆就玩不轉了,由於黑客們可以採用IP地址欺騙技術,偽裝成合法地址的計算機就可以穿越信任這個地址的防火牆了。不過根據地址的轉發決策機制還是最基本和必需的。另外要注意的一點是,不要用DNS主機名建立過濾表,對DNS的偽造比IP地址欺騙要容易多了。

伺服器TCP/UDP 埠過濾

僅僅依靠地址進行數據過濾在實際運用中是不可行的,還有個原因就是目標主機上往往運行著多種通信服務,比方說,我們不想讓用戶採用 telnet的方式連到系統,但這絕不等於我們非得同時禁止他們使用SMTP/POP郵件伺服器吧?所以說,在地址之外我們還要對伺服器的TCP/ UDP埠進行過濾。

比如,默認的telnet服務連接埠號是23。假如我們不許PC客戶機建立對UNIX計算機(在這時我們當它是伺服器)的telnet連接,那麼我們只需命令防火牆檢查發送目標是UNIX伺服器的數據包,把其中具有23目標埠號的包過濾就行了。這樣,我們把IP地址和目標伺服器TCP/UDP埠結合起來不就可以作為過濾標准來實現相當可靠的防火牆了嗎?不,沒這么簡單。

客戶機也有TCP/UDP埠

TCP/IP是一種端對端協議,每個網路節點都具有唯一的地址。網路節點的應用層也是這樣,處於應用層的每個應用程序和服務都具有自己的對應「地址」,也就是埠號。地址和埠都具備了才能建立客戶機和伺服器的各種應用之間的有效通信聯系。比如,telnet伺服器在埠23偵聽入站連接。同時telnet客戶機也有一個埠號,否則客戶機的IP棧怎麼知道某個數據包是屬於哪個應用程序的呢?

由於歷史的原因,幾乎所有的TCP/IP客戶程序都使用大於1023的隨機分配埠號。只有UNIX計算機上的root用戶才可以訪問1024以下的埠,而這些埠還保留為伺服器上的服務所用。所以,除非我們讓所有具有大於1023埠號的數據包進入網路,否則各種網路連接都沒法正常工作。

這對防火牆而言可就麻煩了,如果阻塞入站的全部埠,那麼所有的客戶機都沒法使用網路資源。因為伺服器發出響應外部連接請求的入站(就是進入防火牆的意思)數據包都沒法經過防火牆的入站過濾。反過來,打開所有高於1023的埠就可行了嗎?也不盡然。由於很多服務使用的埠都大於1023,比如X client、基於RPC的NFS服務以及為數眾多的非UNIX IP產品等(NetWare/IP)就是這樣的。那麼讓達到1023埠標準的數據包都進入網路的話網路還能說是安全的嗎?連這些客戶程序都不敢說自己是足夠安全的。

雙向過濾

OK,咱們換個思路。我們給防火牆這樣下命令:已知服務的數據包可以進來,其他的全部擋在防火牆之外。比如,如果你知道用戶要訪問Web伺服器,那就只讓具有源埠號80的數據包進入網路:

不過新問題又出現了。首先,你怎麼知道你要訪問的伺服器具有哪些正在運行的埠號呢? 象HTTP這樣的伺服器本來就是可以任意配置的,所採用的埠也可以隨意配置。如果你這樣設置防火牆,你就沒法訪問哪些沒採用標准埠號的的網路站點了!反過來,你也沒法保證進入網路的數據包中具有埠號80的就一定來自Web伺服器。有些黑客就是利用這一點製作自己的入侵工具,並讓其運行在本機的80埠!

檢查ACK位

源地址我們不相信,源埠也信不得了,這個不得不與黑客共舞的瘋狂世界上還有什麼值得我們信任呢?還好,事情還沒到走投無路的地步。對策還是有的,不過這個辦法只能用於TCP協議。

TCP是一種可靠的通信協議,「可靠」這個詞意味著協議具有包括糾錯機制在內的一些特殊性質。為了實現其可靠性,每個TCP連接都要先經過一個「握手」過程來交換連接參數。還有,每個發送出去的包在後續的其他包被發送出去之前必須獲得一個確認響應。但並不是對每個TCP包都非要採用專門的ACK包來響應,實際上僅僅在TCP包頭上設置一個專門的位就可以完成這個功能了。所以,只要產生了響應包就要設置ACK位。連接會話的第一個包不用於確認,所以它就沒有設置ACK位,後續會話交換的TCP包就要設置ACK位了。

舉個例子,PC向遠端的Web伺服器發起一個連接,它生成一個沒有設置ACK位的連接請求包。當伺服器響應該請求時,伺服器就發回一個設置了ACK位的數據包,同時在包里標記從客戶機所收到的位元組數。然後客戶機就用自己的響應包再響應該數據包,這個數據包也設置了ACK位並標記了從伺服器收到的位元組數。通過監視ACK位,我們就可以將進入網路的數據限制在響應包的范圍之內。於是,遠程系統根本無法發起TCP連接但卻能響應收到的數據包了。

這套機制還不能算是無懈可擊,簡單地舉個例子,假設我們有台內部Web伺服器,那麼埠80就不得不被打開以便外部請求可以進入網路。還有,對UDP包而言就沒法監視ACK位了,因為UDP包壓根就沒有ACK位。還有一些TCP應用程序,比如FTP,連接就必須由這些伺服器程序自己發起。

FTP帶來的困難

一般的Internet服務對所有的通信都只使用一對埠號,FTP程序在連接期間則使用兩對埠號。第一對埠號用於FTP的「命令通道」提供登錄和執行命令的通信鏈路,而另一對埠號則用於FTP的「數據通道」提供客戶機和伺服器之間的文件傳送。

在通常的FTP會話過程中,客戶機首先向伺服器的埠21(命令通道)發送一個TCP連接請求,然後執行LOGIN、DIR等各種命令。一旦用戶請求伺服器發送數據,FTP伺服器就用其20埠 (數據通道)向客戶的數據埠發起連接。問題來了,如果伺服器向客戶機發起傳送數據的連接,那麼它就會發送沒有設置ACK位的數據包,防火牆則按照剛才的規則拒絕該數據包同時也就意味著數據傳送沒戲了。通常只有高級的、也就是夠聰明的防火牆才能看出客戶機剛才告訴伺服器的埠,然後才許可對該埠的入站連接。

UDP埠過濾

好了,現在我們回過頭來看看怎麼解決UDP問題。剛才說了,UDP包沒有ACK位所以不能進行ACK位過濾。UDP 是發出去不管的「不可靠」通信,這種類型的服務通常用於廣播、路由、多媒體等廣播形式的通信任務。NFS、DNS、WINS、NetBIOS-over-TCP/IP和 NetWare/IP都使用UDP。

看來最簡單的可行辦法就是不允許建立入站UDP連接。防火牆設置為只許轉發來自內部介面的UDP包,來自外部介面的UDP包則不轉發。現在的問題是,比方說,DNS名稱解析請求就使用UDP,如果你提供DNS服務,至少得允許一些內部請求穿越防火牆。還有IRC這樣的客戶程序也使用UDP,如果要讓你的用戶使用它,就同樣要讓他們的UDP包進入網路。我們能做的就是對那些從本地到可信任站點之間的連接進行限制。但是,什麼叫可信任!如果黑客採取地址欺騙的方法不又回到老路上去了嗎?

有些新型路由器可以通過「記憶」出站UDP包來解決這個問題:如果入站UDP包匹配最近出站UDP包的目標地址和埠號就讓它進來。如果在內存中找不到匹配的UDP包就只好拒絕它了!但是,我們如何確信產生數據包的外部主機就是內部客戶機希望通信的伺服器呢?如果黑客詐稱DNS伺服器的地址,那麼他在理論上當然可以從附著DNS的UDP埠發起攻擊。只要你允許DNS查詢和反饋包進入網路這個問題就必然存在。辦法是採用代理伺服器。

所謂代理伺服器,顧名思義就是代表你的網路和外界打交道的伺服器。代理伺服器不允許存在任何網路內外的直接連接。它本身就提供公共和專用的DNS、郵件伺服器等多種功能。代理伺服器重寫數據包而不是簡單地將其轉發了事。給人的感覺就是網路內部的主機都站在了網路的邊緣,但實際上他們都躲在代理的後面,露面的不過是代理這個假面具。

小結

IP地址可能是假的,這是由於IP協議的源路有機制所帶來的,這種機制告訴路由器不要為數據包採用正常的路徑,而是按照包頭內的路徑傳送數據包。於是黑客就可以使用系統的IP地址獲得返回的數據包。有些高級防火牆可以讓用戶禁止源路由。通常我們的網路都通過一條路徑連接ISP,然後再進入Internet。這時禁用源路由就會迫使數據包必須沿著正常的路徑返回。

還有,我們需要了解防火牆在拒絕數據包的時候還做了哪些其他工作。比如,防火牆是否向連接發起系統發回了「主機不可到達」的ICMP消息?或者防火牆真沒再做其他事?這些問題都可能存在安全隱患。ICMP「主機不可達」消息會告訴黑客「防火牆專門阻塞了某些埠」,黑客立即就可以從這個消息中聞到一點什麼氣味。如果ICMP「主機不可達」是通信中發生的錯誤,那麼老實的系統可能就真的什麼也不發送了。反過來,什麼響應都沒有卻會使發起通信的系統不斷地嘗試建立連接直到應用程序或者協議棧超時,結果最終用戶只能得到一個錯誤信息。當然這種方式會讓黑客無法判斷某埠到底是關閉了還是沒有使用。

Ⅳ 包過濾防火牆的工作原理

數據包過濾是通過對數據包的IP頭和TCP頭或UDP頭的檢查來實現的,主要信息有:
* IP源地址
* IP目標地址
* 協議(TCP包、UDP包和ICMP包)
* TCP或UDP包的源埠
* TCP或UDP包的目標埠
* ICMP消息類型
* TCP包頭中的ACK位
* 數據包到達的埠
* 數據包出去的埠
在TCP/IP中,存在著一些標準的服務埠號,例如,HTTP的埠號為80。通過屏蔽特定的埠可以禁止特定的服務。包過濾系統可以阻塞內部主機和外部主機或另外一個網路之間的連接,例如,可以阻塞一些被視為是有敵意的或不可信的主機或網路連接到內部網路中。 數據包過濾一般使用過濾路由器來實現,這種路由器與普通的路由器有所不同。
普通的路由器只檢查數據包的目標地址,並選擇一個達到目的地址的最佳路徑。它處理數據包是以目標地址為基礎的,存在著兩種可能性:若路由器可以找到一個路徑到達目標地址則發送出去;若路由器不知道如何發送數據包則通知數據包的發送者「數據包不可達」。
過濾路由器會更加仔細地檢查數據包,除了決定是否有到達目標地址的路徑外,還要決定是否應該發送數據包。「應該與否」是由路由器的過濾策略決定並強行執行的。

閱讀全文

與ack在數據包過濾中起到相關的資料

熱點內容
3m車載空氣凈化器有什麼好處 瀏覽:867
浙江農村生活污水處理設備怎麼樣 瀏覽:898
簡述工業廢水的主要特徵 瀏覽:42
花灑除垢 瀏覽:493
飲水機響聲大是什麼故障 瀏覽:197
生活中用什麼化學物質凈水 瀏覽:943
熱水器除垢劑對加熱棒有傷害嗎 瀏覽:861
超濾膜直飲機啥意思 瀏覽:90
凈化器燈一直閃是怎麼回事 瀏覽:163
凈水器提示更換濾芯什麼原理 瀏覽:186
環境保護法鑄造廠廢水排放 瀏覽:791
污水廠操作工安全生產 瀏覽:452
廢水檢測裝置 瀏覽:436
空氣濾芯製作什麼東西 瀏覽:599
樹脂標號什麼意思 瀏覽:600
甜米酒發酵好要不要蒸餾 瀏覽:622
安利車載空氣凈化器怎麼樣 瀏覽:943
寶寶不吃奶頭用吸奶器吸會回奶么 瀏覽:867
垃圾填埋廠的反滲透裝置 瀏覽:12
凈水器使用前先要放掉多少水 瀏覽:160