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