1.Linux实现地址转换
1.1 SNAT和DNAT
- NAT:地址转换
- SNAT:源地址转换
- DNAT:目的地址转换
内网——》外网:内网色的ip不能直接和公网ip通信,必须要把内网的地址转换成和公网ip通信的地址
外网——》内网:外网也不能直接和内网通信,外网ip也需要转换成一个可和内网通信的地址。
2. Linux实现地址转换过程
首先要主备三台服务器,这里分别叫a机器,b机器,c机器,其中b机器做网关服务器,a机器做内网,c机器做外网
a机器 ip: 192.168.48.6
网关为:192.168.48.254
c外网 ip: 12.0.0.10
网关为: 12.0.0.254
所以b机器要有两个网络接口
1.Linux中添加网络接口方法
添加成功之后可以在用命令ifconfig查看,如图所示,有两张网卡,一个叫ens33,另一个ens38
2. 打开b机器的网卡配置文件vim /etc/netplan/01-network-manager-all.yaml ,只配置网关
3.打开vim /etc/sysctl.conf将28行注释解除
/etc/sysctl.conf:linux系统内核的接口文件,修改配置内核的参数使之永久生效
4.sysctl -p 立即生效
重新加载配置文件:sysctl -p
命令会读取 /etc/sysctl.conf
文件中的内核参数设置,并将其应用到当前系统的内核中。
5. 内网网卡配置
6. 外网网卡配置
修改配置后记得netplan apply 确保新的配置生效
7. 在a机器和c机器同时下载nginx(apt -y install nginx),
8. 内网转换
命令 iptables -t nat -A POSTROUTING -s 192.168.48.0/24 -o ens38 -j SNAT --to 10.0.0.10
iptables -t nat -A POSTROUTING -s 192.168.48.0/24 -o ens38 -j SNAT --to 10.0.0.10
#从ens38出去的数据包且网段属于192.168.48.0/24的把网段转换成10.0.0.10
用机器a访问nginx 机器a的IP都转换成10.0.0.10
2.抓包
命令 tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.48.0/24 -w /opt/target.cap
静态抓包
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.48.0/24 -w /opt/target.cap
tcpdump 开头
tcp:协议 icmp udp
-i ens33 指定设备名称 从哪个设备经过的数据包
-t 不显示时间戳
-s0: 默认抓包的长度是68字节,s0就是抓取完整的数据包
-c 10: 抓取多个数据包
and dst port 目标端口 80 和80端口相关的数据包
and src net 源ip是192.168.233.0/24这个网段的ip地址。
-w 抓包的结果保存到指定的文件当中去
.cap tcpdump只是抓取数据包的内容,但是linux系统不能查看抓包的数据包。所以用.cap为结尾是为了给抓包工具分析
tcpdump -i ens33 -s0 -w /opt/ens33.cap
动态抓包
抓包完成后无法用cat查看,要用sz下载命令下载到桌面用Wireshark软件打开