Linux之DNAT策略及应用与tcpdump抓包

目录

一、DNAT的介绍

二、DNAT实验设计

 三、DNAT具体实验步骤操作

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

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

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

1.设置路由转发

2.设置SNAT

四、tcpdump抓包工具的运用

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

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

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

4)wireshark筛选数据包


一、DNAT的介绍

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

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

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

拓展:

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

DNAT策略的原理:

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

DNAT源地址转换过程:

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

二、DNAT实验设计

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

 三、DNAT具体实验步骤操作

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

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

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

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

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

1.设置路由转发

#永久启用
vim /etc/sysctl.conf
 net.ipv4.ip_forward=1 
 
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进行访问

四、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)分析

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

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

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

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

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

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

 4)wireshark筛选数据包

ip.addr=指定IP 

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用tcpdump命令进行抓包,然后使用iptables进行转发。以下是具体步骤: 1. 使用tcpdump命令抓包,将结果输出到文件中。例如,将HTTP流量从eth0接口抓取并写入到文件中: ``` sudo tcpdump -i eth0 -w http.pcap port 80 ``` 2. 使用iptables命令将抓取的流量转发到目标机器。例如,将HTTP流量从eth0接口转发到192.168.1.2机器的eth1接口: ``` sudo iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT sudo iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j ACCEPT sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80 sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -j SNAT --to-source 192.168.1.1 ``` 这将把HTTP流量从源机器的eth0接口转发到目标机器的eth1接口,并将目标机器的响应流量返回到源机器。 ### 回答2: TCPdump 是一种常用的网络封包分析工具,可以用于捕获网络封包并对其进行分析。通过使用TCPdump,可以监视和分析网络流量,帮助我们识别网络中的问题和检测潜在的攻击。 而转发封包是指将捕获到的网络封包从一个接口转发到另一个接口。通常情况下,我们可以使用iptables 命令来配置转发规则,将某个特定类型的封包从一个接口转发到另一个接口,从而实现网络流量的转发。 具体操作步骤如下: 1. 首先,我们需要安装并启动TCPdump 工具。在Linux 系统中,可以使用以下命令进行安装: ``` sudo apt-get install tcpdump ``` 启动TCPdump: ``` sudo tcpdump ``` 2. 使用以下命令,将捕获的网络封包保存到一个文件中: ``` sudo tcpdump -i eth0 -w capture.pcap ``` 其中,-i 选项指定要监听的网络接口(eth0 为例),-w 选项用于指定保存封包的文件名。 3. 使用下面的命令将捕获到的网络封包转发到另一个接口(eth1 为例): ``` sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT ``` 这个命令会将从eth0 接口捕获到的封包转发到eth1 接口。 需要注意的是,为了使转发规则生效,我们还需要启用IP转发功能,可以通过编辑 /etc/sysctl.conf 文件并设置net.ipv4.ip_forward=1 来实现。 总结来说,使用TCPdump 抓包并转发,我们可以通过捕获网络封包进行分析,同时将捕获到的封包转发到其他接口进行处理,以便进行网络故障排查和攻击检测等操作。 ### 回答3: TCPDump是一款在Linux和Unix系统中使用的开源网络抓包工具。它可以监听网络接口上的流量,并将捕获到的数据包进行显示、记录和分析。而转发则是将捕获到的数据包从一个接口转发到另一个接口,实现网络数据的传输。 使用TCPDump进行抓包并转发的过程如下: 1. 打开终端并以root权限运行TCPDump。输入命令"tcpdump -i eth0",其中eth0是要监听的网络接口。 2. TCPDump开始监听网络接口上的数据包,并将其显示在终端上。你可以通过添加不同的选项来过滤特定的数据包,如指定目标IP地址、端口等。 3. 捕获到的数据包可以直接在终端上观察,也可以将其保存到文件中以供后续分析。可以使用"-w"选项来指定保存文件的名称和路径,例如"tcpdump -i eth0 -w packets.pcap"。 4. 打开另一个终端,并以root权限运行TCPDump命令,指定要转发的数据包文件。输入命令"tcpdump -r packets.pcap -i eth1",其中packets.pcap是保存的数据包文件,eth1是要转发到的接口。 5. TCPDump会读取数据包文件,并将其中的数据包转发到指定的接口上。你还可以通过添加其他选项来进行更精确的过滤或修改转发的方式,如更改源/目标IP地址、更改目标端口等。 以上就是使用TCPDump抓包并转发的基本过程。通过使用TCPDump,我们可以方便地监控网络流量,并在需要时进行数据包的转发,以实现网络数据的传输和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值