linux防火牆(四)—— SNET和DNET原理及應用


                    圖(1)

一、SNAT策略

  應用環境:局域網主機共享單個公網IP地址接入Internet,簡單的說就是企業內部局域網想訪問外部服務器時,網關型防火牆需要開啟的SNAT應用策略。

  SNAT策略原理:網關型防火牆把源地址轉換,修改數據包的源地址。

  *未作SNAT轉換時內網數據包通信的分析:

  圖(2)中局域網以192.168.1.234的IP訪問Web服務,發送數據包時,網絡層會封裝源地址和目標地址,當Web服務器進行HTTP應答時,找不到192.168.1.234的IP地址(私網地址不允許出現在公網),所以通訊中斷。

  

                    圖 (2)

  *進行SNAT轉換后的數據包通信分析:

  圖(3)中網關服務器應用了SNAT策略,當局域網訪問外網的數據到達網關,會先進行路由選擇,若發現數據包需要從外網接口eht0向外轉發,則將其源IP地址修改為網關的外網接口地址218.29.30.31,然后再發送給目標Web服務器,相當於從網關服務器的公網IP地址提交數據訪問請求,因為是公網IP,當Web服務器進行HTTP應答時,也可以正確返回響應數據包。

  

                    圖 (3)

  *在上述地址轉換的過程中,網關服務器會根據之前建立的SNAT映射,將響應數據包正確返回局域網中的源主機,因此,只要連接的第一個包被SNAT處理了,那么這個連接及對應數據流的其他包也會自動地進行SNAT處理,另一方面,Internet中的服務器並不知道局域網PC的實際IP地址,中間的轉換完全由網關主機完成,一定程度上也起到了保護內部網絡的作用。

二、設置SNAT規則

前提條件:

  局域網各主機正確設置IP地址和子網掩碼

  局域網各主機正確設置默認網關地址

  Linux網關支持IP路由轉發,即/etc/sysctl.conf文件中的net.ipv4.ip_forword = 1

(1)SNAT轉換規則1:固定的外網IP地址

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 218.29.30.31

(2)SNAT轉換規則2:非固定外網IP地址或ADSL

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

三、DNAT策略

  應用環境:在Internet中發布位於企業局域網內的服務器

  DNAT策略原理:目標地址轉換,修改數據包的目標地址

  注意:企業所注冊的網站域名必須對應公網IP地址

  *進行DNAT轉換后的數據包通信分析:

  圖(4)中,外網請求內網服務器時,目的地址是我們的公網IP 218.29.30.31,網關服務器發現你請求的是80端口,就把你的目的地址(我們的公網IP 218.29.30.31)修改為端口號為80端口的Web服務器192.168.1.6;當我們發送應答包的時候就用到了SNAT策略,這樣一去一回,就構成了我們完整的通信過程。

  

                      圖 (4)

四、設置DNAT規則

前提條件:

  局域網的Web服務器能夠訪問Internet

  網關的外網IP地址有正確的DNS解析記錄

  Linux網關支持IP路由轉發

(1)DNAT轉換規則1:發內網Web服務

iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.6

(2)DNAT轉換規則2:發布時修改目標端口

如果我想在外網訪問我們內網服務器的22號端口,連接ssh的話不能直接把 --dport 80改為22,因為網關防火牆本身也有22號端口,我們可以對端口進行轉化,把服務器的22號端口,通過網關防火牆轉化為了250號端口,因此我們訪問250號端口就是訪問了服務器的22號端口。如下語句轉換了IP的同時也轉換了端口。

1 iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 250 -j DNAT --to-destination 192.168.1.6:22 #配置方法
2 ssh 218.29.30.31:250  #訪問方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM