【Q】之防火墙的SNAT DANT原理应用
SNAT DANT
- 一、 SNAT原理的應用
- 1.1 原因環境和原理
- 1.2 開啟SNAT的命令
- 1.臨時打開∶
- 2.永久打開:
- 1.3 SNAT轉換
- 1.3.1 SNAT轉換1∶固定的公網IP地址∶
- 二、 DNAT原理的應用
- 2.1 DNAT的工作原理
- 2.2 DNAT轉換前提條件
- 2.3 DNAT轉換1∶ 發布內網的Web服務
- 2.4 DNAT轉換2∶ 發布時修改目標端口
- 2.5 防火墻規則的備份和還原
- 三、Linux抓包
一、 SNAT原理的應用
1.1 原因環境和原理
SNAT 應用環境∶局域網主機共享單個公網IP地址接入Internet (私有IP不能在Internet中正常路由)
SNAT原理∶修改數據包的源地址。 SNAT轉換前提條件∶
局域網各主機已正確設置IP地址、子網掩碼、默認網關地址
Linux網關開啟IP路由轉發
1.2 開啟SNAT的命令
1.臨時打開∶
echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1
2.永久打開:
vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1 #將此行寫入配置文件
sysctl -P #讀取修改后的配置
1.3 SNAT轉換
局域網PC封裝源、如:目ip(源地址:192.168.100.77,目的地址:172.16.16.101),到達網關路由器,SNAT將源地址轉換成唯一的一個公網ip,此時源地址變成了公網ip172.16.16.254(eth0),再把數據包重新封裝。當外網服務器收到,進行數據回復的時候。源目對調,源地址是web服務器地址,目標地址是網關地址,找到網關路由之后,在網關路由中會有一個狀態記錄(局域網內或許不止一臺主機訪問外網),轉發回去。
1.3.1 SNAT轉換1∶固定的公網IP地址∶
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -i SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
內網IP 出站 外網網卡 外網IP或地址池
小知識擴展∶ 一個IP地址做SNAT轉換,一般可以讓內網 100到200 臺主機實現上網。
二、 DNAT原理的應用
2.1 DNAT的工作原理
進行DNAT轉發的過程如下圖:
2.2 DNAT轉換前提條件
網關的外網地址有正確的DNS解析記錄
Linux網關開啟IP路由轉發
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysct1 -p
2.3 DNAT轉換1∶ 發布內網的Web服務
#把從ens33進來的要訪問web服務的數據包目的地址轉換為 192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp–dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp–dport 80-j DNAT --to-destination 192.168.80.11
入站|外網網卡 | 外網ip 內網服務器ip
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80-j DNAT --to 192.168.80.11-192.168.80.20
2.4 DNAT轉換2∶ 發布時修改目標端口
#發布局域網內部的OpenSSH服務器, 外網主機需使用250端口進行連接
iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp–dport 250-jDNAT --to 192.168.80.11:22
#在外網環境中使用SSH測試
ssh -p 250 root@12.0.0.1
yum -y install net-tools #若沒有 ifconfig 命令可提前使用 yum 進行安裝
ifconfig ens33
注意∶ 使用DNAT時,同時還有配合SNAT使用,才能實現響應數據包的正確返回 。
小知識擴展∶
主機型防火墻 主要使用 INPUT、oUTPUT 鏈, 設置規則時一般要詳細的指定到端口
網絡型防火墻 主要使用 FORWARD鏈,設置規則時很少去指定到端口,一般指定到IP地址或者到網段即可
2.5 防火墻規則的備份和還原
導出 (備份)所有表的規則
iptables-save > /opt/ipt.txt
導入(還原)規則
iptables-restore < /opt/ipt.txt
將iptables規則文件保存在 /etc/sysconfig/iptables 中,iptables服務啟動時會自動還原規則 iptables-save >/etc/sysconfig/iptables
systemctl stop iptables #停止iptables服務會清空掉所有表的規則
systemctl start iptables #啟動iptables服務會自動還原/etc/sysconfig/iptables 中的規則
三、Linux抓包
tcpdump tcp-i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp∶ ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型
(2)-i ens33 ∶只抓經過接口ens33的包
(3)-t ∶不顯示時間戳
(4)-s 0 ∶ 抓取數據包時默認抓取長度為68字節。加上-s 0 后可以抓到完整的數據包
(5)-c 100 ∶只抓取100個數據包
(6)dst port ! 22 ∶不抓取目標端口是22的數據包
(7)src net 192.168.1.0/24 ∶數據包的源網絡地址為192.168.1.0/24。Net:網段,host:主機
(8)-w ./target.cap ∶ 保存成cap文件,方便用ethereal (即wireshark)分析
總結
以上是生活随笔為你收集整理的【Q】之防火墙的SNAT DANT原理应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Q】之Linux中的防火墙netfil
- 下一篇: 企业网站之html,httpd概述