如何正確應用網絡地址轉換(NAT)技術
NAT英文全稱是Network Address Translation,稱是網絡地址轉換,它是壹個IETF標準,允許壹個機構以壹個地址出現在Internet上。NAT將每個局域網節點的地址轉換成壹個IP地址,反之亦然。它也可以應用到防火墻技術裏,把個別IP地址隱藏起來不被外界發現,使外界無法直接訪問內部網絡設備,同時,它還幫助網絡可以超越地址的限制,合理地安排網絡中的公有Internet 地址和私有IP地址的使用。 二、NAT技術的基本原理和類型 1、NAT技術基本原理 NAT技術能幫助解決令人頭痛的IP地址緊缺的問題,而且能使得內外網絡隔離,提供壹定的網絡安全保障。它解決問題的辦法是:在內部網絡中使用內部地址,通過NAT把內部地址翻譯成合法的IP地址在Internet上使用,其具體的做法是把IP包內的地址域用合法的IP地址來替換。 NAT功能通常被集成到路由器、防火墻、ISDN路由器或者單獨的NAT設備中。NAT設備維護壹個狀態表,用來把非法的IP地址映射到合法的IP地址上去。每個包在NAT設備中都被翻譯成正確的IP地址,發往下壹級,這意味著給處理器帶來了壹定的負擔。但對於壹般的網絡來說,這種負擔是微不足道的。 2、NAT技術的類型 NAT有三種類型:靜態NAT(Static NAT)、動態地址NAT(Pooled NAT)、網絡地址端口轉換NAPT(Port-Level NAT)。其中靜態NAT設置起來最為簡單和最容易實現的壹種,內部網絡中的每個主機都被永久映射成外部網絡中的某個合法的地址。而動態地址NAT則是在外部網絡中定義了壹系列的合法地址,采用動態分配的方法映射到內部網絡。NAPT則是把內部地址映射到外部網絡的壹個IP地址的不同端口上。根據不同的需要,三種NAT方案各有利弊。 動態地址NAT只是轉換IP地址,它為每壹個內部的IP地址分配壹個臨時的外部IP地址,主要應用於撥號,對於頻繁的遠程聯接也可以采用動態NAT。當遠程用戶聯接上之後,動態地址NAT就會分配給他壹個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以後使用。 網絡地址端口轉換NAPT(Network Address Port Translation)是人們比較熟悉的壹種轉換方式。NAPT普遍應用於接入設備中,它可以將中小型的網絡隱藏在壹個合法的IP地址後面。NAPT與動態地址NAT不同,它將內部連接映射到外部網絡中的壹個單獨的IP地址上,同時在該地址上加上壹個由NAT設備選定的TCP端口號。 在Internet中使用NAPT時,所有不同的TCP和UDP信息流看起來好像來源於同壹個IP地址。這個優點在小型辦公室內非常實用,通過從ISP處申請的壹個IP地址,將多個連接通過NAPT接入Internet。實際上,許多SOHO遠程訪問設備支持基於PPP的動態IP地址。這樣,ISP甚至不需要支持NAPT,就可以做到多個內部IP地址***用壹個外部IP地址上Internet,雖然這樣會導致信道的壹定擁塞,但考慮到節省的ISP上網費用和易管理的特點,用NAPT還是很值得的。 三、在Internet中使用NAT技術 NAT技術可以讓妳區域網路中的所有機器經由壹臺通往Internet的server 線出去,而且只需要註冊該server的壹個IP就夠了。 在以往沒有NAT技術以前,我們必須在server上安裝sockd,並且所有的clients都必須要支援sockd,才能夠經過server的sockd連線出去。這種方式最大的問題是,通常只有telnet/ftp/www-browser支援sockd,其它的程式都不能使用;而且使用sockd的速度稍慢。因此我們使用網絡地址轉換NAT技術,這樣client不需要做任何的更動,只需要把gateway設到該server上就可以了,而且所有的程式(例如kali/kahn等等) 都可以使用。最簡單的NAT設備有兩條網絡連接:壹條連接到Internet,壹條連接到專用網絡。專用網絡中使用私有IP地址(有時也被稱做Network 10地址,地址使用留做專用的從10.0.0.0開始的地址)的主機,通過直接向NAT設備發送數據包連接到Internet上。與普通路由器不同NAT設備實際上對包頭進行修改,將專用網絡的源地址變為NAT設備自己的Internet地址,而普通路由器僅在將數據包轉發到目的地前讀取源地址和目的地址。 四、應用NAT技術的安全策略 1、應用NAT技術的安全問題 在使用NAT時,Internet上的主機表面上看起來直接與NAT設備通信,而非與專用網絡中實際的主機通信。輸入的數據包被發送到NAT設備的IP地址上,並且NAT設備將目的包頭地址由自己的Internet地址變為真正的目的主機的專用網絡地址。而結果是,理論上壹個全球唯壹IP地址後面可以連接幾百臺、幾千臺乃至幾百萬臺擁有專用地址的主機。但是,這實際上存在著缺陷。例如,許多Internet協議和應用依賴於真正的端到端網絡,在這種網絡上,數據包完全不加修改地從源地址發送到目的地址。比如,IP安全架構不能跨NAT設備使用,因為包含原始IP 源地址的原始包頭采用了數字簽名。如果改變源地址的話,數字簽名將不再有效。 NAT還向我們提出了管理上的挑戰。盡管NAT 對於壹個缺少足夠的全球唯壹Internet地址的組織、分支機構或者部門來說是壹種不錯的解決方案,但是當重組、 合並或收購需要對兩個或更多的專用網絡進行整合時,它就變成了壹種嚴重的問題。甚至在組織結構穩定的情況下,NAT系統不能多層嵌套,從而造成路由噩夢。 2、應用NAT技術的安全策略 當我們改變網絡的IP地址時,都要仔細考慮這樣做會給網絡中已有的安全機制帶來什麽樣的影響。如,防火墻根據IP報頭中包含的TCP端口號、信宿地址、信源地址以及其它壹些信息來決定是否讓該數據包通過。可以依NAT設備所處位置來改變防火墻過濾規則,這是因為NAT改變了信源或信宿地址。如果壹個NAT設備,如壹臺內部路由器,被置於受防火墻保護的壹側,將不得不改變負責控制NAT設備身後網絡流量的所有安全規則。在許多網絡中,NAT機制都是在防火墻上實現的。它的目的是使防火墻能夠提供對網絡訪問與地址轉換的雙重控制功能。除非可以嚴格地限定哪壹種網絡連接可以被進行NAT轉換,否則不要將NAT設備置於防火墻之外。任何壹個淘氣的黑客,只要他能夠使NAT誤以為他的連接請求是被允許的,都可以以壹個授權用戶的身份對妳的網絡進行訪問。如果企業正在邁向網絡技術的前沿,並正在使用IP安全協議(IPSec)來構造壹個虛擬專用網(VPN)時,錯誤地放置NAT設備會毀了計劃。原則上,NAT設備應該被置於VPN受保護的壹側,因為NAT需要改動IP報頭中的地址域,而在IPSec報頭中該域是無法被改變的,這使可以準確地獲知原始報文是發自哪壹臺工作站的。如果IP地址被改變了,那麽IPSec的安全機制也就失效了,因為既然信源地址都可以被改動,那麽報文內容就更不用說了。那麽NAT技術在系統中我們應采用以下幾個策略: ①網絡地址轉換模塊 NAT技術模塊是本系統核心部分,而且只有本模塊與網絡層有關,因此,這壹部分應和Unix系統本身的網絡層處理部分緊密結合在壹起,或對其直接進行修改。本模塊進壹步可細分為包交換子模塊、數據包頭替換子模塊、規則處理子模塊、連接記錄子模塊與真實地址分配子模塊及傳輸層過濾子模塊。②集中訪問控制模塊 集中訪問控制模塊可進壹步細分為請求認證子模塊和連接中繼子模塊。請求認證子模塊主要負責和認證與訪問控制系統通過壹種可信的安全機制交換各種身份鑒別信息,識別出合法的用戶,並根據用戶預先被賦予的權限決定後續的連接形式。連接中繼子模塊的主要功能是為用戶建立起壹條最終的無中繼的連接通道,並在需要的情況下向內部服務器傳送鑒別過的用戶身份信息,以完成相關服務協議中所需的鑒別流程。 ③臨時訪問端口表 為了區分數據包的服務對象和防止攻擊者對內部主機發起的連接進行非授權的利用,網關把內部主機使用的臨時端口、協議類型和內部主機地址登記在臨時端口使用表中。由於網關不知道內部主機可能要使用的臨時端口,故臨時端口使用表是由網關根據接收的數據包動態生成的。對於入向的數據包,防火墻只讓那些訪問控制表許可的或者臨時端口使用表登記的數據包通過。 ④認證與訪問控制系統 認證與訪問控制系統包括用戶鑒別模塊和訪問控制模塊,實現用戶的身份鑒別和安全策略的控制。