一、 前言
在很多場景中,比如企業、學校、都有提供一些對外訪問的業務,比如門戶網址、文件服務器等,在實際部署中,這些提供訪問的服務器都部署在內網、分配的是私網地址,導致的情況是公網用戶沒法對私網地址直接進行訪問。通過學習上篇內容,可以知道源NAT功能是把私網用戶的源地址轉換成可上網的地址(公網地址,由運營商分配的)然后發送出去,那么目的NAT的作用正好相反,它是當其他公網用戶訪問我們服務的公網地址時候,進行目的地址轉換(注意一定要是公網地址)。不同廠商的叫法可能不太一樣,如:目的NAT、NAT Server、端口映射、甚至DMZ,是不是有點傻傻分不清楚。不過不要緊,學完本篇后就都了解清楚了,下面來看看都有哪些應用場景吧!
二、從一對一映射案例出發
如圖2-1所示,某公司在網絡邊界處部署了防火墻作為安全網關,Router是ISP提供的接入網關。為了使私網多臺WEB服務器、FTP服務器、DNS服務器能夠對外提供服務,需要在防火墻上配置目的NAT功能。除了公網接口的IP地址外,公司還向ISP申請了3個IP地址(117.11.39.31~117.11.39.33)作為內網服務器對外提供服務的地址。

圖2-1 一對一映射組網
2.1 接口配置

圖2-2 接口配置
2.2安全域配置

圖2-3 安全域配置
2.3 靜態路由配置
外網用戶主動發起連接訪問服務器映射的公網IP地址,正向報文到達防火墻后正確建立會話表項(形如:入接口-源IP地址-協議-源端口-目的IP地址-目的端口-出接口);服務器返回的反向響應報文直接命中會話進行轉發,無需額外配置靜態路由,提高防火墻轉發效率。
2.4 資產(池)配置

圖2-4 資產配置

圖2-5 資產池配置
2.5 安全策略配置

圖2-6 安全策略配置
2.6 目的NAT配置

圖2-7 目的NAT配置
2.7 路由器配置
由于服務器映射的公網IP地址與路由器接口IP地址不在同一網段,因此需要配置靜態路由使得公網用戶訪問服務器映射的公網IP時的流量可以正確轉發到防火墻上進行處理,本案例中具體配置為:
(1)iproute-static 117.11.39.31/32 106.120.100.123
(2)iproute-static 117.11.39.32/32 106.120.100.123
(3)iproute-static 117.11.39.33/32 106.120.100.123
從上面的配置可以看出,一對一使用的場景主要一個是公網地址特別多且內網服務器也多的情況
;再一個是需要映射的端口號比較多,比如15000到20000,這個時候還是比較建議用一對一來減少工作量的。但同時也帶來了一定問題,首當其沖的就是安全性問題,因為一對一的映射是把所有端口號都給映射出去了,比如這臺服務器就只是對外提供FTP服務,但是還運行了遠程桌面、SMTP服務等應用,配置一對一映射后,把不想對外提供的服務也給映射出去了,雖然可以通過安全策略(如圖2-6)來控制,但是實際上報文處理已經通過了目的轉換、還是消耗了設備的性能的。再一個方面,類似80、443這些缺省的WEB端口號運營商要求所提供的WEB服務已經備案過了,才會開通80、443端口號(在一次實際應用中,研發人員將一臺漏挖設備映射出去以供其他客戶訪問設備頁面,起初WEB訪問偵聽TCP 80端口發現本地可以訪問但是客戶側可以ping通卻無法訪問設備頁面,后來嘗試修改為偵聽TCP 8440端口則客戶側可以成功訪問),但是實際中往往很多,比如管理平臺、臨時測試的門戶網站內網都是用的80端口號,卻遠沒到需要備案的地步,那么通過映射公網IP的80端口也就無法訪問成功。換言之,需要除了映射出公網IP地址外、對于一些特定應用還需要改變端口號。
三、再看端口映射使用場景
如圖3-1所示,某公司在網絡邊界處部署了防火墻作為安全網關,Router是ISP提供的接入網關。為了使私網WEB服務器和FTP服務器能夠對外提供服務,需要在防火墻上配置目的NAT功能。除了公網接口的IP地址外,公司沒有再向ISP申請公網IP地址。對比圖2-1,其實組網上沒有什么變化、關鍵在于需要對外提供服務的內部服務器數量以及公司申請的公網IP數量。該場景下目的NAT的公網地址需要借用公網接口IP地址,如果使用一對一映射則會造成防火墻本身的管理訪問受影響,比如HTTPS、TELNET、SSH等都會被映射轉換;從而導致無法通過該接口的地址使用WEB方式或SSH方式對設備進行管理,也無法對設備進行Ping探測,因此需要使用端口映射以縮小地址和端口轉換的范圍,從而避免與訪問設備本身的需求相沖突。

圖3-1 端口映射組網
3.1 接口配置

圖3-2 接口配置
3.2 安全域配置

圖3-3 安全域配置
3.3 靜態路由配置
外網用戶主動發起連接訪問服務器映射的公網IP地址,正向報文到達防火墻后正確建立會話表項(形如:入接口-源IP地址-協議-源端口-目的IP地址-目的端口-出接口),服務器返回的反向響應報文直接命中會話進行轉發,無需額外配置靜態路由。
3.4 資產(池)配置

圖3-4 資產配置

圖3-5 資產池配置
3.5 安全策略配置

圖3-6 安全策略配置
3.6 目的NAT配置

圖3-7 目的NAT配置
3.7 路由器配置
本案例中由于服務器映射的公網IP地址直接借用了防火墻接口IP且與路由器接口IP地址在同一網段,因此路由器上不需要額外配置靜態路由,便可使公網用戶訪問服務器映射的公網IP時的流量可以正確轉發到防火墻上進行處理。
端口映射從字面意思其實就容易理解,它的功能就是對需要對外提供服務的端口號進行映射發布,這樣解決了一對一映射帶來的問題。可以靈活地配置端口映射規則,比如內網使用80、3389,而外網端口號可以自定義其他的,靈活性、安全性都可以得到保障。唯一的缺點就是一次只能映射一條,當需要映射的內部服務端口比較多的時候操作上有些繁瑣。這一點在后續版本可以考慮進行優化、增加支持端口范圍配置(類似接口配置界面的Trunk VLAN ID),從而可以在一定程度上簡化操作、更加易用,如圖3-8所示。

圖3-8 目的NAT之端口范圍配置
四、 結語
學習了一對一映射和端口映射,那么在實際場景中該如何選擇呢?這里提兩點建議,大家可以結合實際項目慢慢體會:
(1) 能用端口映射解決的就用端口映射,不要用一對一映射。
(2) 如果端口非常多、只能使用一對一映射的話,安全策略盡量做到精確匹配,在確保業務不受影響的情況下盡可能地保障系統安全。
對于單一出口下常見的場景,主要的內容已介紹完畢,在實際工作中可能還會遇到客戶業務存在多出口(聯通、電信)的情況,這樣的場景下又該如何去部署防火墻啟用目的NAT功能將內部服務映射到公網?
安全牛
E安全
商密君
奇安信集團
關鍵基礎設施安全應急響應中心
無憂智庫
一顆小胡椒
安全內參
虹科網絡安全
一顆小胡椒
黑白之道
LemonSec