?當前我行科技發(fā)展迅猛,各種新技術、新架構不斷出現(xiàn),防火墻的安全隔離作為數(shù)據中心內部安全管控的必要手段,一方面要保障數(shù)據中心安全穩(wěn)定運行,另一方面也要以快捷、穩(wěn)定的方式支持應用系統(tǒng)發(fā)展,進而賦能我行業(yè)務高速發(fā)展。?
在應用層協(xié)議中,部分協(xié)議有多個通道用于信息交互,例如FTP、SIP、SQLNET等,類似通信網中的“七號信令”。這種多通道的協(xié)議首先需要建立控制通道,然后在控制通道中協(xié)商數(shù)據通道的地址和端口,根據協(xié)商結果臨時創(chuàng)建一個或多個數(shù)據通道,使用的端口通常不能預先確定,同時數(shù)據通道連接建立的方向也不能預先確定,防火墻的安全策略(Policy)和網絡地址轉換規(guī)則(NAT)無法準確描述這些數(shù)據通道。因此這種多通道協(xié)議在經過防火墻時往往會出現(xiàn)控制通道可以建立連接,數(shù)據通道不能完整建立連接,或沒有反向策略,會導致數(shù)據通道通信失敗。對于多通道的應用層協(xié)議,由于防火墻無法檢測上層協(xié)商的數(shù)據通道端口,而且也不能提前于應用預先知道數(shù)據通道的端口,更無法配置適當?shù)陌踩呗浴?/p>
(資料圖)
另外在NAT的應用場景中,防火墻的NAT功能僅對IP網絡層報文的報文頭進行IP地址的識別和轉換,對于應用層協(xié)商過程中報文載荷攜帶的地址信息無法進行識別和轉換,因此在NAT的應用場景中,多通道的協(xié)議的數(shù)據通道也不能建立。
ALG(Application Level Gateway)全稱應用網關,ALG技術可以識別典型多通道應用協(xié)議IP報文數(shù)據載荷中攜帶的地址和端口信息,結合嚴格安全策略控制特性可支持動態(tài)通道的檢測功能,以及對應用層的狀態(tài)檢測功能:多通道協(xié)議的報文交互過程中協(xié)商動態(tài)通道的地址和端口,在安全訪問策略的控制下,可以通過開啟pinhole來完成數(shù)據通道的連接。
防火墻通過Policy使網絡安全和可控,而防火墻的Policy和NAT規(guī)則只能對傳輸層的控制做靜態(tài)的描述,卻不能對應用層做控制描述。傳輸層只是應用層信息傳輸?shù)木W絡通道(TCP/IP連接),許多應用使用知名端口做控制連接,而數(shù)據傳輸使用動態(tài)、臨時協(xié)商建立起來的動態(tài)連接,不是預先確定的,防火墻無法準確描述這些動態(tài)連接,能否穿越防火墻就不確定。
(1)ALG通過以下手段解決應用層動態(tài)連接穿越防火墻問題
1)提供動態(tài)連接訪問外網所需的外網地址和端口以及地址端口轉換關系;
2) pinhole對動態(tài)建立的session進行處理,確保連接建立成功。
(2)ALG模塊定義了一個與應用層動態(tài)連接相對應的pinhole對象來為動態(tài)連接在防火墻中建session,用來實現(xiàn)防火墻穿越。pinhole描述了動態(tài)連接的session信息、外網地址和端口資源,但pinhole不是session。
(3)防火墻工作處理流程
防火墻需要應用網關去分析應用層的內容,如果應用層要協(xié)商和發(fā)起數(shù)據連接,那么應用層將要建立的連接用expect flow描述,將expect flow用作參數(shù)調用相應的ALG APIs生成和安裝pinhole。pinhole生成后,有數(shù)據連接所需的外網地址和端口,必要時應用代理修改應用的內容,轉換協(xié)商的地址和端口。
數(shù)據連接發(fā)起報文到達防火墻的時候,會先匹配pinhole,然后從pinhole建session。如果pinhole沒有匹配上,則匹配Policy建session。
在主動模式下,F(xiàn)TP客戶端從任何非特殊端口(例如源端口N=1024)連接到FTP服務器-port 21的命令端口。然后客戶端在N+1(N+1=1025)端口監(jiān)控,通過N+1(N+1=1025)端口向FTP服務器發(fā)送命令(PORT=1025)。服務器使用源端口20連接到FTP客戶端在本地指定的數(shù)據端口(1025)。交互過程如下:
控制連接:客戶端>1024端口—>服務器21端口
數(shù)據連接:客戶端>1025端口<—服務器20端口
圖1
在被動模式下,控制通道和數(shù)據通道都由客戶端發(fā)起。當打開一個FTP連接時,F(xiàn)TP客戶端打開兩個任意的非特權本地端口(N=1024和N+1=1025)。第一個端口連接到服務器的端口21,但與主動模式下的文件傳輸協(xié)議不同,客戶端不會提交port命令并允許服務器來連接其數(shù)據端口,而是提交PASV命令。因此,服務器將開放一個任意的非特定端口(P=1034),并向客戶端發(fā)送端口PASV命令。然后客戶端啟動從本地端口N +1到服務器端口P的連接,以傳輸數(shù)據。交互過程如下:
控制連接:客戶端>1024端口—>服務器21端口
數(shù)據連接:客戶端>1025端口—>服務器1034端口
圖2
FTP 客戶端主動模式下穿越防火墻的過程可以分為4步,詳細過程如下:
圖3
?控制通道session新建
防火墻收到從客戶端到服務器的首包會新建session。因為此時系統(tǒng)中沒有pinhole,所以會跳過pinhole查找過程。然后查找Policy,在防火墻配置了Policy允許客戶端訪問FTP服務,所以能匹配到Policy,新建控制session。
?控制連接報文解析
FTP主動模式下載文件時,會先發(fā)送PORT命令,其格式為:PORT h1,h2,h3,h4,p1,p2\r\n。防火墻解析到PORT命令時,新建pinhole。如果當前session有SNAT,修改PORT命令中的內容為SNAT后的IP和端口。將報文內容PORT 192,168,1,2,67,131\r\n修改為PORT 192,168,2,1,4,2\r\n,新建圖中pinhole。
?數(shù)據session新建
FTP主動模式的數(shù)據連接由服務器主動發(fā)起。防火墻收到數(shù)據連接首包時,同樣進入新建session流程。此時系統(tǒng)中有pinhole,會先查找pinhole。匹配到pinhole,新建數(shù)據session。根據FTP協(xié)議的特點,每次數(shù)據傳輸都會重新發(fā)送PORT命令,每次數(shù)據傳輸使用的端口號也不同,所以FTP協(xié)議的pinhole在查找到之后就會刪除。
?數(shù)據連接報文處理
FTP數(shù)據連接報文ALG不需要處理。數(shù)據傳輸過程中,數(shù)據session的計時器會不斷刷新。直到數(shù)據傳輸結束,四次揮手斷開連接,數(shù)據session拆除。
FTP 客戶端被動模式下穿越防火墻的過程可以分為4步,詳細過程如下:
圖4
?控制session新建
防火墻收到從客戶端到服務器的首包,新建session。因為此時系統(tǒng)中沒有pinhole,所以會跳過pinhole查找過程,繼而查找Policy。在防火墻配置了Policy允許客戶端訪問FTP服務,所以能匹配到Policy,新建控制session。
?控制連接報文解析
FTP客戶端使用被動模式下載文件時,首先發(fā)送PASV命令,服務器收到PASV命令報文后,選用臨時端口作為數(shù)據連接端口,并向客戶端返回227響應碼,報文格式為:227 Entering Passive Mode. h1,h2,h3,h4,p1,p2\r\n。防火墻解析到227響應報文后,如果當前session有DNAT,修改報文中的IP和端口,并新建pinhole。
?數(shù)據session新建
FTP被動模式的數(shù)據連接由客戶端發(fā)起。防火墻收到數(shù)據連接首包時,同樣進入新建session流程。此時系統(tǒng)中有pinhole,會先查找pinhole。匹配到pinhole,新建數(shù)據session。
?數(shù)據連接報文處理
FTP數(shù)據連接報文,ALG無需處理。數(shù)據傳輸過程中,數(shù)據session的計時器會不斷刷新。直到數(shù)據傳輸結束,四次揮手斷開連接,數(shù)據session拆除。
SIP是一種應用層控制協(xié)議,用于建立、修改和終止雙方或多方多媒體會話,應用在VoIP、多媒體分發(fā)、多媒體會議領域。SIP協(xié)議棧如圖所示。SIP協(xié)議通信包括控制信令(signaling)和媒體數(shù)據兩個信道:控制信令信道用于客戶端和服務器之間的請求和響應消息,傳輸層基于TCP或者UDP,服務器使用端口5060;媒體數(shù)據信道用于傳輸音視頻數(shù)據,傳輸層基于UDP,使用動態(tài)端口。
表1
SIP協(xié)議在網絡中的實體包括兩種:SIP用戶代理(User Agent)和SIP服務器。SIP用戶代理是終端用戶設備,如 SIP 電話機、SIP客戶端軟件等,用于發(fā)送SIP請求或者接收到請求后進行響應。SIP服務器主要進行請求轉發(fā)、接收注冊請求和提供定位服務。SIP VoIP典型部署如圖所示:企業(yè)內網部署有SIP服務器和SIP終端Phone B,Phone B和遠程SIP終端Phone A之間可以通過SIP協(xié)議進行網絡電話。
圖5
SIP消息分為請求消息和響應消息兩種類型。下面是一個呼叫請求消息的實例:
圖6
可以看到,SIP消息包括三部分:起始行、消息頭和可選的消息體。起始行包括消息類型、請求URI和SIP版本號。常見的消息類型包括INVITE、ACK、OPTIONS、BYE、 CANCEL、REGISTER,其作用見下表所示:
表2
請求URI表示請求的用戶或者服務的地址信息。SIP版本號,即所使用的SIP協(xié)議的版本號。
SIP消息頭部包含多個字段,其含義如下表所示:
表3
一個響應消息的實例如下所示:
圖7
響應消息與請求消息的不同之處是初始行是狀態(tài)碼。狀態(tài)碼由3位整數(shù)組成,第一位用于表示響應類型,后兩位用于對響應進一步解釋。各響應碼類型的含義如下表所示:
表4
上述對SIP協(xié)議的工作過程進行了簡單的介紹,下面以典型部署為例介紹SIP協(xié)議如何穿越防火墻。假設SIP服務器所在網段為192.168.2.0/24,PhoneA所在的網段為192.168.100.0/24。SIP服務器的IP地址為192.168.2.4,在防火墻配置了DNAT,對外的地址是192.168.100.4。Phone B的IP地址為192.168.2.3,對外的IP地址為192.168.100.3。Phone A的IP地址為192.168.100.2。
條件:防火墻配置策略允許SIP服務流量通過
下面分別介紹SIP注冊以及外網SIP終端Phone A呼叫內網終端Phone B的流程和防火墻SIP ALG的實現(xiàn)。
SIP協(xié)議提供地址發(fā)現(xiàn)的能力。當一個用戶代理想要建立會話時,將會話請求發(fā)送到代理服務器。服務器查詢注冊信息,得到另一方的地址信息,并將請求轉發(fā)到對應的地址。
注冊請求消息用于用戶代理將當前地址信息發(fā)送到服務器,Phone A注冊報文格式如下所示,其中Contact字段攜帶了Phone A當前的地址。
圖8
注冊報文的處理流程如下圖所示。防火墻在收到這個注冊報文時,也會生成一個綁定關系,即記錄Phone A的地址信息192.168.100.2:5060生成一個pinhole,用于其他實體向Phone A發(fā)送的會話請求消息能通過防火墻。根據NAT配置修改頭部的各個字段,例如在本例中,SIP server在防火墻配置有DNAT,將初始行的請求URI地址由192.168.100.4修改為192.168.2.4。
圖9
Phone A呼叫Phone B的報文交互流程如下圖所示:
圖10
用戶在Phone A撥號222呼叫Phone B。此時Phone A發(fā)送INVITE請求消息到SIP server。防火墻收到INVITTE報文,解析其中的c和m字段,本例中c= IN IP4 192.168.100.2,m=audio 5000 RTP。新建pinhole,目的地址為192.168.100.2:5000。每一個RTP通道有一個對應的RTCP通道,通信端口是RTP端口號加1,所以會再為RTCP通道建一個pinhole,目的地址為192.168.100.2:5001。然后根據當前session的NAT配置修改頭部字段中的IP地址,本例中SIP server在防火墻配置有DNAT,將初始行的請求URI地址由192.168.100.4修改為192.168.2.4。
SIP server接收到INVITE請求消息,會先返回一個100 tring響應消息,表示消息正在處理。之后根據電話號碼222查詢注冊信息數(shù)據庫,找到Phone B當前地址,將INVITE請求消息轉發(fā)到Phone B。
Phone B接收到INVITE請求消息,開始響鈴,并返回180 ring響應消息到SIP服務器。SIP服務器轉發(fā)180 ring響應消息到Phone A,提示用戶正在響鈴。當Phone B電話被接起,發(fā)送200 ok響應消息。200 ok響應消息同樣由SIP服務器轉發(fā)到Phone A。防火墻解析到200 oK響應消息時,同樣解析其中的消息體,本例中200IOK響應消息的c= IN IP4 192.168.2.3,m= audio 6000 RTP/AVP,因為PhoneB對外地址是192.168.100.3,修改c字段為c= IN IP4 192.168.100.3,并為RTP信道新建pinhole:0.0.0.0:0 -> 192.168.100.3:6000。同理,將RTP端口號加1作為RTCP通道端口號,并新建pinhole:0.0.0.0:0 -> 192.168.100.3:6001。將頭部字段Record-Route從192.168.2.4修改為192.168.100.4。
Phone A接收到200 OK響應消息后,向Phone B發(fā)送ACK確認消息。因為SIP服務器向INVITE請求中插入了Record-Route字段,表示之后的請求消息也經過SIP服務器,所以Phone A發(fā)送的ACK消息經SIP服務器轉發(fā)到Phone B。ACK請求消息如下所示:
圖11
之后Phone A和Phone B之間媒體通信,防火墻會創(chuàng)建RTP和RTCP session。
通話結束,Phone A掛斷電話,發(fā)送BYE請求消息,同樣由SIP服務器轉發(fā)到Phone B。Phone B收到BYE請求消息,發(fā)送200 OK響應。至此通話結束。
NAT配置改動,會觸發(fā)SIP 信令session重新匹配NAT規(guī)則。如果不能匹配新的NAT規(guī)則,session會被拆除。對數(shù)據session無影響。
Policy配置改動,會觸發(fā)SIP 信令session重新匹配Policy。如果不能匹配新的Policy,session會被拆除。對數(shù)據session無影響。
除了FTP和SIP以外,一些VoIP 應用在進行NAT 穿越時,由于IP 地址和端口號的改變可能導致VoIP 無法正常工作,ALG 技術在此時將保證NAT 地址轉換后,VoIP 應用能夠正常通信。因此,應用層網關提供以下功能:
?在嚴格的安全策略規(guī)則下,利用應用層網關 ALG 技術,保證多通道應用程序正常的通信,如FTP、TFTP、PPTP、RTSP、RSH、MSRPC、SUNRPC 和SQLNET。
?保證 VoIP 應用,如SIP 和H.323 等,在NAT 模式下的正常工作,并能夠根據安全策略要求,進行監(jiān)控和過濾。
當前我行科技發(fā)展迅猛,各種新技術、新架構不斷出現(xiàn),防火墻的安全隔離作為數(shù)據中心內部安全管控的必要手段,一方面要保障數(shù)據中心安全穩(wěn)定運行,另一方面也要以快捷、穩(wěn)定的方式支持應用系統(tǒng)發(fā)展,進而賦能我行業(yè)務高速發(fā)展。
上一篇:高度警惕!中消協(xié)發(fā)布警示
下一篇:最后一頁
凡本網注明“XXX(非汪清新聞網)提供”的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和其真實性負責。
同花順金融研究中心6月7日訊,有投資者向信濠光電提問,請問公司有無在
2023-06-08 07:31
周三早些時候,美元兌印度盧比在82 55附近保持溫和上漲,因為它突破了
2023-06-08 07:29
近日,由廣州交投集團投資建設的廣州市從化至黃埔高速公路(從埔高速)
2023-06-08 07:28
有投資者在投資者互動平臺提問:你好,請問網傳公司腔鏡手術機器人被央
2023-06-08 07:00
極目新聞
2023-06-08 07:09
每經AI快訊,有投資者在投資者互動平臺提問:貴司官網及發(fā)布的《2022年
2023-06-08 06:52
在5月15日,2022年河南“最美職工”發(fā)布儀式上,河南豫光金鉛股份有限
2023-06-08 06:49
今天,華為宣布推出自主研發(fā)的云數(shù)據庫GaussDB,這是一項重大進展,對
2023-06-08 06:40
1、祖爾特瓦雷根足球俱樂部(S V ZulteWaregem)是一個比利時足球俱樂
2023-06-08 06:51
“我們從‘統(tǒng)、控、治、管’四方面,有效解決渝中區(qū)的油煙污染問題,提
2023-06-08 06:44