为何不能在INPUT链上进行SNAT呢_input snat

如果你man一下iptables,会发现:

   SNAT
       This  target  is only valid in the nat table, in the POSTROUTING chain. ...


然而我认为在INPUT上做SNAT有时还是有必要的。下面说一下原因。

        SNAT用于隐藏下行网络,当然,数据已经到达了目的地,也就没有什么好隐藏的了,这是INPUT不做SNAT的原因之一?SNAT的另一个作用就是使上行链路只需要寻址到SNAT后的源地址,而不必为寻址到原始地址而增加路由项,如果数据的上行链路就在本机,那么也没有这个需求,因为管理员可以随意的增加路由项,这难道是INPUT不做SNAT的原因之一?毕竟都是网络层以及以下层的事情,这是网管的职责所在,所有这些需求都可以通过其它配置来解决,因此INPUT上作SNAT没有意义?

        可是考虑一下和应用层相关的情况。最简单的例子就是sshd服务器的一个配置:

AllowUsers wangran@192.168.0.0/16

这意味着除了192.168.0.0/16这个网段之外,都无法登录ssh服务器,我们可以在网络层临时开放一个口子出来吗?如果不在INPUT上作SNAT,这个口子很难开,然而如果允许这么做,那么我就可以做如下的rule:

iptables -t nat -A OUTPUT -s 172.16.1.21/32 -p tcp --dport 22 -j SNAT --to-source 192.168.0.111

如此一来172.16.1.21这个特殊的地址也就能登上ssh服务器了,万一这是个临时有特殊权限的地址,一时间又找不到懂得ssh配置的人,网管需要的就是上面的rule。

        这里仅仅用ssh举个例子,实际上网管基本都知道ssh的配置。

原文链接: https://blog.csdn.net/dog250/article/details/7518066

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    为何不能在INPUT链上进行SNAT呢_input snat

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/409126

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午11:13
下一篇 2023年4月26日 上午11:13

相关推荐