Linux系列-Red Hat5平臺下的Iptables防火牆應用(二)Iptables中必須掌握的兩個技術SNAT、DNAT

上次咱們已經對iptables做了一個瞭解,並且後面也舉了很多常用的例子。也許大家覺得很難,特別是那四張表和五個鏈。其實真正用的時侯沒哪麼複雜,等一下你們看完下面兩個應用就會覺得確實不難。
每個人學技術的目的都是爲客戶解決問題,給客戶拿出一套解決方案來。這樣纔算是做的有用功。Iptables有很多功能,咱們不用好高騖遠。學兩招真正用的上技術是比較現實的。說這番話的目的是爲了緩解大家面對iptables的壓力。
NAT就不用說了吧,相信大家也不會陌生。不管哪個企業哪個機構都會用到它,想上網除了走代理就是走NAT,所以咱們必須要把這個技術吃透。不但要掌握在路由、windows上的配置還要掌握在Linux系統上的配置。下面來看一下SNATDNAT的應用。
拓撲圖如下:

 

現在大家看到拓撲了,我們的目的是讓內網用戶安全的上網,另外就是把內網中的一臺主機名爲www.zpp.comweb服務器發佈出去。這些應用只要是個公司肯定都會有的,前面雖然已給出了用CISCO路由、windowsISA等設備的解決方案,但就性能和成本來說用Linux肯定是最划算的,現在大部分網吧、小型企業都用的是iptables.
這裏爲了大家閱讀方便我簡單羅列一下拓撲上的信息:
1>.網關服務器iptables有兩塊網卡,TCP/IP參數如下:
Eth0LAN接口)IP192.168.1.1/24
Eth1WAN接口)IP61.134.1.4/24
2>.內網Web服務器的IP爲:192.168.1.10/24網關:192.168.1.1 主機名:www.zpp.com
還是一樣分兩部分來說,先讓內網中的用戶上了網再說。然後再讓Internet用戶訪問咱們的Web服務器。
第一部分:利用SNAT技術使內網用戶安全上網。

SNATSource Network Address Translation)源網絡地址轉換,咱們用這個技術既可以化解四版本的地址危機,又可以起到隱藏局域網信息的功能。下面來看看如何使用SNAT技術使用內網用戶安全上網。
1.       確認兩塊網卡的TCP/IP參數設置.如圖:

 

2.       開啓網關服務器的路由轉發功能。
1>./etc目錄下找到文件sysctl.conf將文件中的net.ipv4.ip_forward = 0,改爲net.ipv4.ip_forward = 1.如圖:

 

2>.執行命令sysctl –p使咱們的修改生效。如圖:

 

3.       爲局域網訪問Internet的數據包採用SNAT策略,將源地址更改爲服務器的公網IP地址。
我這兒內網是192.168.1.0/24網段,所以源地址是192.168.1.0/24.

 

這時大家可能會問,如果我用的是ADSL撥號上網IP地址不是固定的而是動態的,如何設置這個策略?此時我們可以使用MASQUERADE(僞裝)策略。MASQUERADE是一種特殊的SNAT技術,它照樣可完成修改(僞裝)數據包源IP地址的工作,只不過它會自動獲取外網接口的IP地址。下面是MASQUERADE策略的用法:

 

說明:使用iptables命令設置MASQUERADE策略時,只需要去掉SNAT策略中的“—to-source IP地址”,改爲“-j MASQUERADE”指定數據包處理方式即可。ADSL通常使用PPPoE技術,在Linux系統中,對應的連接名稱爲ppp0ppp1等,如果沒不確定編號可以用ppp+代替。

現在來測試一下:
在內網的客戶機上使用命令nslookup,可以成功解析出外網google網站的IP說明DNS請求可以通過SNAT正常進行。如圖:

 

從下圖可以看到我們利用SNAT我們可以成功的訪問外部站。

 

第二部分:利用DNAT技術將位於咱們局域網內部的web服務器發佈出去
DNATDestination Network Address Translation)目標網絡地址轉換。和SNAT剛好相反,DNAT更靈活一點它可以用在nat表的PREROUTING鏈和OUTPUT鏈或被它調用的鏈。咱們用DNAT技術可以將內網或DMZ區中的服務器發佈出去,
只需要一部搞定如下。在網關服務器上添加DNAT映射,將外網用戶訪問網關主機公網IP(地址爲:61.134.1.480端口的數據包更改爲網站主機的IP(地址爲:192.168.1.2).如圖:

 

現在我們到外網主機上去測試一下,可以看到可以成功訪問內網的web主機。

 

(注:我這裏開了一臺啓動了httpd服務的Linux主機用於模擬內網web主機www.zpp.com
通過命令nslookup可以測試出,主機www.zpp.com所對應的IP是網關服務器的外網口地址。

 

    OK!現在我們iptables中的兩個關鍵技術——SNATDNAT解決了兩個關鍵的問題——用戶安全上網的問題和發佈內網服務器的問題。大家也可以發現雖然是關鍵的東西,但做起來並不難,幾乎都只是一條命令搞定。這也正順應了一句話——Linux是一種高起點低應用的技術,往往我們再學的時侯感覺很困難,但真真用的時侯就不哪樣認爲了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章