内容预知
5.1进行动态抓包处理(一旦遇到有指定数据包的出现,开始运转)
5.3 使用windows主机获取抓包数据拖进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.设置路由转发
#永久启用
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进行访问
4. DNAT与DNS分离解析相结合
方法:直接在上面配好SNAT和DNAT的基础上,在网关服务器配置分离解析即可
内网配置为 :www.yang.com 解析成 192.168.73.111
外网配置 : www.yang.com 解析成 12.0.0.254(web服务器映射外网IP)
分离解析的方法,在我前面的博客有详细记录:
外网解析测试结果:
内网主机测试结果 :
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更直观的分析数据包中转换流向