NAT alg 和 ASPF


NAT alg 和 ASPF

參考:https://handbye.cn/719.html

來源:https://www.jianshu.com/p/8a8eb36eef7d

 

NAT的部署已經在企業網中必不可少,當防火牆作為網絡的出口或者在網絡中充當安全網關時,內網用戶訪問外網或者外網用戶訪問內網的服務器都要經過NAT穿越。

由於防火牆的特殊性,出於安全的考慮,需要建立相應的安全策略。當防火牆檢測到這個數據包是一個首包時,就會根據相應的安全策略進行檢查,符合安全策略就給通過並生成對應的會話表項。后續數據包到達是就無須在進行安全策略的檢查,直接匹配會話表進行轉發,這樣就大大提高了轉發效率。

先上一張防火牆轉發數據的流程圖:

 
 

可以看到在生成會話表之前是先查NAT策略的,也就是查找玩NAT策略以后,再根據NAT生成會話表。

比如下方的會話表:


SIP VPN: public --> public 192.168.2.5:5060[1.1.1.1:2327] +-> 221.181.108.137:5060 

[] 中的就是NAT過后的IP地址

通常情況下,NAT只對報文中IP頭部的地址信息和TCP/UDP頭部的端口信息進行轉換,不關注報文載荷的信息。但是對於一些特殊的協議(如FTP協議),其報文載荷中也攜帶了地址或端口信息,而報文載荷中的地址或端口信息往往是由通信的雙方動態協商生產的,管理員並不能為其提前配置好相應的NAT規則。如果提供NAT功能的設備不能識別並轉換這些信息,將會影響到這些協議的正常使用。


下面以FTP報文為例說下為什么要啟用NAT alg 或者 ASPF

FTP控制層面的連接報文,使用TCP端口號21

 
 

控制層面的TCP連接端口號是攜帶在頭部的,是可以被NAT轉換的。控制層面在有NAT的環境下是可以進行連接的。

控制層面連接完成之后,進行文件傳送之前要建立數據層面的連接,這時會由client側向server側發送port消息,攜帶自己開放的數據層面連接端口號(主動模式下是這樣的,FTP還有被動模式,這里就以主動模式來說)。報文如下:

 
 

問題來了,數據層面的端口號是攜帶在報文載荷部分的,NAT只能轉換頭部信息,無法轉換載荷信息。在存在NAT穿越的場景下,數據連接就無法建立,這時看到的情況就是能夠登陸成功,但是無法顯示服務器文件列表也不能上傳和下載文件。

這時就需要用到NAT alg功能來識別載荷部分的端口信息,來做對應的NAT轉換。


FTP協議包括兩種工作模式:主動模式和被動模式。主動模式中,FTP Server主動向FTP Client發起數據連接;被動模式中,FTP Server被動接收FTP Client發起的數據連接。無論是主動模式還是被動模式,在控制連接交互報文的載荷中,都包含用於建立數據連接的IP地址和端口號信息。

如果在FTP Client和FTP Server之間部署了NAT設備,這就要求NAT設備必須能夠識別出控制連接中包含的IP地址和端口號並進行處理,否則數據連接無法成功建立,FTP協議不能正常工作。

下面以FTP協議工作在主動模式為例,介紹NAT ALG功能對FTP協議的處理過程。

如圖1所示,FTP Client位於私有網絡,FTP Server位於公共網絡。NGFW對FTP協議的報文處理過程如下:

1.FTP Client通過源NAT地址轉換后可以訪問FTP Server,與FTP Server完成FTP控制連接的TCP三次握手,並交付用戶名和密碼信息。

2.NGFW收到FTP Client發送的PORT命令報文后,將報文載荷字段中攜帶的私網地址和端口替換為公網地址和新的端口,然后發送至FTP Server。

3.NGFW收到FTP Server請求建立數據連接的報文后,替換報文的目的地址和目的端口為原始的地址和端口,然后發送至FTP Client。由此保證數據連接可以成功建立,FTP協議正常工作。

 
 

NAT ALG與ASPF的關系

差異點:

開啟ASPF功能的目的是識別多通道協議,並自動為其開放相應的安全策略。

開啟NAT ALG功能的目的是識別多通道協議,並自動轉換報文載荷中的IP地址和端口信息。

共同點:

二者使用相同的配置。開啟其中一個功能,另一功能同時生效。

其實在防火牆上二者的配置命令是同一個,對於防火牆來說對二者是沒區別的。因為NAT alg自動轉換報文載荷中的ip地址和端口信息后,防火牆沒有將其對應的安全策略放行,數據也是不能轉發的。這一安全策略是基於防火牆的server-map表實現的。

關於server-map表的詳解可以百度搜索serve-map表來了解一下。


=============== End
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM