iptables实例4-NAT转换

iptables-NAT转换

准备工作

1、desktop用于模拟外网IP:192.168.3.2
2、proxy用于连接内外网:外网IP192.168.3.3 内网IP:192.168.200.2
3、web1和web2位于内网:IP地址分别为192.168.200.3和192.168.200.4
web1和web2的默认网关都设置为192.168.200.2
![在这里插入图片描述](https://img-blog.csdnimg.cn/de02ef2e371942b499dafca127e7d6a1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeXV5dXl1bGlhbmcwMA==,size_20,color_FFFFFF,t_70,g_se,x_16在这里插入图片描述

转换源地址

在proxy把源IP来自192.168.200.0/24网段的IP地址转换成192.168.3.3:
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to-source 192.168.3.3
在这里插入图片描述

测试:

在做源地址转换前,web1和web2是ping不通IP地址192.168.3.2,在做完把源地址为192.168.200.0/24网段IP地址转成源地址192.168.3.3后,web1和web2就可以ping通192.168.3.2.
web1:
在这里插入图片描述
web2:
在这里插入图片描述

在proxy的eth0和eth1上抓包

tcpdump -i eth1 -nn tcp port 80
tcpdump -i eth0 -nn tcp port 80
在web1上访问desktop的web服务:curl 192.168.3.2
结果如图:
eth1上显示请求发送为: 192.168.200.3.58580 > 192.168.3.2.80
在这里插入图片描述
在eth0上显示请求发送为:192.168.3.3.58580 > 192.168.3.2.80
在这里插入图片描述
结论:源地址来自192.168.200.0/24网段的IP地址的数据包在经过Proxy后,其源地址被更改为了192.168.3.3。

目标地址和目标端口转换

将web1当作web服务器,其监听端口更改到8080
在这里插入图片描述
在proxy上先清空先前nat表中的规则,添加以下规则:
在proxy上来自192.168.3.2的访问192.168.3.3的tcp 80端口的数据包被转换成了访问192.168.200.3的tcp 8080的数据包:
在这里插入图片描述
在desktop进行测试:
desktop对192.168.3.3的web访问的响应来自192.168.200.3
在这里插入图片描述

在proxy的eth0和eth1上分别抓取数据包:
eth0网卡:
在这里插入图片描述
eth1网卡:
在这里插入图片描述
来自desktop对proxy 80端口的web请求,被proxy转换成了对web1 8080端口的web请求后,由eth1网卡发送给了web1,来自web1响应desktop1的响应经过proxy后,变成了proxy 80端口对desktop的响应。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值