導航:首頁 > 凈水問答 > 防火牆包過濾實驗

防火牆包過濾實驗

發布時間:2023-02-02 14:41:43

A. 關於Linux防火牆的包過濾功能設置(filter表)

iptables
你可以查看iptables -help
iptables -L查看當前規則
iptables -F清空。
很多
看你具體是要干什麼了。

B. 包過濾防火牆的基本過程

下面做個簡單的敘復述:制
(1)包過濾規則必須被包過濾設備埠存儲起來。
(2)當包到達埠時,對包報頭進行語法分析。大多數包過濾設備只檢查IP、TCP、或UDP報頭中的欄位。
(3)包過濾規則以特殊的方式存儲。應用於包的規則的順序與包過濾器規則存儲順序必須相同。
(4)若一條規則阻止包傳輸或接收,則此包便不被允許。
(5)若一條規則允許包傳輸或接收,則此包便可以被繼續處理。
(6)若包不滿足任何一條規則,則此包便被阻塞。

C. 防火牆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網站,講得更清楚一些。

D. LINUX設置包過濾防火牆

iptables -A INPUT -p tcp -s B機的源ip地址 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s B機的ip地址 --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -s B機的ip地址 --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -s C機的ip地址 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s C機的ip地址 --dport 23 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 20 -j AACEPT
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 21 -j AACEPT
iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 53 -j AACEPT
iptables -P INPUT DROP

保存成文件就可以了

E. 簡述防火牆如何進行網路數據包過濾的

數據包過濾(Packet Filtering)技術是在網路層對數據包進行選擇,選擇的依據是系統內設置的過回濾邏輯, 被稱為答訪問控製表(Access Control Table)。通過檢查數據流中每個數據包的源地址、目的地址、所用的埠號、 協議狀態等因素,或它們的組合來確定是否允許該數據包通過。
數據包過濾防火牆的缺點有二:一是非法訪問一旦突破防火牆,即可對主機上的軟體和配置漏洞進行攻擊; 二是數據包的源地址、目的地址以及IP的埠號都在數據包的頭部,很有可能被竊聽或假冒。

F. 包過濾防火牆的工作原理

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

G. 基於包過濾防火牆的原理和實現技術是怎樣的

推薦看一看 朱雁冰 寫的《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「主機不可達」是通信中發生的錯誤,那麼老實的系統可能就真的什麼也不發送了。反過來,什麼響應都沒有卻會使發起通信的系統不斷地嘗試建立連接直到應用程序或者協議棧超時,結果最終用戶只能得到一個錯誤信息。當然這種方式會讓黑客無法判斷某埠到底是關閉了還是沒有使用。

H. 簡述包過濾防火牆的工作原理

包過濾防火牆一般在路由器上實現,用以過濾用戶定義的內容,如ip地址。包過濾防火牆的專工作原理是:系統屬在網路層檢查數據包,與應用層無關。這樣系統就具有很好的傳輸性能,可擴展能力強。但是,包過濾防火牆的安全性有一定的缺陷,因為系統對應用層信息無感知,也就是說,防火牆不理解通信的內容,所以可能被黑客所攻破。
正是由於這種工作機制,包過濾防火牆存在以下缺陷:
*通信信息:包過濾防火牆只能訪問部分數據包的頭信息;
*通信和應用狀態信息:包過濾防火牆是無狀態的,所以它不可能保存來自於通信和應用的狀態信息;
*信息處理:包過濾防火牆處理信息的能力是有限的。

I. 簡述包過濾路由器防火牆的基本工作原理。

包過濾路由器防火牆是將過濾器安裝在路由器上或包過濾軟體安裝在PC機上的防版火牆。它工作在權網路層(IP),並對每個進入的IP分組使用一個規則集合。包過濾規則是基於所收到的數據包的源地址、目的地址、TCP/UDP、源埠號及目的埠號、分組出入介面、協議類型和數據包中的各種標志位等參數,與管理者預定的訪問控製表(擬定一個提供接收和服務對象的清單,一個不接受訪問或服務對象的清單)進行比較,按所定安全政策允許或拒絕訪問,決定數據是否符合預先制定的安全策略,決定數據分組的轉發或丟棄,即實施信息過濾。

閱讀全文

與防火牆包過濾實驗相關的資料

熱點內容
山東屠宰污水處理設備多少錢 瀏覽:736
鐵雨中國形象 瀏覽:344
不卡看電視的網址 瀏覽:86
房間包廂電影 瀏覽:67
青海廢水處理氨氮超標怎麼處理 瀏覽:636
混凝土污水使用記錄表 瀏覽:986
適量污水對魚類有什麼影響 瀏覽:296
瓊天電影院今日影訊 瀏覽:570
木碳燒烤爐濾芯清洗一次多少錢 瀏覽:21
一般超濾機 瀏覽:512
瑜伽老師韓國愛情電影韓國愛情電影在線觀看 瀏覽:91
沁園飲水機突然響怎麼回事 瀏覽:757
廠里的污水如何正確排放 瀏覽:498
卡迪斯凈水器缺水怎麼辦 瀏覽:381
有一部什麼電影噴奶了 瀏覽:567
污水處理廠運行管理培訓會 瀏覽:302
為什麼凈水壺出來的水都是甜的 瀏覽:540
private電影公司作品 瀏覽:266
紋理過濾負lod鎖定 瀏覽:376
韓片哪個網站 瀏覽:832