第七章 防火牆和網路位址轉換

2022-03-08 19:06:45 字數 1991 閱讀 9082

寫在開頭:在我正在打這篇部落格的時候,暢暢哥跟我講了下前面寫的部落格有些需要懂的地方沒有去弄懂。想想這幾天看書,確實多了幾分急躁,時間還久著,就像暢暢哥說的「我們高屋建瓴地來」。我得沉下心來,完整的弄懂這些個內容,後面才不會慌忙。

所以清明的時間,我應該先停下進度,回顧乙個前面所學的內容,該懂的弄懂了,被忽視的重視了。在寫部落格的時候,應該給出自己的一些總結,那才是屬於自己的真正的東西。

防火牆:一種能解決限制所傳送的流量型別的路由器

最為常用的兩種防火牆是**防火牆和包過濾防火牆。

他們之間主要區別是所操作的協議棧的層次及由此決定的ip位址和埠號的使用。包過濾防火牆是乙個網際網路路由器,能夠丟棄符合(或者不符合)特定條件的資料報。

包過濾防火牆作為網際網路路由器,能夠過濾(丟棄)一些網路流量,他們一般都可以配置為丟棄或**資料報頭中符合(或者不符合)特定標準的資料報,這些標準稱為過濾器。

乙個典型的包過濾防火牆有三個網路介面的網際網路路由器:乙個「內」介面,乙個「外」介面和第三個「非軍事區」(dmz)介面。通常情況下,過濾器會全力攔截來自外網的惡意流量。但是不會限制從內網到外網的流量。

本質上是執行乙個或多個應用層閘道器的主機,它擁有很多網路介面,能夠在應用層中連線/關聯之間的特定型別的流量。

如上圖所示,內部網路外出連線在防火牆上終止,外部internet進去連線只到執行的委託**。而在中間這堵牆(**防火牆)上執行的是每個受支援的服務的應用/服務**。

這種防火牆的不便之處在於每次使用新服務,都必須安裝乙個相應的**,由此來操作發起連線。

兩大常見形式:

http**防火牆: 又稱作web**。根據上面的理解,這種**防火牆,在內網使用者看來是web伺服器,在外部**看來是web客戶端。同時,這種**也提供web快取功能,顧名思義,就是快取網頁副本,已減少網頁延遲,提高使用者體驗。

socks防火牆:可用於web之外的服務。例如:第四版為**傳輸提供基本支援;第五版增加了強大的認證,udp傳輸和ipv6定址。使用時,應用程式必須先新增socks**支援功能,同時通過配置應用程式能夠獲得**位置及其版本

本質上是一種允許在網際網路的不同地方重複使用相同的ip位址集的機制

然而,我們知道網際網路上的使用者是沒有辦法直接訪問具有私有位址的主機的。內部系統要正常的連線上網路就必須要讓nat重寫通過路由器的每個資料報包的識別資訊,這很複雜,nat必須跟蹤每個連線的狀態,貫穿多個協議層,修改ip位址的同時也要修改傳輸層的校驗碼。

講的具體點就是,它必須重寫向某一方向傳輸的資料報的源ip位址,同樣的也要重寫向另乙個方向傳輸的資料報的目的ip位址。這樣外界看來,這個資料報是來自於具有全域性路由ip的nat路由器,而不是其內部的擁有私有位址的主機。如圖所示

基本nat只執行ip位址的重寫,及改內部的私有位址為公共位址。但是它沒有辦法助於減少ip位址的數量(多少個內部主機希望訪問網際網路就必須分配多少個公共位址,如果每個主機都訪問這樣nat就沒有意義了)

napt的做法則不同,它使用傳輸層的識別符號,來確定資料報和內部主機的關係。(可以利用相同的公共位址而不同的識別符號來區分內部的主機)。內部識別符號相同的時候,napt也能夠重寫識別符號

注意這裡面有乙個問題:如果內部位址所用到的位址剛剛好是自己也想連線的公共位址,那就麻煩了。 所以我們保留了10.0.0.0/8,172.13.0.0/12,以及我們最常見的192.168.0.0/16作為私有位址範圍來使用。

yestreday you said tomorrow

網路基礎 第31章 防火牆

1 防火牆的定義 是一款具備安全防護功能網路裝置 2 主要功能 隔離網路 將需要保護的網路與不可信任網路進行隔離,隱藏資訊並進行安全防護 訪問控制 攻擊防護 冗餘設計 路由 交換 日誌記錄 虛擬專網vpn nat 注 dos攻擊 拒絕式服務攻擊 ddos 分布式拒絕式服務攻擊 區域隔離 1 內部區域...

第七章 常量和字段

字段修飾符 const 常量的值時在編譯時確定的,被視為型別的一部分,是靜態成員.會導致建立元資料.引用這個常量時會把這個值直接嵌入il 中.static 靜態字段,型別的一部分,占用的記憶體是在型別物件中分配的.型別物件時在該型別第一次被訪問到的時候載入的.對於例項欄位則是在建立例項時分配的.而且...

第七章 常量和字段

目錄 7.1 常量 7.2 字段 常量是值從不變化的符號。定義常量符號時,它的值必須能在編譯時確定。確定後,編譯器將常量值儲存到程式集元資料中。意味著只能定義編譯器可以識別的基元型別常量。然而c 也可以定義非基元型別的常量變數,前提是把值設為null。基元型別有 boolean,char,byte,...