IP tables防火墻:SNAT策略、DNAT策略
·SNAT(源地址轉換):是Linux防火墻的一種地址轉換操作,也是iptables命令中的一種數據包控制類型,其作用是根據指定調教修改數據包的源IP地址
內部地址要訪問公網上的服務時(如web訪問),內部地址會主動發起連接,由路由器或者防火墻上的網關對內部地址做個地址轉換,將內部地址的私有IP轉換為公網的公有IP,網關的這個地址轉換稱為SNAT,主要用於內部共享IP訪問外部。
·SNAT策略只能用在nat表的POSTROUTING鏈,使用iptables命令編寫SNAT策略時,需要結合‘--to-source IP’選項來指定修改後的源IP地址
·DNAT(目標地址址轉換):是
當內部需要提供對外服務時(如對外發布web網站),外部地址發起主動連接,由路由器或者防火墻上的網關接收這個連接,然後將連接轉換到內部,此過程是由帶有公網IP的網關替代內部服務來接收外部的連接,然後在內部做地址轉換,此轉換稱為DNAT,主要用於內部服務對外發布。
·DNAT策略只能用在nat表的PREROUTING鏈,使用使用iptables命令編寫DNAT策略時,需要結合‘--to-destination IP地址’選項來指定內部服務器的IP地址
SNAT+DNAT註意事項:
·SNAT策略只能用在nat表的POSTROUTING鏈;
·SNAT將內部地址的私有IP轉換為公網的公有IP;
·SNAT用於內部共享IP訪問外部。
·DNAT策略只能用在nat表的PREROUTING鏈;
·DNAT主要用於內部服務對外發布;
SNAT+DNAT實現前準備:
系統 其他 | IP 地址 | 用途 |
Win 7 | 192.168.100.40 | 充當內網web服務器 |
Linux
(CentOS7) | ens33:192.168.100.1
ens36:12.0.0.1 | 充當防火墻 ens33:當作內網網關 ens36:當作外網網關 |
Linux (RedHat6) | 12.0.0.12 | 充當外網服務器(httpd) |
SNAT+DNAT策略開始
·因為Linux(CentOS7)作為防火墻網關,需要添加一塊網卡,並對其進行IP配置!以上表格已註明IP地址和作用
·win7作為內網服務器,了為之後的驗證,為它建立一個網站服務,可以讓外網訪問此網站:
·Linux(RedHat6)作為外網服務器,同樣也安裝httpd服務。並且修改IP地址為:12.0.0.12 網關為:12.0.0.1
執行以下命令:
yum install httpd -y //安裝httpd服務
service httpd start //啟動httpd服務
service iptables stop //關閉防火墻
setenforce 0 //關閉selinux
·Linux(CentOS7)從當防火墻,把iptables的所有規則刪除包括nat表裏的規則:
·對於Linux服務器,IP轉發是實現路由功能的關鍵所在,若要Linux主機作為網關設備,就必須開啟路由功能,修改配置文件:vim /etc/sysctl.conf
在執行命令:sysctl -p //讀取修改後的配置
·內網win7需要訪問外網RedHat6的httpd服務,那麽就需要做SNAT策略,由下圖說明命令所代表含義:
·現在外網RedHat6需要訪問內網win7的web服務,那麽就需要做DNAT策略,由下圖說明命令所代表含義:
驗證:
內網訪問外網:
查看httpd的日誌文件,可以看到是哪個IP 訪問httpd:
實驗成功。
總結:
·在配置防火墻或者路由acl策略時要註意這兩個NAT一定不能混淆。
·註意內網和外網的網卡名稱,在配置時不要混淆
·DNAT策略只能用在nat表的PREROUTING鏈
·SNAT策略只能用在nat表的POSTROUTING鏈
IP tables防火墻:SNAT策略、DNAT策略