iptables地址转换实验

  1. 准备三台机器,我准备了如下三台:
    loz(第一台):内网服务器 192.168.188.11
    sp(第二台):网关服务器 192.168.188.12
    smp(第三台):外网服务器 12.0.0.10
  2. 首先三台都关闭防火墙
    systemctl stop firewalld
    setenforce 0
  3. 第二台添加一张网卡,我这里是ens36,并对两张网卡进行如下配置
    ens33:

    ens36:

    稍微说一下为什么要配这个IP地址,第二台机器位于第一台和第三台之间,起到的是路由器的作用,要让其他两台同时把它作为网关,ens33用来连接第一台,ens36连接第三台。
    配置完了别忘了systemctl restart network重启一下网络
    然后在/etc/sysctl.conf内对Linux内核参数进行修改

    最后用sysctl -p,可以使参数配置立刻生效
  4. 为了方便测试,在第一台和第三台安装httpd

    安装完记得启动一下
  5. 对第一台和第三台机器的ens33网卡进行配置,具体配置如下:
    第一台,要把第二台的同网段IP作为网关:

    第三台配置类似:
  6. 在第二台机器上用iptables进行nat地址转换配置
    具体代码为:
    # 对nat表的POSTROUTING链进行配置,如果源IP是192.168.188.0/24网段的,那么就在ens36网卡上将源IP转换成10.0.0.10。意思就是当内网访问外网时,源IP变成了10.0.0.10
    iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -o ens36 -j SNAT --to 10.0.0.10
    
    
    # 对nat表的PREROUTING链进行配置,如果目的IP是11.0.0.11,协议是tcp,目标端口是80,那么就在ens36网卡上将目的IP和端口转换成192.168.188.11:80
    iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.188.11:80

    可以用iptables -t nat -vnL --line-numbers展示一下:

  7. 检查一下访问结果
    打开第三台虚拟机上的浏览器,输入11.0.0.11,按照第二台机器上iptables的设置,如果有人访问11.0.0.11的80端口,那么目标IP就会变成192.168.188.11,端口是80。

    此时我们查看第一台上httpd的服务日志/var/log/httpd/access_log,将会看到有12.0.0.10的主机访问本机

  8. 我们再用第一台虚拟机访问一下,这里我们同样打开浏览器,然后输入12.0.0.10,也就是第三台机器的IP地址

    同样看一下第三台机器的httpd服务日志/var/log/httpd/access.log,这里我们仔细看,能看到访问本机的主机IP地址是10.0.0.10,这是因为我们在第二台机器上进行了iptables配置,所有源IP是192.168.188.0/24网段的主机IP都会被转换成10.0.0.10

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值