• 技术文章 >运维 >linux运维

    linux下的软件防火墙iptables——nat表规则的设定

    齐天大圣齐天大圣2020-11-18 15:37:06原创66
    iptables除了最常用的filter表外,偶尔也会用到nat表。nat即网络地址转换,它是用来修改源ip地址或目的ip地址的。现在我们看下简单的数据包通过iptables到后端主机的表格与链的流程。

    1.经过NAT表的PREROUTING链

    2.经过路由判断该数据包是否要进入本机,若不进入,则执行下一步操作

    3.经过Filter的FORWARD链

    4.经过NAT表的POSTROUTING链,最后传送出去

    和NAT相关的是第一步和最后一步,也就是PREROUTING链和POSTROUTING链。

    DNAT

    那么哪些场景需要用到DNAT,对于SNAT常见的应用有哪些呢?对于DNAT,最常见的是将内网的端口映射到外网中,让其他用户可以访问。这样做内网的安全性大大提升,因为外网是不能直接和内网进行数据传输的。

    场景:内网有一台主机A(192.168.1.111)上面架设了一个网站,内网中还有一台主机B(192.168.1.2)具有公网ip(39.100.92.12),那么如何让外网的用户访问到A上面的网站。

    这个时候,就需要对B主机上做DNAT操作,让目的地址从公网ip39.100.92.12修改为内网地址192.168.1.111。操作如下:

    # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
    > -j DNAT --to-destination 192.168.1.111:80

    PREROUTING链中除了能够对ip做修改,还能对端口进行修改。比如将80端口映射为8080端口,但操作名已经不叫DNAT,而是REDIRECT。

    # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
    > -j REDIRECT --to-ports 8080

    SNAT

    对于SNAT,我们最常见的应用是内网机器通过代理服务器上网,内网的主机没有公网IP,那么内网的主机数据包通过代理服务器后,代理服务器就需要将该数据包的源地址修改为该代理服务器的公网ip。

    场景:内网有一台主机A(192.168.1.111),内网中还有一台主机B(192.168.1.2)具有公网ip(39.100.92.12),那么对于主机A怎么操作可以连接到公网。

    # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 \
    > -j SNAT --to-source 39.100.92.12

    对于DNAT以及SNAT的操作不是很复杂,主要是要理解DNAT以及SNAT的应用场景,刚开始学的时候容易弄混淆,希望大家能主要到它们的区别。

    相关推荐:《linux视频教程

    以上就是linux下的软件防火墙iptables——nat表规则的设定的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:linux
    上一篇:linux下的软件防火墙iptables——规则的定义与删除 下一篇:linux下的软件防火墙iptables——防火墙的设计
    第14期线上培训班

    相关文章推荐

    • linux中一些常见的设置网络参数的命令• linux中出现网络故障该如何排除• linux下的软件防火墙iptables——规则的查看与清除、定义默认策略• linux下的软件防火墙iptables——规则的定义与删除

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网