利用NAT保護您的內(nèi)部網(wǎng)絡
什么是NAT
NAT——網(wǎng)絡地址轉(zhuǎn)換,是通過將專用網(wǎng)絡地址(如企業(yè)內(nèi)部網(wǎng)Intranet)轉(zhuǎn)換為公用地址(如互聯(lián)網(wǎng)Internet),從而對外隱藏了內(nèi)部管理的 IP 地址。這樣,通過在內(nèi)部使用非注冊的 IP 地址,并將它們轉(zhuǎn)換為一小部分外部注冊的 IP 地址,從而減少了IP 地址注冊的費用以及節(jié)省了目前越來越缺乏的地址空間(即IPV4)。同時,這也隱藏了內(nèi)部網(wǎng)絡結構,從而降低了內(nèi)部網(wǎng)絡受到攻擊的風險。
NAT功能通常被集成到路由器、防火墻、單獨的NAT設備中,當然,現(xiàn)在比較流行的操作系統(tǒng)或其他軟件(主要是代理軟件,如WINROUTE),大多也有著NAT的功能。NAT設備(或軟件)維護一個狀態(tài)表,用來把內(nèi)部網(wǎng)絡的私有IP地址映射到外部網(wǎng)絡的合法IP地址上去。每個包在NAT設備(或軟件)中都被翻譯成正確的IP地址發(fā)往下一級。與普通路由器不同的是,NAT設備實際上對包頭進行修改,將內(nèi)部網(wǎng)絡的源地址變?yōu)镹AT設備自己的外部網(wǎng)絡地址,而普通路由器僅在將數(shù)據(jù)包轉(zhuǎn)發(fā)到目的地前讀取源地址和目的地址。
NAT分為三種類型:靜態(tài)NAT(staticNAT)、NAT池(pooledNAT)和端口NAT(PAT)。其中靜態(tài)NAT將內(nèi)部網(wǎng)絡中的每個主機都被永久映射成外部網(wǎng)絡中的某個合法的地址,而NAT池則是在外部網(wǎng)絡中定義了一系列的合法地址,采用動態(tài)分配的方法映射到內(nèi)部網(wǎng)絡,端口NAT則是把內(nèi)部地址映射到外部網(wǎng)絡的一個IP地址的不同端口上。
廢話說了不少,讓我們轉(zhuǎn)入正題,看一下如何利用NAT保護內(nèi)部網(wǎng)絡。
使用網(wǎng)絡地址轉(zhuǎn)換NAT,使得外部網(wǎng)絡對內(nèi)部網(wǎng)絡的不可視,從而降低了外部網(wǎng)絡對內(nèi)部網(wǎng)絡攻擊的風險性。
在我們將內(nèi)部網(wǎng)絡的服務使用端口映射到NAT設備(或是軟件)上時,NAT設備看起來就像一樣對外提供服務器一臺服務器一樣(如圖一)。這樣對于攻擊者來講,具有一定的難度,首先他要攻破NAT設備,再根據(jù)NAT設備連接到內(nèi)部網(wǎng)絡進行破壞。
由圖一我們可以看出,內(nèi)部網(wǎng)絡中的A、B和C提供相應的MAIL、FTP和HTTP服務。我們利用NAT將所提供服務機器的對應的服務端口25、110、20、21和80映射到NAT服務器上(IP:88.88.88.88,域名:5imax.net上,其中端口及服務對應如下:
SMTP<->25
POP3<->110
FTP<->20,21
HTTP<->80
說到20,我來加一個小插曲。我們都知道FTP對應的端口應該是21,為什么又冒出來一個20呢?其實,我們們進行FTP文件傳輸中,客戶端首先連接到FTP服務器的21端口,進行用戶的認證,認證成功后,當我們要傳輸文件時,服務器會開一個端口為20來進行傳輸數(shù)據(jù)文件,也就是說,端口20才是真正傳輸所用到的端口,端口21只用于FTP的登陸認證。我們平常下載文件時,會遇到下載到99%時,文件不完成,不能成功的下載。其實是因為文件下載完畢后,還要在21端口再行進行用戶認證,而我們下載文件的時間如果過長,客戶機與服務器的21端口的連接會被服務器認為是超時連接而中斷掉,就是這個原因。解決方法就是設置21端口的響應時間。
話題扯遠了(別拿柿子、雞蛋……扔我?。?,我們繼續(xù)我們的NAT吧。由圖一為例,當外部訪問者訪問http://www.5imax.net時,NAT會自動把請求提交到內(nèi)部的192.168.0.102的80端口上,反之也一樣,我們所收到的信息也是內(nèi)部的192.168.0.102通過NAT來傳輸給外部訪問者的。同樣FTP及MAIL的服務也是如此。
其中的NAT既可以用操作系統(tǒng)和代理軟件,又可以用路由器及NAT設備。下面我們用軟件的方法來具體實現(xiàn)具體的NAT設置。
使用WINDOWS 2000 SERVER進行NAT的設置
WINDOWS 20000 SERVER FAMILY強大的網(wǎng)絡功能,說起來真是VERY GOOD。她集成很多網(wǎng)絡功能,比如說DHCP、DNS、SNMP、路由……,進行NAT的設置,我們只需要一個WINDOWS 2000 SERVER就足夠了,不必借助于其他的軟件。
說干就干,我們以中文版的WINDOWS 2000 SERVER為例,在NAT服務器上加兩塊網(wǎng)卡,一塊是與內(nèi)部網(wǎng)絡相連(如IP:192.168.0.35),另一塊則是與外部網(wǎng)絡相連(如IP:88.88.88.88),在配置之前,要保證NAT服務器與內(nèi)部私有網(wǎng)絡及外部公用網(wǎng)絡的數(shù)據(jù)傳輸沒有故障。具體配置如下:
打開“開始——>程序——>管理工具——>路由和遠程訪問”,出現(xiàn)一個對話框,左側有一個“服務器狀態(tài)”,一個“BDWSER(本地)”(不一定是BDWSER,其實就應該是你的機器名),點“BDWSER(本地)”,然后點“操作——>配置并啟用路由和遠程訪問”,會彈出一個的對話框,下一步,會出現(xiàn)如圖二的對話框,選擇“Internet連接服務器”,下一步,
如圖三,選擇“設置有網(wǎng)絡地址轉(zhuǎn)換(NAT)路由協(xié)議的路由器”,下一步
如圖四,選擇“使用選擇的Internet連接——>本地連接2”,這里要注意一點,“本地連接2”即為服務器的外部連接,如本例中域名為5imax.net地址為88.88.88.88;而“本地連接”而是服務器與內(nèi)部網(wǎng)絡的連接。然后“下一步——>完成”,此時“路由和遠程訪問”會自動啟動,我們稍侯等待“路由和遠程訪問”的啟動。
通過以上的配置,我們就可以利用NAT將內(nèi)部地址轉(zhuǎn)發(fā)到外部地址,也就相當于本機(WINDOWS 2000 SERVER)可以通過NAT代理內(nèi)部的機器共享上網(wǎng)了。如果NAT服務器使用了DHCP,那么客戶機只要自動獲取IP即可;如果沒有設置,客戶機要指定IP:192.168.0.*,子網(wǎng)掩碼:255.255.255.0,網(wǎng)關:192.168.0.35,DNS:202.97.224.68(使用本地ISP提供DNS服務器地址即可)。接下來,我們應該來配置外部端口到內(nèi)部端口的映射(如圖一中的88.88.88.88:80——>192.168.0.102:80),使得外部訪問者訪問http://www.5imax.net相應的HTTP服務時,NAT主機會將服務的請求自動轉(zhuǎn)換到內(nèi)部網(wǎng)絡所提供相應服務的主機上,反之,內(nèi)部主機服務的反饋信息經(jīng)由NAT主機轉(zhuǎn)換發(fā)送到外部訪問者。
在“路由和遠程訪問”對話框的左側,打開“BDWSER(本地)——>IP路由選擇——>網(wǎng)絡地址轉(zhuǎn)換(NAT)”,這時在“路由和遠程訪問”對話框的右側窗口應該有二個接口,外部網(wǎng)絡和內(nèi)部網(wǎng)絡(如圖五)。
在詳細信息窗格中,右鍵單擊要配置的接口,然后單擊“屬性”。 在“特殊端口”選項卡上,在“協(xié)議”中,單擊“TCP”或“UDP”(根據(jù)不同的服務選擇不同的協(xié)議,如HTTP服務為TCP,TFTP服務為UDP,但此例中并未涉及到UDP協(xié)議),然后單擊“添加”。 在“傳入端口”中,鍵入傳入公用通信的端口號(如圖六中的“傳入端口80)。在“傳出端口”中,鍵入專用網(wǎng)絡資源的端口號(如圖六中的“傳出端口80”)。在“專用地址”中,鍵入專用網(wǎng)絡資源的專用地址(如圖六中的“專用地址192.168.0.102”,即圖一所示主機C:192.168.0.102)。單擊“確定”,添加完畢。同樣,FTP和MAIL的服務添加的端口為20,21,25和110。
以上的例子是僅使用單個公用IP進行NAT的轉(zhuǎn)換,如果是使用多個公用IP,那么我們在配置映射端口之前,要進行NAT地址池的設置。在詳細信息窗格中,右鍵單擊要配置的接口(即外部網(wǎng)絡接口,本地連接2),然后單擊“屬性”。在“地址池”選項卡上,單擊“添加”,并執(zhí)行下列操作之一:
如果正在使用以 IP 地址和子網(wǎng)掩碼表示的 IP 地址范圍,則在“起始地址”中鍵入起始 IP 地址,然后在“掩碼”中鍵入子網(wǎng)掩碼。
如果正在使用不能以 IP 地址和子網(wǎng)掩碼表示的 IP 地址范圍,在“起始地址”中鍵入起始 IP 地址,然后在“結束地址”中鍵入結束 IP 地址。
在設置端口映射時(即特殊端口),請單擊“在此地址池項上”,然后鍵入傳入公用通信的公用 IP 地址,其他的設置與上述的設置方法相訪。
到了這里,我們的全部工作——利用NAT主機代理內(nèi)部網(wǎng)絡共享Interent和內(nèi)部網(wǎng)絡到NAT主機的端口映射——就完成了。為了安全起見,我們最好在NAT主機的接入處加一個防火墻或設置NAT主機的“IP安全機制(IPSEC)”和“TCP/IP篩選”。“IP安全機制”和“TCP/IP篩選”的設置就在外部網(wǎng)絡的TCP/IP協(xié)議中的安全選項中,參考WINDOWS 2000的幫助文件進行設置就可以,我們在這里就不再贅述了。
NAT的小結
當然,使用NAT進行端口映射,用NAT代理軟件同樣可以做到(比如說WINROUTE),而且相應的設置比較簡單,一般只要默認安裝上后,在軟件中進行簡單設置就可以了。手都寫累了,有機會我們以后再談。
利用NAT保護內(nèi)部網(wǎng)絡,特別是軟件的NAT,適用于小、中型的網(wǎng)絡,而大型的網(wǎng)絡一般要使用硬件(如路由),因為NAT服務也要消耗NAT服務器的資源的。在大型的網(wǎng)絡中,使用路由來做NAT,要做相應的安全設置,一般參考路由手冊及CISCO ISO安全模型即可。
NAT的使用,使內(nèi)部網(wǎng)絡相應于外部網(wǎng)絡不可見化,入侵者要先侵入NAT服務器(或NAT設備),然后利用NAT做跳板,進一步侵入內(nèi)部網(wǎng)絡。這樣,對于入侵者就有一定的難度,如果NAT服務器與內(nèi)部服務器使用不同的操作系統(tǒng),那么入侵者需要對這兩個操作系統(tǒng)都要熟悉才可以做到的,這對于一般的入侵者來說,入侵行為無疑是提高了一個臺階。文章到此結束,本文的意圖不僅僅只是一個步驟,而是希望大家以此為一個基點,利用現(xiàn)有的技術,組建出更安全的網(wǎng)絡。
由于寫作上的失誤及本人水平有限,本文難免會出現(xiàn)紕漏,希望大家指正。
注意:本人已經(jīng)在雜志上發(fā)表,所以請大家不要隨意轉(zhuǎn)載,只供參考。
滄水 mifor at 163 dot com