码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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更直观的分析数据包中转换流向

     

  • 相关阅读:
    关于一篇什么是JWT的原理与实际应用
    JSP旅馆房间预订管理系统myeclipse定制开发mysql数据库网页模式java编程jdbc
    [附源码]计算机毕业设计springboot酒店客房管理信息系统
    mitmproxy的介绍以及配置过程中的问题
    艾奇KTV电子相册制作软件2023最新免费版下载
    BIO AIO NIO 的区别
    React如何命令式调用自定义的Antd-Modal组件
    大二学生基于Html+Css+javascript的网页制作——动漫设计公司响应式网站模板 (10个页面)
    ocx 调用dll必须要将dll路径加到Path中 尽量用静态编译 用共享编译时需要把dll复制到system32下否则注册提示缺少dll
    【Web安全】CORS跨域资源共享漏洞
  • 原文地址:https://blog.csdn.net/qq_62462797/article/details/126891526
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号