最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux防火墻之SNAT和DNAT詳解

 更新時間:2025年09月27日 09:09:00   作者:yucfkyu  
SNAT將內(nèi)網(wǎng)源地址轉(zhuǎn)為公網(wǎng)IP,實現(xiàn)多主機共享;DNAT映射內(nèi)網(wǎng)服務(wù)到公網(wǎng),供外部訪問,iptables和firewalld用于地址轉(zhuǎn)換,前者靜態(tài)規(guī)則,后者動態(tài)區(qū)域管理

1.SNAT是什么

SNAT又稱源地址轉(zhuǎn)換。源地址轉(zhuǎn)換是內(nèi)網(wǎng)地址向外訪問時,發(fā)起訪問的內(nèi)網(wǎng)ip地址轉(zhuǎn)換為指定的ip地址(可指定具體的服務(wù)以及相應(yīng)的端口或端口范圍),這可以使內(nèi)網(wǎng)中使用保留ip地址的主機訪問外部網(wǎng)絡(luò),即內(nèi)網(wǎng)的多部主機可以通過一個有效的公網(wǎng)ip地址訪問外部網(wǎng)絡(luò)。

真實環(huán)境運用中私網(wǎng)可以通過路由轉(zhuǎn)發(fā),將數(shù)據(jù)包傳送給公網(wǎng)IP地址的服務(wù)器,而公網(wǎng)地址無法將相應(yīng)的數(shù)據(jù)包回還給私網(wǎng)地址的用戶。此時二者之間需要一個媒介,就是一個建立在私網(wǎng)和公網(wǎng)之間的網(wǎng)關(guān)服務(wù)器,對其之間的數(shù)據(jù)包進行相應(yīng)的處理。來完成私網(wǎng)IP與公網(wǎng)IP之間的建立聯(lián)系 

2.DNAT是什么

 DNAT:目的地址轉(zhuǎn)換的作用是將一組本地內(nèi)部的地址映射到一組全球地址。通常來說,合法地址的數(shù)量比起本地內(nèi)部的地址數(shù)量來要少得多。

  • 私網(wǎng)地址只能作為源地址來訪問公網(wǎng)IP,而無法作為目標(biāo)地址被其他主機訪問
  • 所以DNAT將私網(wǎng)中web服務(wù)器映射到公網(wǎng)IP,使其公網(wǎng)IP作為目標(biāo)地址被公網(wǎng)中主機進行訪問

簡單來說:

  • SNAT是對源地址轉(zhuǎn)換
  • DNAT是對目的地址轉(zhuǎn)換

SNAT的典型應(yīng)用場景

SNAT策略的工作原理

SNAT源地址轉(zhuǎn)換過程:

  • 數(shù)據(jù)包從內(nèi)網(wǎng)發(fā)送到公網(wǎng)時,SNAT會把數(shù)據(jù)包的源地址由私網(wǎng)IP轉(zhuǎn)換成公網(wǎng)IP。
  • 當(dāng)相應(yīng)的數(shù)據(jù)包從公網(wǎng)發(fā)送到內(nèi)網(wǎng)時,會把數(shù)據(jù)包的目的地址由公網(wǎng)IP轉(zhuǎn)換為私網(wǎng)IP。
  • 當(dāng)內(nèi)網(wǎng)有多臺主機訪問外網(wǎng)時,SNAT在轉(zhuǎn)換時會自動分配端口,不同內(nèi)網(wǎng)主機會通過端口號進行區(qū)分。

如何用iptables實現(xiàn)地址轉(zhuǎn)換

準(zhǔn)備任務(wù)

1.準(zhǔn)備三臺虛擬機

2.給網(wǎng)關(guān)服務(wù)器添加一張?zhí)摂M網(wǎng)卡

3.拓?fù)洌?/p>

  • test1:20.0.0.10 內(nèi)網(wǎng)
  • test2:ens33: 20.0.0.254
  • ens36:12.0.0.254

做SNAT的地址轉(zhuǎn)換

  • test3:12.0.0.100 外網(wǎng)

過程

關(guān)閉防火墻

編輯網(wǎng)卡信息

首先ifconfig查看網(wǎng)卡名稱(我這里是ens36)

cd /etc/sysconfig/network-scripts
#進入該路徑
cp ifcfg-ens33 ifcfg-ens36
#創(chuàng)建新網(wǎng)卡信息

TYPE=Ethernet
DEVICE=ens36
ONBOOT=yes
BOOTPROTO=static
IPADDR=12.0.0.254
NETMASK=255.255.255.0
#GATEWAY=20.0.0.2
#DNS1=8.8.8.8

此處不用設(shè)置網(wǎng)關(guān),因為要充當(dāng)內(nèi)網(wǎng)網(wǎng)關(guān)

TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=20.0.0.254
NETMASK=255.255.255.0
#GATEWAY=20.0.0.2
#DNS1=8.8.8.8

客戶機配置

TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=20.0.0.10
NETMASK=255.255.255.0
GATEWAY=20.0.0.254
#DNS1=218.2.135.1

web配置

TYPE=Ethernet
DEIVCE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.254
#DNS1=8.8.8.8

網(wǎng)卡配置結(jié)束后,要通過iptables命令添加

iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o ens36 -j SNAT --to 10.0.0.10
  • -t:指定表名
  • nat:地址轉(zhuǎn)換的表名
  • -A:添加一條規(guī)則,在行尾追加
  • POSTROUTING:在出本機的時候添加一個地址轉(zhuǎn)換的規(guī)則
  • -s:192.168.233.0/24 指定源IP地址
  • -j SNAT:指定控制類型
  • --to 10.0.0.10 所有源IP屬于233.0這個網(wǎng)段,只要你是從ens36出來,都會把它們IP地址轉(zhuǎn)換為10.0.0.10

完成之后,  iptables -t nat -vnL查看

  • 最后,網(wǎng)關(guān)服務(wù)器要同意轉(zhuǎn)發(fā)
vim /etc/sysctl.conf

sysctl -p

立即啟動

客戶端鏈接web端(內(nèi)網(wǎng)鏈接外網(wǎng))測試

DNAT地址轉(zhuǎn)換

iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 20.0.0.10:80

web端連接客戶端測試

實驗結(jié)束

Linux抓包技術(shù)--tcpdump

  • tcpdump為Linux自帶的抓包工具
  • wireshark只適用于Windows

抓包方式:

  • 1.指定抓包數(shù)量
  • 2.動態(tài)抓包,一致會獲取包,除非人工停止
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and net 20.0.0.0/24 -w ./target.cap
  • tcpdump:抓包命令,固定開頭
  • tcp:抓包的協(xié)議
  • -i:經(jīng)過,只抓經(jīng)過ens33的數(shù)據(jù)包
  • -t:不顯示時間戳
  • -s0:抓完整的數(shù)據(jù)包
  • -c:指定抓包的個數(shù)
  • dst port:80 訪問的是httpd的80端口
  • src net:192.168.233.0/24
  • -w:抓包的數(shù)據(jù),保存位置。

firewalld技術(shù)

  • firewalld:centos7自帶的,和iptables一樣,也是包過濾防火墻
  • firewalld過濾,通過區(qū)域來進行配置
  • iptables 靜態(tài)防火墻
  • firewalld 動態(tài)防火墻

firewalld 分為以下幾個區(qū)域

  • trusted :信任區(qū),所有流量都可以傳入
  • public :公共區(qū)域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕,也是firewalld的默認(rèn)區(qū)域。
  • external:外部區(qū)域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕,默認(rèn)通過此區(qū)域轉(zhuǎn)發(fā)的ipv4流量地址,可以進行偽裝
  • home 家庭區(qū)域:允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕
  • internal:內(nèi)部區(qū)域,默認(rèn)值與home區(qū)域的作用相同
  • work 工作區(qū)域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕
  • DMZ 隔離區(qū) 非軍事區(qū):允許ssh,其他的預(yù)定義好配置,其他的全部拒絕
  • block:限制區(qū),拒絕所有流量
  • drop:丟棄區(qū)域,所有流量都會丟棄

firewalld相關(guān)命令

firewall-cmd --list-service

查看區(qū)域內(nèi)允許通過的服務(wù)

firewall-cmd --add-service=http --zone=public

添加,瀏覽器20.0.0.10即可看到是否成功

firewall-cmd --remove-service=http --zone=public

刪除

firewall-cmd --add-service=http --add-service=ftp --zone=pubilc

添加多個服務(wù)

firewall-cmd --list-services

查看

firewall-cmd --add-service={ftp,http}

添加多個的不同方法

firewall-cmd --add-service={ftp,http} --zone=public --permanent

永久生效

firewall-cmd --remove-service=http --zone=public --permanent

刪除永久生效的項

firewall-cmd --zone=public --add-port=80/tcp

根據(jù)端口添加

firewall-cmd --zone=public --remove-port=80/tcp

移除

firewall-cmd --zone=指定區(qū)域
firewall-cmd --zone=public -add-port={3306,80,21}/tcp

添加多個端口

firewall-cmd --zone=public -add-port=30-35/tcp

添加端口的范圍

firewall-cmd --list-all 查看

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

绿春县| 九寨沟县| 龙州县| 马鞍山市| 米易县| 洛南县| 南宫市| 崇阳县| 怀安县| 射阳县| 仙居县| 微博| 西安市| 崇阳县| 星座| 红安县| 台北县| 建阳市| 关岭| 肇源县| 巴青县| 莱州市| 盐亭县| 盘山县| 宜黄县| 陆丰市| 彰化县| 门源| 铜山县| 莱州市| 神农架林区| 田东县| 且末县| 汉寿县| 甘泉县| 朝阳区| 墨竹工卡县| 金寨县| 文化| 炉霍县| 凌源市|