iptables防火墙之SNAT与DNAT
目錄
一、SNAT策略及應用
1.1 SNAT策略概述
1.1.1 SNAT 應用環境
1.1.2 SNAT 原理
1.1.3 SNAT 轉換前提條件
1.2 開啟SNAT的命令
1.2.1 臨時打開
1.2.2 永久打開
1.3 SNAT轉換1:固定的公網IP地址
1.3.1 配置網關服務器 (192.168.100.100/10.0.0.1)? 19機器
1.3.2 Xshell 連接192.168.100.100
1.3.3 配置web服務器(外網)13機器
二、DNAT策略及應用
2.1 DNAT策略概述
2.2 DNAT 策略的應用
2.3 DNAT策略用法
2.3.1 前面網關服務器設置的兩個網卡ens33和ens36不需要改動
2.3.2 設置win10網卡模式及IP
2.3.3? web服務器修改網卡ip?編輯
2.3.4 重啟網卡?編輯
2.3.5 把從ens36進來的要訪問web服務的數據包目的地址轉換為192.168.100.118?編輯
2.3.6 修改網卡模式為VMnet1
2.3.7 訪問10.0.0.1
?三、規則的導出、導入
3.1 規則的備份及還原
3.1.1 iptables-save 命令
3.1.2 iptables-restore 命令
3.2 使用 iptables 服務
3.2.1 自動啟用防火墻規則
3.2.2 清空所有防火墻規則
總結
一、SNAT策略及應用
1.1 SNAT策略概述
1.1.1 SNAT 應用環境
局域網主機共享單個公網IP地址接入Internet (私有IP不能在Internet中正常路由)
1.1.2 SNAT 原理
(1)源地址轉換
(2)修改數據包的源IP地址,通常被叫做源映射。
1.1.3 SNAT 轉換前提條件
(1)局域網各主機已正確設置IP地址、子網掩碼、默認網關地址
(2)Linux網關開啟IP路由轉發
Linux系統本身是沒有轉發功能,只有路由發送數據。
1.2 開啟SNAT的命令
1.2.1 臨時打開
echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1
1.2.2 永久打開
vim /etc/sysctl.conf
net. ipv4.ip_forward = 1?? ??? ??? ??? ?#將此行寫入配置文件
?
sysctl -p ? ??? ??? ???? #讀取修改后的配置
1.3 SNAT轉換1:固定的公網IP地址
#配置SNAT策略,實現snat功能,將所有192.168.100.0這個網段的ip的源ip改為10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1
??????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ?? 可換成單獨IP??? 出站外網網卡?????????? ? ? ?? 外網IP
或
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10
??????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? 內網IP??? ?? ?? 出站外網網卡?????????????? 外網IP或地址池
1.3.1 配置網關服務器 (192.168.100.100/10.0.0.1)? 19機器
1. 添加兩塊網卡,定義為VMnet3 10.0.0.0網段?? VMnet1為內網,VMnet3為外網
2.修改ens33網卡信息,注釋網關和DNS,修改IP地址為192.168.100.100
3.修改ens36網卡信息,注釋網關和DNS,修改IP地址為10.0.0.1
4.重啟網卡
1.3.2 Xshell 連接192.168.100.100
設置永久打開SNAT?????? sysctl -p 讀取修改后的配置
?清空規則? iptables -F
配置SNAT策略,實現snat功能,將所有192.168.100.0網段的ip的源ip改為10.0.0.1
1.3.3 配置web服務器(外網)13機器
注:查看是否安裝httpd服務,如未安裝,則先進行安裝
編譯安裝httpd:
1.修改網卡模式為VMnet3
2. 修改ens33網卡
3.重啟網卡
?4.開啟httpd服務,關閉防火墻和增強
5.設置win10網卡模式及IP
修改網卡模式為VMnet1??
6.訪問10.0.0.12
二、DNAT策略及應用
DNAT 是 Linux 防火墻的另一種地址轉換操作,同樣也是 iptables 命令中的一種數據包控制類型,其作用是根據指定條件修改數據包的目標IP地址和目標端口。
2.1 DNAT策略概述
DNAT 策略與 SNAT 非常相似,只不過應用方向相反
SNAT 用來修改源 IP 地址,而 DNAT 用來修改目標 IP 地址和目標端口;SNAT 只能用在 nat 表的 POSTROUTING 鏈中,而 DNAT 只能用在 nat 表的 PREROUTING 鏈和 OUTPUT鏈(或被其調用的鏈)中
在 Internet 環境中,企業所注冊的網站域名必須對應合法的公網 IP 地址,在這種情況下,Internet 中的客戶機將無法訪問公司內網的服務器,除非在網關服務器中正確設置 DNAT 策略
使用 DNAT 策略的效果如下:當 Internet 中的客戶機提交的 HTTP 請求到達企業的網關服務器時,網關首先判斷數據包的目標地址和目標端口,若發現該數據包需要訪問本機的 80 端口,則將其目標 IP 地址修改為內網中真正的網站服務器的 IP 地址,然后才發送給內部的網站服務器
上述 DNAT 轉換地址的過程,網關服務器會根據之前建立的 DNAT 映射,修改返回的 HTTP 應答數據包的源 IP 地址,最后再返回給 Internet 中的客戶機,Internet 中的客戶機并不知道企業網站服務器的真實局域網地址,中間的轉換完全由網關主機完成。
2.2 DNAT 策略的應用
DNAT 的典型應用是在 Internet 中發布企業內部的服務器,處理數據包的切入時機是在路由選擇之前(PREROUTING)進行。
關鍵操作是將訪問網關外網接口 IP 地址(公有地址)的數據包的目標地址修改為實際提供服務的內部服務器的 IP 地址(私有地址)
使用 iptables 命令設置 DNAT 策略時,需要結合 “- -to-destination IP地址” 選項來指定內部服務器的 IP 地址
2.3 DNAT策略用法
DNAT轉換:發布內網的Web服務
2.3.1 前面網關服務器設置的兩個網卡ens33和ens36不需要改動
2.3.2 設置win10網卡模式及IP
設置win10網卡模式及IP
2.3.3? web服務器修改網卡ip
2.3.4 重啟網卡
2.3.5 把從ens36進來的要訪問web服務的數據包目的地址轉換為192.168.100.118
2.3.6 修改網卡模式為VMnet1
2.3.7 訪問10.0.0.1
?三、規則的導出、導入
在 Linux 系統中, iptables 為我們提供了批量備份與恢復規則的命令,也提供了標準的系統服務以便開啟、關閉防火墻功能。
3.1 規則的備份及還原
防火墻規則的批量備份、還原用到兩個命令,即 iptables-save 和 iptables-restore,分別用來保存(Save)和恢復(Restore)。
3.1.1 iptables-save 命令
iptables-save 命令用來批量導出 Linux 防火墻規則,直接執行 iptables-save save 命令時,將顯示出當前啟用的所有規則
iptables-save- 在 iptables-save 命令的輸出信息中,以“#”號開頭的內容表示注釋,“*表名”表示所在的表,”:鏈名 默認策略”表示相應的鏈及默認策略,具體的規則部分省略了命令名“iptables”,后面的“COMMIT”表示提交前面的規則設置
- 由于 iptables-save 命令只是把規則內容輸出到屏幕上,因此當需要保存為固定的文件時,還應該結合重定向輸出的操作以完成備份
例如,若要將當前已設置的所有防火墻規則備份為opt/ipt.txt 文件,可以執行以下操作:
iptables-save > /opt/ipt.txt #備份所有表的規則3.1.2 iptables-restore 命令
- iptables-restore命令用來批量導入Linux 防火墻規則,如果已經使用 iptables-save 命令導出備份文件,則恢復規則的過程在一瞬間就能完成。
- 與 iptables–save 命令相對的 iptables-restore 命令也應結合重定向輸入來指定備份文件的位置
3.2 使用 iptables 服務
通過名為 iptables 的系統服務,可以快速啟用、清空防火墻規則,iptables 服務使用的規則文件位于 /etc/sysconfig/iptables 文件中,配置格式與 iptables-save 命令輸出的一致。
3.2.1 自動啟用防火墻規則
-
在服務器中調試好各種iptables規則后,使用 iptables-save 備份為默認的規則配置文件位于etc/sysconfig/iptables,然后就可以通過 iptables 服務來調用
-
例如,保存當前的防火墻規則,并設置在每次開機后根據已保存的規則內容自動進行重建,可以執行下面的操作
3.2.2 清空所有防火墻規則
- 在調試各種防火墻規則的過程中,為了排除其他規則的干擾,有時候需要清空某些表的規則。
- 當需要一次清空所有表的規則時,停用 iptables 服務是最快捷的方法,也是最徹底的方法。
總結
- 一個IP地址做SNAT轉換,一般可以讓內網100到200 臺主機實現上網
- 主機型防火墻主要使用INPUT、OUTPUT鏈,設置規則時一般要詳細的指定到端口
- 網絡型防火墻主要使用FORWARD鏈,設置規則時很少去指定到端口,一般指定到IP地址或者到網段即可
總結
以上是生活随笔為你收集整理的iptables防火墙之SNAT与DNAT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASEMI三端正线性稳压器78M05工作
- 下一篇: 卷王-企业如何选择私有部署调查问卷系统