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