四、防火墻-NAT Server

學習防火墻之前,對路由交換應要有一定的認識

  • NAT Server
    • 1.1.基本原理
    • 1.2.多出口場景下的NAT Server
    • 1.3.源進源出

——————————————————————————————————————————————————

NAT Server

一般對用戶提供一些可訪問的服務,這些服務器的地址一般都是私網地址,公網用戶是無法直接訪問私網地址。源NAT是對私網用戶訪問公網的報文的源地址進行轉換,而服務器對公網提供服務時,是公網用戶向私網發起訪問,方向正好反過來了。于是,NAT轉換的目標也由報文的源地址變成目的地址。針對服務器地址轉換,稱為:NAT Server(服務器映射)。

——————————————————————————————————————————————————

1.1.基本原理

結合下圖所示來看防火墻上的NAT Server是如何實現。

NAT Server也需要用到公網IP地址,與源NAT不同的是,NAT Server的公網IP地址不需要放到NAT地址池這個容器中,直接使用即可。這里假設公網IP:210.1.1.1。

在這里插入圖片描述

配置的過程如下:

[USG6000V2]nat server global 210.1.1.1 inside 192.168.100.1

按照上述配置會將服務器上所有的服務項都發布到公網,會帶來嚴重風險,華為防火墻支持配置指定協議的NAT Server,只將服務器上特定的服務項對公網發布,可以按照如下方式,將服務器上的80端口映射為9980端口供公網用戶使用。

nat server protocol tcp global 210.1.1.1 9980 inside 192.168.100.1 80

這里將80端口轉換成9980端口,而不是轉換成80端口,是因為一些地區的運營商默認會阻斷80、8000、8080端口業務,而導致業務失敗。

NAT Server配置完,也會生成server-map,但是是靜態的,不需要報文來觸發,只有配置被刪除,server-map才會清除。

在這里插入圖片描述

Server-map表項和之前一樣,都存在正向和反向。不論是正向和反向,都僅只是實現地址轉換。而不像ASPF的Server-map表項打開一個可以繞過安全策略檢查的通道。所以無論公網用戶要訪問私網服務器還是私網服務器主動訪問公網時,都需要配置安全策略。

這里有個經典的問題:NAT Server場景下,為了讓公網用戶能夠訪問私網服務器,配置安全策略時,策略的目的地址是服務器的私網地址還是公網地址?

當公網用戶通過210.1.1.1:9980訪問私網服務器時,防火墻收到報文的首包,首先查找匹配到Server-map表項,將報文的目的地址和端口轉換為192.168.100.1:80。然后根據目的地址查找路由找到出接口。根據入接口和出接口所處的區域,判斷報文在那兩個安全區域流動,進行區域安全策略檢查。

因此,配置安全策略,策略的目的地址應配置為服務器私網地址,而不是服務器對外映射的公網地址。

安全策略配置:

security-policyrule name Nat_Sersource-zone untrustdestination-zone trustdestination-address 192.168.100.0 mask 255.255.255.0service httpaction permit

報文通過安全檢查后,會建立如下會話表,并將報文轉發到私網服務器。

在這里插入圖片描述

之后服務器對公網用戶的請求做出響應,響應到達防火墻后匹配上面的會話表,防火墻將報文的源地址和源端口轉換為210.1.1.1:9980,而后發送至公網。公網用戶和私網服務器交互后續報文。防火墻都會直接根據會話表對其進行地址和端口轉換,而不會再去查找Server-map表項。

配置黑洞路由
NAT Server也需要配置黑洞路由

ip route-static 210.1.1.1 32 NULL 0

——————————————————————————————————————————————————

1.2.多出口場景下的NAT Server

與源NAT相同,NAT Server也面臨多出口問題。如圖:通過ISP1和ISP2兩條鏈路連接internet,將私網服務器提供給Internet上的用戶訪問。

在這里插入圖片描述

防火墻作為出口網關,雙出口、雙ISP接入公網時,NAT Server配置通常需要一分為二,讓一個私網服務器向兩個ISP發布兩個不同的公網地址供公網用戶訪問。一分為二方法有兩種:

方法1:將接入不同ISP的公網接口規劃在不同安全區域中,配置NAT Server時,帶上Zone參數,使同一個服務器向不同安全區域發布不同的公網地址。

在這里插入圖片描述

配置過程,假設私網服務器對ISP1發布公網地址:110.1.1.1,對ISP2發布的公網地址是210.1.1.1。

interface GigabitEthernet1/0/1            ip address 110.1.1.1 255.255.255.0
interface GigabitEthernet1/0/0ip address 210.1.1.1 255.255.255.0
interface GigabitEthernet1/0/2ip address 192.168.10.254 255.255.255.0firewall zone trustadd interface GigabitEthernet1/0/2firewall zone name ISP1set priority 10add interface GigabitEthernet1/0/1
firewall zone name ISP2 set priority 20add interface GigabitEthernet1/0/0配置帶有zone參數的NAT Servernat server  zone ISP1 protocol tcp global 110.1.1.1 9980 inside 192.168.10.2 80nat server  zone ISP2 protocol tcp global 220.1.1.1 9980 inside 192.168.10.2 80基于不同域間關系配置兩條安全策略
security-policyrule name ISP1source-zone ISP1destination-zone trustdestination-address 192.168.10.2 mask 255.255.255.255action permitrule name ISP2source-zone ISP2destination-zone trustdestination-address 192.168.10.2 mask 255.255.255.255action permit黑洞路由
ip route-static 110.1.1.1 255.255.255.255 NULL0
ip route-static 210.1.1.1 255.255.255.255 NULL0

配置完成后,防火墻會生成如下Server-map表項

在這里插入圖片描述
從Server-map表項可以看出,正向和反向表項都已生成,Internet用戶通過正向Server-map表項就可以訪問私網服務器。私網服務器通過反向Server-map也可以主動訪問Internet。

推薦在網絡規劃時,把防火墻與ISP1和ISP2兩個接口分別加入到不同的安全區域,然后規劃帶有ZONE參數的NAT SERVER功能。

如果兩個接口在同一區域如Untrust,并且現實情況不允許調整,那么還有另外一種配置方法。

方法二:配置NAT Server時候帶上No-revers參數,使同一個服務器向外發布兩個不同的公網地址。

在這里插入圖片描述

為了保證可以正常配置NAT Server功能,必須使用no-reverse參數。

nat server 0 protocol tcp global 110.1.1.1 9980 inside 192.168.10.2 www no-reverse
nat server 1 protocol tcp global 210.1.1.1 9980 inside 192.168.10.2 www no-reverse

配置完成后,防火墻生成如下Server-map表項

在這里插入圖片描述

從會話看出,只生成了正向表項,Internet上的公網用戶通過正向表項可以訪問私網服務器。但是如果私網服務器想要主動訪問Internet,因為沒有了反向表項,就必須在Trunst------Untrust域間配置源NAT策略。

如果在同一區域,不帶No-reverse參數直接配置兩條NAT SERVER命令,壓根就不能同時下發。

在這里插入圖片描述
思考下,假如這兩條命令能同時下發,分兩次下發。

在這里插入圖片描述
在這里插入圖片描述

第一條,反向表,將報文源地址192.168.10.2轉換為110.1.1.1,第二條,反向表,將源地址192.168.10.2,轉換為210.1.1.1,如果同時下發后,防火墻既可以將報文源地址由192.168.10.2轉換為110.1.1.1,又可以將源地址192.168.10.2,轉換為210.1.1.1,于是,防護墻凌亂了。這就是命令不帶No-reverse參數同時下發出現的問題。如果帶上no-reverse參數,就不會生成反向Server-map表項。

總結:
多出口下,兩個接口分別配置兩個區域,配置NAT Server時,配置zone參數,生成靜態server-map表項,包含正向和反向,能區分反向的區域。
多出口下,兩個接口同時配置一個區域,配置NAT Server時,配置no-reverse參數,生成靜態server-map表項,只包含正向,無法區分反向的區域。

——————————————————————————————————————————————————

1.3.源進源出

上面介紹了NAT Server一分為二的配置方法,根據防火墻與ISP1和ISP2相連的2個接口是否加入到不同的安全區域,選擇帶有ZONE參數或帶有No-Reverse參數來配置NAT Server。除此之外,雙出口環境中,還需要考慮兩個ISP中的公網用戶使用哪個公網地址訪問私網服務器的問題。

在這里插入圖片描述

例如:ISP1網絡中的公網用戶如果通過防火墻發布了ISP2的公網地址來訪問私網服務器,或者ISP1的公網用戶訪問服務器后,從ISP2回包的,基本就屬于繞路了。而且有時候兩個ISP之間由于利益沖突可能會存在無法互通的情況,就會導致訪問過程很慢或干脆不通。

如第一種情況,要求我們向兩個ISP中的公網用戶告知公網地址時,避免兩個ISP中的公網用戶使用非本ISP的公網地址訪問私網服務器。即對于ISP1的用戶,就讓其使用防火墻發布給ISP1的公網地址來訪問私網服務器,對于ISP2的用戶,就讓使用防火墻發布的ISP2公網地址來訪問。

第二種情況,就是上圖情況,ISP1中的公網用戶通過防火墻發布給ISP1的公網地址訪問私網服務器,報文從防火墻G1/0/1進入,私網服務器回應報文到達防火墻后,雖然匹配了會話表并進行地址轉換,但還是要根據目的地之查找路由來確定出接口。如果防火墻沒有配置到該公網用戶的明細路由,只配置了缺省路由,就可能會導致回應報文從連接ISP2的鏈路G1/0/0接口發出,該報文在ISP2的網絡中傳輸時兇多吉少,有可能會變慢,也可能干脆就不能回到公網用戶處,訪問就會中斷。

為了解決這個問題,可以在防火墻配置明細路由,讓防火墻嚴格按照ISP1和ISP2各自的公網地址來選路。但ISP1和ISP2的公網地址數量很大,配置起來不太現實。為此,防火墻提供了源進源回(或源進源出)功能,即請求報文從某條路徑進入,響應報文依然沿著同樣的路徑返回,而不用查找路由表來確定接口,保證了報文從一個接口進出。

源進源回功能在接口上配置,防火墻連接ISP1和ISP2的兩個接口上都需要配置。假設,ISP1提供的下一跳接口是:110.1.1.254,ISP2提供的下一跳接口:210.1.1.254

interface GigabitEthernet1/0/1
redirect-reverse next-hop 110.1.1.254
interface GigabitEthernet1/0/0
redirect-reverse next-hop 210.1.1.254

其他根據版本不同所使用的命令:

reverse-route nexthop 110.1.1.254gateway 110.1.1.254
reverse-route enable

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168223.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168223.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168223.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python開發運維:Django 4.2.7 使用Celery 5.3.5 完成異步和定時任務

目錄 一、實驗 1.Django使用Celery完成異步和定時任務 二、實驗 1. 如何查看Django版本 一、實驗 1.Django使用Celery完成異步和定時任務 (1)安裝Django (2)新建Django項目 (3)初始框架 (4)urls.py引用視圖views from django.contrib import admin from django.urls imp…

python之UDP網絡應用程序開發

文章目錄 版權聲明UDP網絡應用程序開發UDP初識UDP知識要點socket類的使用UDP發送數據開發流程分析UDP服務客戶端通信栗子UDP廣播發送 版權聲明 本博客的內容基于我個人學習黑馬程序員課程的學習筆記整理而成。我特此聲明,所有版權屬于黑馬程序員或相關權利人所有。…

CodeWhisperer 體驗總結

CodeWhisperer 體驗總結 | CodeWhisperer 是一款亞馬遜新推出的通用代碼生成器 可以實時進行代碼數據的提供 還可以定義安全問題 CodeWhisperer 對個人用戶是免費使用 企業用戶需要訂閱使用 亞馬遜云科技開發者社區為開發者們提供全球的開發技術資源。這里有技術文檔、開發案例…

Linux:配置Ubuntu系統的鏡像軟件下載地址

一、原理介紹 好處:從國內服務器下載APT軟件,速度快。 二、配置 我這里配置的是清華大學的鏡像服務器地址 https://mirrors.tuna.tsinghua.edu.cn/ 1、備份文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、清空sources.list ec…

廣告機/商業顯示屏_基于MT8788安卓主板方案

安卓主板在廣告機領域扮演著重要的角色。無論是在商場、車站、酒店、電梯、機場還是高鐵站,LED廣告機廣泛應用,并通過不同方式進行播放和管理。 廣告機/商業顯示屏_基于MT8788安卓主板方案 基于MT8788安卓主板方案的廣告機采用了聯發科MT8788八核芯片方案…

國標直流充電槍9孔分別啥意思?

DC:直流電源正 DC-:直流電源負 PE:接地(搭鐵)S:通訊CAN-H S-:通訊CAN-L CC1:充電連接確認 CC2:充電連接確認 A:12V A-:12V- 以上就是國標直流充電…

線上ES集群參數配置引起的業務異常案例分析

本文介紹了一次排查Elasticsearch node_concurrent_recoveries 引發的性能問題的過程。 一、故障描述 1.1 故障現象 1. 業務反饋 業務部分讀請求拋出請求超時的錯誤。 2. 故障定位信息獲取 故障開始時間 19:30左右開始 故障拋出異常日志 錯誤日志拋出timeout錯誤。 故障之前…

BTC 復興:Ordinals 帶來創新活力,BitVM 與 BitStream 相繼問世

除了備受矚目的 ETF,今年 Bitcoin 生態迎來全新的發展活力和機遇。Ordinals 協議的橫空出世,以此為基礎誕生的 BRC20 協議給整個比特幣生態帶去了一波新的能量,迎來銘文熱度高漲。而諸如 BitVM、BitStream 等新技術甫一問世,便引發…

openssl+ RSA + linux 簽名校驗開發實例(C++)

文章目錄 一、RSA簽名校驗二、RSA簽名校驗開發實例 一、RSA簽名校驗 RSA簽名校驗是一種用于驗證數字簽名的過程,它確保簽名是由擁有相應私鑰的合法實體創建的。以下是RSA簽名校驗的理論知識點: RSA密鑰對: RSA簽名使用一對公鑰和私鑰。公鑰用…

RPCS3(PlayStation 3游戲模擬器)漢化教程

RPCS3 RPCS3 是一款PlayStation 3 模擬器,可讓 Windows、Linux 或 BSD 系統的用戶運行索尼 PlayStation 3 游戲。 安裝教程 包含 Windows/Linux版本 詳細安裝漢化教程請查看文章 RPCS3(PS3模擬器)安裝及漢化教程 1.首先下載最新版 RPCS3模…

classifier-free-guidance 擴散模型引導生成

淺談擴散模型的有分類器引導和無分類器引導 - 知乎這篇文章主要比較一下擴散模型的引導生成的三種做法的區別。它們分別是用顯式分類器引導生成的做法,用隱式無分類器引導的做法和用CLIP計算跨模態間的損失來引導生成的做法。 Classifier-Guidance: Diffusion Mode……

瀏覽器是什么

瀏覽器是什么 本文簡要介紹瀏覽器的功能和組成。 瀏覽器(Web Browser)是一種用于訪問和瀏覽互聯網上的網頁和資源的軟件應用程序。它是用戶與互聯網交互的主要工具之一。 瀏覽器通過使用網絡協議(如HTTP、HTTPS等)與遠程服務器通…

從0開始學習JavaScript--JavaScript數據類型與數據結構

JavaScript作為一門動態、弱類型的腳本語言,擁有豐富的數據類型和數據結構,這些構建了語言的基礎,為開發者提供了靈活性和表達力。本文將深入探討JavaScript中的各種數據類型,包括基本數據類型和復雜數據類型,并介紹常…

nginx知識梳理及配置詳解

軟件開發全文檔獲取:點我獲取 nginx安裝 #nginx安裝 yum -y install gcc pcre-devel openssl-devel #依賴包 useradd -s /sbin/nologin nginx ./configure --prefix/usr/local/nginx #指定安裝目錄 --usernginx #指定用戶 --with-http_ss…

【數據庫篇】關系模式的表示——(1)問題的提出

1、關系模式的表示 R:表示關系的名字比如:sc選課表,student學生表。 U:表示一個關系模式的所有屬性,比如student表:U(sno,sname,sage,ssex)。 …

LedControl 庫說明文檔

LedControl 庫最初是為基于 8 位 AVR 處理器的 Arduino 板編寫的。但由于該代碼不使用處理器的任何復雜的內部功能,因此具有高度可移植性,并且應該在任何支持 和 功能的 Arduino(類似)板上pinMode()運行digitalWrite() 。 單個 M…

C練習題_3

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。 以下正確的C語言自定義標識符是() A. la B. 2a C. do D. a.12 2.在C語言中,錯…

C# 之對象與Xml序列化工具類

寫在前面 一個常用的對象與Xml序列化工具類&#xff0c;使用系統類庫System.Xml&#xff0c;序列化時需要注意只能將對象的公共字段和讀/寫屬性轉換為 XML。不轉換方法、索引器、私有字段或只讀屬性。另外XmlSerializer 類無法序列化ArrayList數組和List<T>數組。 using…

3、Qt使用windeploy工具打包可執行文件

新建一個文件夾&#xff0c;把要打包的可執行文件exe拷貝過來 點擊輸入框&#xff0c;復制一下文件夾路徑 點擊電腦左下角&#xff0c;找到Qt文件夾&#xff0c; 點擊打開 “Qt 5.12.0 for Desktop” &#xff08;我安裝的是Qt 5.12.0版本&#xff09; 輸入“cd bin”&#xff…

springsecurity5.7.x和springsecurity6.x配置文件對比

springsecurity5和springsecurity6如何要實現多種登錄方式&#xff0c;自定義登錄方式都是一樣的操作步驟&#xff0c;主要有四個步驟。 一、自定義登錄用戶實體實現springsecurity中的UserDetails接口 二、自定義登錄用戶實現類實現springsecurity中的UserDetailsService接口 …