簡介:防火墻NAT(Network Address Translation)是一種地址轉(zhuǎn)換技術(shù),支持將報文的源地址進(jìn)行轉(zhuǎn)換,也支持將報文的目的地址進(jìn)行轉(zhuǎn)換。NAT策略由轉(zhuǎn)換后的地址(地址池地址或者出接口地址)、匹配條件、動作三部分組成。其一,地址池類型包括源地址池(NAT No-PAT、NAPT、Smart NAT)和目的地址池。根據(jù)NAT轉(zhuǎn)換方式的不同,可以選擇不同類型的地址池或者出接口方式。其二,匹配條件包括源地址、目的地址、源安全區(qū)域、目的安全區(qū)域、出口、服務(wù)、時間段。根據(jù)不同的需求配置不同的匹配條件,對匹配上條件的流量進(jìn)行NAT轉(zhuǎn)換。其三、動作包括源地址轉(zhuǎn)換或者目的地址轉(zhuǎn)換。無論源地址轉(zhuǎn)換或者目的地址轉(zhuǎn)換,都可以對匹配上條件的流量進(jìn)行選擇NAT轉(zhuǎn)換或者不轉(zhuǎn)換兩種方式。本文主要介紹華為防火墻的NAT策略的配置過程。詳細(xì)內(nèi)容參考下文。
一、使用授權(quán)賬號和密碼登陸華為防火墻
二、用戶視圖
1、輸入sys進(jìn)入配置視圖(分為全局配置視圖和局部配置視圖【接口視圖】)
2、查看NAT策略
三、配置NAT策略
簡介:使用華為防火墻FW配置私網(wǎng)用戶使用公網(wǎng)地址訪問內(nèi)部服務(wù)器(源NAT+靜態(tài)目的NAT)。其配置過程為:第一步,配置接口IP地址和安全區(qū)域,完成網(wǎng)絡(luò)基本參數(shù)配置。第二步,配置安全策略,允許內(nèi)部網(wǎng)絡(luò)用戶訪問內(nèi)部服務(wù)器。第三步,配置NAT策略使用戶使用公網(wǎng)地址訪問內(nèi)部服務(wù)器。第四步,在FW上配置缺省路由,使內(nèi)網(wǎng)服務(wù)器對外提供的服務(wù)流量可以正常轉(zhuǎn)發(fā)至ISP的路由器。
1、配置接口IP地址和安全區(qū)域,完成網(wǎng)絡(luò)基本參數(shù)配置。
# 配置外網(wǎng)接口GigabitEthernet0/0/0的IP地址。
<FW> system-view
[FW] interface GigabitEthernet0/0/0
[FW-GigabitEthernet0/0/0] ip address 183.1.1.1 24
[FW-GigabitEthernet0/0/0] quit
# 配置接口GigabitEthernet0/0/1的IP地址。
[FW] interface GigabitEthernet0/0/1
[FW-GigabitEthernet0/0/1] ip address 172.17.0.1 24
[FW-GigabitEthernet0/0/1] quit
# 將接口GigabitEthernet0/0/0加入Untrust區(qū)域。
[FW] firewall zone untrust
[FW-zone-untrust] add interface GigabitEthernet0/0/0
[FW-zone-untrust] quit
# 將接口GigabitEthernet0/0/1加入DMZ區(qū)域。
[FW] firewall zone dmz
[FW-zone-dmz] add interface GigabitEthernet0/0/1
[FW-zone-dmz] quit
2、配置安全策略,允許內(nèi)部網(wǎng)絡(luò)用戶訪問內(nèi)部服務(wù)器。
#配置安全策略,允許內(nèi)部網(wǎng)絡(luò)用戶訪問內(nèi)部服務(wù)器
[FW] security-policy
[FW-policy-security] rule name policy001
[FW-policy-security-rule-policy001] source-zone dmz
[FW-policy-security-rule-policy001] destination-zone dmz
[FW-policy-security-rule-policy001] destination-address 172.17.0.0 24
[FW-policy-security-rule-policy001] action permit
[FW-policy-security-rule-policy001] quit
[FW-policy-security] quit
3、配置源NAT地址池。
#配置源NAT地址池
[FW] nat address-group addressgroup1
[FW-address-group-addressgroup1] mode pat
[FW-address-group-addressgroup1] section 0 183.1.1.8 183.1.1.8
[FW-address-group-addressgroup1] route enable
[FW-address-group-addressgroup1] quit
4、配置目的NAT地址池。
#配置目標(biāo)NAT地址池
[FW] destination-nat address-group addressgroup2
[FW-dnat-address-group-addressgroup2] section 172.17.0.7 172.17.0.8
[FW-dnat-address-group-addressgroup2] quit
5、配置NAT策略。
#配置NAT策略
[FW] nat-policy
[FW-policy-nat] rule name policy_nat1
[FW-policy-nat-rule-policy_nat1] source-zone dmz
[FW-policy-nat-rule-policy_nat1] source-address 172.17.0.6 24
[FW-policy-nat-rule-policy_nat1] destination-address 183.1.10.10 32
[FW-policy-nat-rule-policy_nat1] service protocol tcp destination-port 3000 to 3001
[FW-policy-nat-rule-policy_nat1] action source-nat address-group addressgroup1
[FW-policy-nat-rule-policy_nat1] action destination-nat static address-to-address address-group addressgroup2 2000
[FW-policy-nat-rule-policy_nat1] quit
[FW-policy-nat] quit
6、配置報文目的地址的路由,以防路由環(huán)路。
[FW] ip route-static 183.1.10.10 255.255.255.255 NULL0
一、首先需要了解以下概念:
1、多通道協(xié)議 通信過程中需占用兩個或兩個以上端口的協(xié)議
比如:FTP主動模式下是TCP 20(數(shù)據(jù)端口)和TCP 21(控制端口)端口、FTP被動模式下需占用21號端口以及一個隨機(jī)端口;
NGFW安全策略的過濾機(jī)制:
對于同一條數(shù)據(jù)流,只需在訪問發(fā)起的方向上配置安全策略,反向流量無需配置安全策略。即首包匹配安全策略,通過安全策略過濾后建立會話表,后續(xù)包直接匹配會話表,無需再匹配安全策略,提高業(yè)務(wù)處理效率。
2、ASPF:Application Specific Packet Filter
ASPF(Application Specific Packet Filter,針對應(yīng)用層的包過濾)也叫基于狀態(tài)的報文過濾,ASPF功能可以自動檢測某些報文的應(yīng)用層信息并根據(jù)應(yīng)用層信息放開相應(yīng)的訪問規(guī)則(生成Server-map表)。
以多通道協(xié)議(如FTP、H.323、SIP等)為例,這些多通道協(xié)議的應(yīng)用需要先在控制通道中協(xié)商后續(xù)數(shù)據(jù)通道的地址和端口,然后根據(jù)協(xié)商結(jié)果建立數(shù)據(jù)通道連接。由于數(shù)據(jù)通道的地址和端口是動態(tài)協(xié)商的,管理員無法預(yù)知,因此無法制定完善精確的安全策略。為了保證數(shù)據(jù)通道的順利建立,只能放開所有端口,這樣顯然會給服務(wù)器或客戶端帶來被攻擊的風(fēng)險。
ASPF作用:
1、應(yīng)用識別
A、沒有開啟ASPF,沒有做應(yīng)用層識別
B、開啟ASPF,可以做應(yīng)用識別
2、為多通道協(xié)議創(chuàng)建臨時的會話通道
<NGFW> display firewall server-map
Type: ASPF, 1.1.1.1 -> 2.2.2.2:yyyy, Zone: ---
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15 –-臨時,時間短
VPN: public -> public
3、NAT ALG:Application Level Gateway
ALG(Application Level Gateway,應(yīng)用層網(wǎng)關(guān))功能用于NAT場景下自動檢測某些報文的應(yīng)用層信息,根據(jù)應(yīng)用層信息放開相應(yīng)的訪問規(guī)則(生成Server-map表),并自動轉(zhuǎn)換報文載荷中的IP地址和端口信息。
普通NAT只能轉(zhuǎn)換報文頭中的IP地址和端口,無法對應(yīng)用層的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。在許多應(yīng)用層協(xié)議中,報文載荷中也帶有地址或端口信息,如果這些數(shù)據(jù)不進(jìn)行轉(zhuǎn)換,可能導(dǎo)致后續(xù)通信異常。
通過配置ALG功能,既可以根據(jù)應(yīng)用層信息放開相應(yīng)的訪問規(guī)則,同時對應(yīng)用層的數(shù)據(jù)進(jìn)行NAT轉(zhuǎn)換。
NAT ALG功能的目的是識別多通道協(xié)議,并自動轉(zhuǎn)換報文載荷中的IP地址和端口信息。
<NGFW> display firewall server-map
Type: ASPF, 1.1.1.1 -> 1.1.1.2:zzzz[192.168.0.1:yyyy], Zone: ---
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
4、server-map:Server-map表是實現(xiàn)ASPF/ALG功能的基礎(chǔ)之一。
Server-map表用于放行某些在安全策略中無法明確放行的報文,是通過ASPF/ALG功能自動生成的精細(xì)“安全策略”,是FW上的“隱形通道”。
ASPF/ALG功能可以檢測某些報文的應(yīng)用層信息,并將應(yīng)用層信息中的關(guān)鍵數(shù)據(jù)記錄在Serve-map表中。后續(xù)報文命中Server-map表直接放行或進(jìn)行NAT,并建立會話,不受安全策略控制。
注意:對于ASPF/ALG類型的Server-map表,只有相應(yīng)的流量經(jīng)過設(shè)備時,才會生成相應(yīng)的Server-map表。
ASPF/ALG類型的Server-map表的老化時間是固定的不可配置。比如ftp協(xié)議的Server-map表老化時間為15秒。
下圖是Server-map表在轉(zhuǎn)發(fā)流程中的位置,可以看出在安全策略前;
Server Map的作用:
A、 Server-map是一種映射關(guān)系,當(dāng)數(shù)據(jù)連接匹配了動態(tài)Server-map表項時,不需要再查找包過濾策略,保證了某些特殊應(yīng)用的正常轉(zhuǎn)發(fā)。(NAT Server、NAT No-PAT產(chǎn)生的Server-map需要查找安全策略)
B、 另一種情況,當(dāng)數(shù)據(jù)連接匹配Server-map表,會對報文中IP和端口進(jìn)行轉(zhuǎn)換。
C、Server-map通常只是用檢查首個報文,通道建立后的報文還是根據(jù)會話表來轉(zhuǎn)發(fā)
二、FTP主動模式的ASPF
1、FTP主動模式下,客戶端使用隨機(jī)端口xxxx向服務(wù)器的21端口發(fā)起連接請求建立控制通道,然后使用PORT命令協(xié)商兩者建立數(shù)據(jù)通道的端口號,協(xié)商出來的端口是yyyy。然后服務(wù)器主動向客戶端的yyyy端口發(fā)起連接請求,建立數(shù)據(jù)通道。數(shù)據(jù)通道建立成功后再進(jìn)行數(shù)據(jù)傳輸。
2、在配置安全策略時,如果只配置了允許客戶端訪問服務(wù)器的21端口的安全策略,即控制連接能成功建立。但是當(dāng)服務(wù)器訪問客戶端yyyy端口的報文到達(dá)FW后,對于FW來說,這個報文不是前一條連接的后續(xù)報文,而是代表著一條新的連接。要想使這個報文順利到達(dá)FTP客戶端,FW上就必須配置了安全策略允許其通過,如果沒有配置服務(wù)器到客戶端這個方向上的安全策略,該報文無法通過FW,導(dǎo)致數(shù)據(jù)通道建立失敗。結(jié)果是用戶能訪問服務(wù)器,但無法請求數(shù)據(jù)。
3、如果通過安全策略解決此問題,數(shù)據(jù)通道使用的端口是在控制通道中臨時協(xié)商出來的,具有隨機(jī)性,無法精確預(yù)知,所以只能開放客戶端的所有端口,這樣就會給客戶端帶來安全隱患。ASPF功能正是為了解決此問題,如上圖所示;
查看FW上生成的Server-map表
<NGFW> display firewall server-map
Type: ASPF, 2.2.2.2 -> 1.1.1.1:yyyy, Zone: ---
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
查看FW上創(chuàng)建的會話表
<NGFW> display firewall session-table
Current Total Sessions : 2
ftp VPN:public --> public 1.1.1.1:xxxx+->2.2.2.2:21
ftp-data VPN:public --> public 2.2.2.2:20-->1.1.1.1:yyyy
多通道協(xié)議會創(chuàng)建多條會話,控制連接和數(shù)據(jù)連接是兩個不同的連接。第一條會話代表控制連接,“+->”表示該會話進(jìn)入了ASPF/ALG流程。第二條會話代表數(shù)據(jù)連接,數(shù)據(jù)通道的報文命中Server-map表后創(chuàng)建數(shù)據(jù)連接會話。
三、FTP主動模式的ALG
1、未配置ALG功能前,為了保證客戶端和服務(wù)器之間的控制通道和數(shù)據(jù)通道的正常建立,F(xiàn)W需要配置兩條安全策略:
A、允許從客戶端的任意端口到服務(wù)器的21端口的訪問,用于建立控制連接和發(fā)送命令。
B、允許從服務(wù)器的20端口到客戶端的任意端口的訪問,用于建立數(shù)據(jù)連接。
由于客戶端開放的端口是臨時協(xié)商的,管理員無法提前預(yù)知,因此只能開放客戶端的所有端口,給客戶端帶來了安全隱患。
2、另外,在源NAT場景中,即使配置了安全策略,服務(wù)器向客戶端的私網(wǎng)端口發(fā)起數(shù)據(jù)連接時,數(shù)據(jù)連接仍然會建立失敗。
3、配置了ALG功能后,F(xiàn)W通過分析PORT命令的應(yīng)用層信息,將命令中攜帶的私網(wǎng)IP和私網(wǎng)端口轉(zhuǎn)換成公網(wǎng)地址和公網(wǎng)端口后再轉(zhuǎn)發(fā)給服務(wù)器,并創(chuàng)建Server-map表。服務(wù)器向轉(zhuǎn)換后的公網(wǎng)地址和公網(wǎng)端口發(fā)起數(shù)據(jù)連接,報文到達(dá)FW后命中該Server-map表項,自動將目的地址和端口轉(zhuǎn)換為真實的私網(wǎng)地址,不再受安全策略控制。
配置了ALG的情況下,F(xiàn)W上只需配置允許從客戶端的任意端口到服務(wù)器的21端口的安全策略即可。
查看FW上生成的Server-map表
<sysname> display firewall server-map
Type: ASPF, 1.1.1.1 -> 1.1.1.2:zzzz[192.168.0.1:yyyy], Zone: ---
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
查看FW上創(chuàng)建的會話表
<sysname> display firewall session-table
Current Total Sessions : 2
ftp VPN:public --> public 192.168.0.1:xxxx[1.1.1.2:2050]+->1.1.1.1:21
ftp-data VPN:public --> public 1.1.1.1:20-->1.1.1.2:zzzz[192.168.0.1:yyyy]
多通道協(xié)議會創(chuàng)建多條會話,控制連接和數(shù)據(jù)連接是兩個不同的連接。第一條會話代表控制連接,源地址(客戶端地址)經(jīng)過源NAT,“+-”表示該會話進(jìn)入了ASPF/ALG流程。第二條會話代表數(shù)據(jù)連接,數(shù)據(jù)通道的報文命中Server-map表對目的地址做NAT轉(zhuǎn)換為客戶端的私網(wǎng)地址,并創(chuàng)建了數(shù)據(jù)連接會話。
四、總結(jié)
NAT ALG與ASPF的關(guān)系:FW支持配置全局、域間和域內(nèi)的ASPF/ALG功能
差異點:
開啟ASPF功能的目的是識別多通道協(xié)議,并自動為其開放相應(yīng)的安全策略。
開啟NAT ALG功能的目的是識別多通道協(xié)議,并自動轉(zhuǎn)換報文載荷中的IP地址和端口信息。
ASPF能做的是“識別-開放”,而NAT ALG 需要做“識別-轉(zhuǎn)換-開放”;
共同點:
二者使用相同的配置。開啟其中一個功能,另一功能同時生效。
開啟命令:firewall detect protocol
ASPF和ALG功能使用的是同一個配置,只是不同場景下FW對報文的處理不同,因而叫法不同。非NAT場景下叫ASPF,NAT場景下叫ALG。
擴(kuò)展知識:
FW支持對如下知名協(xié)議的流量進(jìn)行ASPF/ALG處理
協(xié)議 ASPF(IPV4) ALG
DNS YES YES
FTP YES YES
H.323 YES YES
ICQ YES YES
ILS YES YES
NETBIOS YES YES
MGCP YES YES
MMS YES YES
PPTP YES YES
QQ YES YES
RTSP YES YES
RSH YES YES
SCCP YES YES
SIP YES YES
SQLNET YES YES
參考文檔:華為HedEx文檔