天天看點

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

文章目錄

  • SNAT政策概述
  • DNAT政策概述
  • SNAT和DNAT配置
  • 防火牆規則的備份和還原

SNAT政策概述

原理:修改資料包中的源IP位址

作用:可以實作區域網路共享上網

配置的表及鍊:nat表中的POSTROUTING

企業内部的主機A想通路網際網路上的主機C,首先将請求資料包(源:ipA,目标:ipC)發送到防火牆所在主機B,B收到後将資料包源位址改為本機公網網卡的ip(源:ipA,目标:ipB),然後經網際網路發送給C;C收到後将回應包(源:ipC,目标:ipB)轉發給C的路由器,經網際網路将回應包轉發給B,B收到回應包後修改其目的位址,即回應包改為(源:ipC,目标:ipA)然後将資料包轉發給A。

在這個過程中,修改了請求封包的源位址,叫做SNAT(source NAT POSTROUTING),用于區域網路通路網際網路。

注意:

不能在防火牆B的PREROUTING鍊上設定轉換源位址的防火牆政策,因為若在B的PREROUTING鍊上設定轉換源位址的防火牆政策,此時還未檢查路由表,還不知道要到達資料包中目标主機需經過本機的哪個網卡接口,即還不知道需将源位址替換為哪個公網網卡的ip,需在POSTROUTING設定轉換源位址的防火牆政策。

DNAT政策概述

原理:修改資料包中的目标IP位址

作用:将位于企業區域網路中的伺服器進行釋出

配置在nat表中的PREROUTING鍊上

網際網路主機C想通路企業内部的web伺服器A,但A的位址是私有位址,無法直接通路。此時,C可以通路防火牆的公網位址,C的請求資料包(源:ipC,目标:ipB)到達防火牆B後,在B的prerouting上将請求資料包的目标位址進行修改,并将資料包(源:ipC,目标:ipA)發送給A。A收到後進行回複發送響應包(源:ipA,目的ipC)到防火牆,防火牆收到後對資料包源位址進行修改,并将響應包(源:ipB,目标:ipC)給C。利用這種機制可以将企業内部的服務釋出到網際網路。

在這個過程中,修改了請求封包的目标位址,叫做DNAT(destination NAT POSTROUTING),用于網際網路通路區域網路。

注意:

必須在防火牆的prerouting上設定修改目标位址的防火牆政策,因為若不在此處修改,請求資料包通過prerouting和路由表後,由于目标主機是本機,就會将資料包發往input,進而被發往本地程序。

SNAT和DNAT配置

1.使用雙網卡,分别作為内網和外網的網關

内網網關位址:192.168.10.1
外網網關位址:12.0.0.1
           

2.開啟路由轉發功能

在/etc/sysctl.conf檔案中最後加入
net.ipv4.ip_forward=1
使用sysctl -p使其生效
           

3.将主機全部綁定在VMnet1網卡上形成區域網路

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

4.檢驗内網的主機能否ping通192.168.10.1和12.0.0.1;外網主機能否ping通12.0.0.1

5.内網主機先測試能否通路http服務

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

檢視網站伺服器的日志檔案/var/log/httpd/access_log,可以查到此時還是私網IP通路的

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

6.在防火牆伺服器中編寫SNAT轉換規則,在nat表中的POSTROUTING鍊的開頭加入規則:從私網192.168.10.10主機來的資料包從ens33外網網卡出去時,使用SNAT政策将源位址192.168.10.10轉換成公網位址12.0.0.1

[[email protected] ~]# iptables -t nat -I POSTROUTING -s 192.168.10.10 -o ens33 -j SNAT --to-source 12.0.0.1
           

7.内網主機再次通路外網的http服務,這時會發現用戶端192.168.10.10位址通路外網apache服務時,位址會被轉換成12.0.0.1

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

8.這時角色互換,内網現在有台apache伺服器,外網一台主機要通路内網中的網站伺服器。

未做DNAT政策時,外網無法通過12.0.0.1位址通路内網中的網站伺服器

9.在防火牆伺服器中編寫DNAT轉換規則,在nat表中的PREROUTING鍊的開頭加入規則:将進入外網網卡的原來的目的位址12.0.0.1通過DNAT政策轉換成192.168.10.10

[[email protected] ~]# iptables -t nat -I PREROUTING -d 12.0.0.1 -i ens33 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10
           

這時外網主機可以通過網關出接口位址來通路apache服務了

SNAT和DNAT原理及配置方法SNAT政策概述DNAT政策概述SNAT和DNAT配置防火牆規則的備份和還原

防火牆規則的備份和還原

将iptables規則儲存到檔案中進行備份:

iptables-save > /路徑/名稱

重新加載備份檔案中的iptables規則:

iptables-restore < 備份檔案的完整路徑

繼續閱讀