歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux下的NAT及防火牆的混合應用

  【摘要】  主要講述Linux系統下的NAT(網絡地址轉換)和基於NAT的防火牆技術。  首先由Linux系統的安裝引入,著重介紹LINUX下的NAT的網絡配置(服務端和客戶端),以及防火牆配置原則。  其次,從理論上闡述,“什麼是NAT”和網絡上的攻擊方法。    【引言】  LINUX憑借其穩定性、安全性和代碼開放在這幾年中,風靡全球;作為一種類UNIX系統,Linux正在互聯網的各個層面得到應用,從科學計算到銀行取款機,從網絡web服務到高層的Oracle 數據庫應用。都可以看到linux的影子。而由於Linux遵循於GPL協議(公共軟件許可證),任何人可以得到並且修改它的源代碼,所以他的安全性相較於其他的非開源系統來說要高的多;並且它可以從網絡中免費下載。從這2點來說他非常適合用於網絡信息閘(軟路由或網關)和自制防火牆(事實上國內的硬件防火牆廠商都是用工業X86硬件和linux來做他們的產品,雖然那不是真正意義上的硬件防火牆)。現在學校過於注重對windows及其windows平台上的軟件、開發工具的學習。但是學生們沒有意識到,真正撐起這個互聯網的正是UNIX系統;就從我對Linux的見解為大家展示UNIX系統的一角吧。  什麼是NAT?    NAT英文全稱是Network Address Translation,稱是網絡地址轉換,它是一個IETF標准,允許一個機構(包括多個網絡節點)以一個地址出現在Internet上。NAT將每個局域網節點的地址轉換成一個IP地址,反之亦然。它也可以應用到防火牆技術裡,把個別IP地址隱藏起來不被外界發現,使外界無法直接訪問內部網絡設備,同時,它還幫助網絡可以超越地址的限制,合理地安排網絡中的公有Internet 地址和私有IP地址 的使用。    為什麼要進行NAT  假設校園網提供園區Internet接入服務,為了方便管理,校園網絡中心分配給園區用戶的IP地址都是偽IP(內部IP),但是部分用戶要求建立自己的WWW服務器對外發布信息,這時候我們就可以通過NAT來提供這種服務了。我們可以在防火牆的外部網卡上綁定多個合法IP地址或端口,然後通過NAT技術使發給其中某一個IP地址的包轉發至內部某一用戶的WWW服務器上,然後再將該內部WWW服務器響應包偽裝成該合法IP發出的包。    實驗環境介紹  本文所有到的實驗環境如下:  LINUX系統主機一台(服務端):雙網卡 REDHAT 9.0 主機名:host  Windows 98 系統主機一台(客戶端):單網卡    主機名:test      聯想D-link 8口 10M/100M交換機一個    【正文】  網絡的拓樸結構:        一、 RED HAT 9.0 安裝和注意點  Linux是一個獨立的操作系統,所以不能在其他操作系統下進行安裝,他有自己的啟動方式,可以采用以下兩種方法進行安裝。  ● 從CD-ROM進行安裝  ● 從FTP服務器進行安裝  由於Linux系統安裝(第一種方法),有隨機參考手冊,難度不大,所以我們著重介紹從ftp安裝。  在安裝之前制作啟動盤:  1. 在windows操作系統下將安裝盤放入光驅;  2. 運行 e:\dosutils\rawrite.exe(e盤為光驅)  3. 在運行後的界面中輸入e:\images\bootnet.img  4. 指定目標盤,輸入用戶軟盤盤符:a  這樣一張安裝程序的啟動盤就建好了。     用軟盤引導計算機,進入藍色界面後,輸入FTP服務器地址和ftp上的用戶名及口令就可以下在安裝了。  RED HAT 9.0安裝界面為中文,安裝中文說明基本可以完成系統定制,在此要強調的是,分區的時候,/swap(交換分區)大小要是內存大小的2倍;既然是作nat網關,要把/var(日志分區)單分出來,並且不要少於500M,有充裕的空間存儲日志,也為將來將來系統故障或受到攻擊做到有據可查。    二.LINUX的網絡設置和nat原理  2.1網絡設置  我們把linux系統安裝完後,整個設置平台算是搭建完畢,但是還要設置網絡;設置網絡之前,或者說讓linux上網前,應該把和這台服務器應該起到作用的無關服務關掉。  可以在命令行下敲入setup回車,會出現一個文本菜單,裡面有“系統服務”一項,直接用空格鍵取消服務前面的勾然後重新啟動系統就行了。  假如是UNIX的熟練用戶,可以在取消服務後,不用重新啟動,在命令行行打入  psaux  會顯示現在在後台運行的所有服務,看到要殺死的進程後,打入  kill -9

  (-9代表強制殺掉進程)殺死進程。  然後進入/etc/sysconfig/network-scripts/目錄  viifcfg-eth0會出現以下內容  device=eth0  onboot=yes  bootproto=none  IPADDR=192.168.0.1 #(內網網卡IP)  netmask=255.255.255.0  TYPE=ETHERNET  USERCTL=NO  PEERDNS=NO  NETWORK=192.168.0.0(網絡號)  Broadcast=192.168.0.255(廣播號)  上面的設置的意思是:eth0對內的內網網卡,ip地址為192.168.0.1,子網掩碼為:255.255.255.0;    viifcfg-eth1會出現以下內容  device=eth1  onboot=yes  bootproto=none  IPADDR=202.204.208.5 #(外網網卡IP)  netmask=255.255.255.128  TYPE=ETHERNET  USERCTL=NO  PEERDNS=NO  NETWORK=202.204.208.0(網絡號)  Broadcast=202.204.208.127(廣播號)  上面的設置的意思是:eth1是對外的外網網卡,ip地址為202.204.208.5。  網卡的設置就完成了    加入nat客戶端ip和名稱  vi /etc/hosts  格式為:  ip地址 主機名  127.0.0.1 host    指定內網網關  vi /etc/sysconfig/network  gateway=202.204.208.7 #(網關地址,假如服務端的外網為撥號,就不要指定)    設置DNS服務器  vi /etc/resolv.conf  格式為  nameserver ip地址  nameserver 202.106.196.115  都設置好後,從新啟動系統,在命令行下打入  route -a #察看路由表,看一下默認網關是否為202.204.208.7  假如是的話,服務端的網絡配置就已經全部完成。    下面是客戶端的網絡配置  因為是win 98系統,所以只給出配置參數,配置方法略  ip地址為192.168.0.2  子網掩碼:255.255.255.0  域名服務器:202.106.196.115  網關:192.168.0.1  全部網絡設置完成    2.2 NAT原理  2.2.1在進入NAT設置之前,我們要先討論一下NAT的工作原理  在引言部分,我們已經提到了一個NAT應用實例,從這個實例中可以看出NAT和防火牆是一體的,換句話說,NAT就是防火牆。NAT對防火牆來說是子集的關系。  在本節,我們會深入討論NAT的原理部分,為了更清晰的認識NAT,我們借用INTERNET標准化組織發布的RFC3022文檔的部分內容。  NAT有三種類型:靜態NAT(Static NAT)、網絡地址端口轉換DNAT(destination- NAT)、動態地址NAT(Pooled NAT)。我們主要討論前面2種nat.  靜態nat解決問題的辦法是:在內部網絡中使用內部地址,通過NAT把內部地址翻譯成合法的IP地址在Internet上使用,其具體的做法是把IP包內的地址域用合法的IP地址來替換。NAT設備維護一個狀態表(路由表,所以也稱NAT為軟路由),用來把非法的IP地址映射到合法的IP地址上去。每個包在NAT設備中都被翻譯成正確的IP地址,發往下一級,這意味著給處理器帶來了一定的負擔。但對於一般的網絡來說,這種負擔是微不足道的。  網絡地址端口轉換NAT,也叫做反向NAT,他解決問題的方法是:在內部網絡中,使用內部地址的計算機開設了網絡服務(80,21等),當外部ip想訪問這些服務時,NAT網關把外部訪問ip翻譯成內部ip,也就是說,把內部開設的服務,映射到一個合法的ip和端口上,已供外部訪問。  假如想進一步了解他的工作原理,NAT其實就是一種IP包欺詐,也可以說是對IP報頭的修改,請看下表  4位版本  4位首部長度  8位服務類型  16位總長度(字節數)  16位標識  3位標志  13位片偏移  8位生存時間(ttl)  8位協議  16位首部校驗和  32位源ip地址  32位目的ip地址  其他選項  攜帶數據  IP數據包格式和報頭中的各字段  NAT網關(外202.204.208.5;內192.168.0.1)收到本地局域網內的客戶機(192.168.0.2),發來的ip數據,先判斷是否是本地子網中發來的,假如通過,則按照她的目的ip地址查找本地路由表進行轉發,NAT在包被繼續向前送出之前轉換32位源地址192.168.0.1成202.204.208.5。相應的,IP包往回傳時依據相同的地址進行轉換。  2.2.2 NAT設置  我們知道了NAT的原理,就可以進行NAT的配置了,我們前面說過了NAT就是防火牆,在RED HAT9.0下自帶防火牆 IPTABLS  我們在做好網絡設置後,假如要實現客戶端(win98)通過服務端上網(靜態NAT),可以在命令行下直接打入  iptables -t nat -A POSTROUTING -o eth1 -j SNAT - to 202.204.208.5  說明:  -t nat : 調用nat表,調用這個表說明遇到了產生新的連接的包。  -A :該命令將一條規則附加到鏈的末尾。  POSTROUTING:指定正當信息包打算離開防火牆時改變它們的規則。  -o eth1:輸出接口為ETH1  -j SNAT:跳轉,也叫觸發條件,當滿足Snat規則是便發生跳轉  整條語句的意思為: 當防火牆遇到產生新的連接的包,則在他要離開防火牆時改變他的源ip為202.204.208.5並且從ETH1出口送出。    nat的規則指定完成後,還要打開IP轉發功能:  echo 1 > /proc/sys/net/ipv




Copyright © Linux教程網 All Rights Reserved