• DNAT转换与tcpdump抓包


    内容预知

     1. DNAT的介绍

     2. DNAT实验设计

     3.DNAT具体实验步骤操作

     4. DNAT与DNS分离解析相结合

     5.tcpdump抓包工具的运用

    5.1进行动态抓包处理(一旦遇到有指定数据包的出现,开始运转)

    5.2 用客户机访问web服务器,且停止抓包 

    5.3 使用windows主机获取抓包数据拖进wireshark 

    6.4 wireshark筛选数据包

     总结


     1. DNAT的介绍

     DNAT:目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。通常来说,合法地址的数量比起本地内部的地址数量来要少得多。

    私网地址只能作为源地址来访问公网IP,而无法作为目标地址被其他主机访问

    所以DNAT将私网中web服务器映射到公网IP,使其公网IP作为目标地址被公网中主机进行访问

     

    拓展:

    • 客户机想访问服务器时,访问的是网关地址,由网关去找服务器的内网地址。
    • 如果多台服务器使用同一个网关,那么通过不同的端口号来对应不同的服务器。

     

     DNAT策略的原理:

    • 目标地址转换,Destination Network Address Translation
    • 修改数据包的目标地址

    DNAT源地址转换过程:

    • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP。
    • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP。

     

     2. DNAT实验设计

     

     通过DNAT将web服务器的提供的httpd服务映射到网关服务器ens36网卡,且端口为80上面

     

     3.DNAT具体实验步骤操作

     第一步:配置好网卡与环境

     

     注意:与DNAT实验时相反,这次的web服务器在内网环境,服务机在公网环境

     按照部署图设置网卡和vment即可

     

    第二步:web服务器安装httpd服务,且开启httpd服务 

    第三步:对网关服务器进行操作

    1.设置路由转发

     

    1. #永久启用
    2. vim /etc/sysctl.conf
    3. net.ipv4.ip_forward=1
    4. sysctl -p

     2. 设置SNAT

     

    使用DNAT的前提就是要用配置好SNAT

    [root@localhost network-scripts]#  iptables -t nat -A POSTROUTING -s 192.168.73.0/24 -o ens36 -j SNAT --to 12.0.0.254
    

     

    3.设置好DNAT 

    [root@localhost network-scripts]# iptables -t  nat  -A PREROUTING  -d 12.0.0.254  -p tcp --dport 80 -i ens36 -j DNAT --to 192.168.73.111:80
    

     

     

    用客户机访问web服务器映射的IP测试:

     

     

    但是这样的设置存在的最大缺点是我们通常并不会通过IP去访问,更多的时运用域名,而内网访问web服务器是用内网的私网地址,而外网访问则是映射的外网IP。所以DNAT的运用一般我们会用DNS分离解析来配合使用。使其实现内网主机通过内网域名转换为内网IP访问,外网主机也能通过域名转换为外网IP进行访问

     4. DNAT与DNS分离解析相结合

     方法:直接在上面配好SNAT和DNAT的基础上,在网关服务器配置分离解析即可

    内网配置为   :www.yang.com    解析成    192.168.73.111

    外网配置      : www.yang.com    解析成    12.0.0.254(web服务器映射外网IP) 

     分离解析的方法,在我前面的博客有详细记录:
     

     Linux中DNS的分离解析和自动分配_站在这别动,我去给你买橘子的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/qq_62462797/article/details/126365851?spm=1001.2014.3001.5501

     

     

     

     外网解析测试结果:

     

     

     

     

    内网主机测试结果 :

     

     

     

     

     5.tcpdump抓包工具的运用

    wireshark 抓包工具只在windows中使用。

    tcpdump 可以在Linux系统中使用。

     

    tcpdump是Linux系统中自带抓包工具 

    [root@localhost network-scripts]# rpm -q tcpdump
    

     

     

     

    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)-s0 :抓取数据包时默认抓取长度为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)分析。

    5.1进行动态抓包处理(一旦遇到有指定数据包的出现,开始运转)

     

    [root@localhost opt]# tcpdump -i ens36  -s0 -w  ./ens36.cap
    

    5.2 用客户机访问web服务器,且停止抓包 

     

     

     

     

    5.3 使用windows主机获取抓包数据拖进wireshark 

    获取方法:1.设置ftp,通过ftp直接get

                       2 .winscp  直接远程登录,将/opt目录下的抓包数据拖进win主机中

    6.4 wireshark筛选数据包

    ip.addr=指定IP 

     tcp.dport=服务端口      目的端口匹配  

    tcp.sport=服务端口        源端口匹配

    还可以通过  “&&” 多条件一起匹配

     

     总结

    1.通过iptables实现Linux中的SNAT源地址转换,DNAT实现目的地址的转换

     2.DNAT与DNS分离解析相结合实现公网主机通过域名访问公网中映射IP,私网主机通过域名访问映射的私网IP。

    3.通tcpdump更直观的分析数据包中转换流向

     

  • 相关阅读:
    PySide6/PyQt6宝典:新手问题一网打尽!
    力扣第 305 场周赛复盘
    JFrame中有关于DefaultCloseOperation的使用及参数说明(含源码阅读)
    项目集管理PgMP:聚焦战略、收益与治理︱项目管理者联盟联合创始人宣晓锋
    产品人生(13):从“产品的RFM分析”看如何探索“职业方向”
    前端知识案例学习1-css实现滚动贴合
    ve-plus:基于 vue3.x 桌面端UI组件库|vue3组件库
    浏览器、负载均衡 、进程内部层…那些你需要掌握的多级缓存
    拼多多API接口(附上我的可用API)
    Ubuntu 的Linux内核更换操作流程
  • 原文地址:https://blog.csdn.net/qq_62462797/article/details/126891526