在linux系统中,iptables怎样灵活运用??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在linux系统中,iptables怎样灵活运用??相关的知识,希望对你有一定的参考价值。

iptables 工具中提到的PREROUTING<接收>和POSTROUTING<发送>有什么区别,什么时候才用到。

你是说这两个链啊!
这很有讲究的!
首先你已经知道了这两个链都是干什么的,
你还要知道这个东西的结构倒底是什么样儿!

如图所示:就这这样儿了
在配置规则的时候大多数都是根据表去进行配置的,
参考技术A PREROUTING 在进入路由之前进行的工作
POSTROUTING 在进入路由之后进行的工作
PREROUTING链
顾名思义,PREROUTING链(nat表的)是在路由之前做网络地址转换工作的。然后,包再经过路由,就会被送到filter表的INPUT或FORWARD链。我们在这里讨论这个链的唯一原因是,我们觉得有责任再次指出你不应该在此链中做任何过滤。PREROUTING链只会匹配流的第一个包,也就是说,这个流的所有其他的包都不会被此链检查。事实上,在这个脚本中,我们根本没有用到PREROUTING 链。如果你想对一些包做DNAT操作,例如,你把web server放在了局域网内,这里就是你放置规则的地方。有关PREROUTING链的详细信息在章节表和链中。

千万注意,PREROUTING链只能做网络地址转换,不能被用来做任何过滤,因为每个流只有第一个包才会经过此链。

--------------------------------------------------------------------------------

7.2.11. POSTROUTING链
我们最后的任务应该是构造网络地址转换,对吧?至少对我来说是的。我们在nat表的 POSTROUTING里只加入了一条规则,它会对所有从Internet接口(对我来说,这是eth0)发出的包进行NAT操作。在所有的例子脚本里,都有一些变量,它们要给以正确的配置。选项-t指定要在那个表里插入规则,这里是nat表。命令-A说明我们要把规则添加到 POSTROUTING链末尾。-o $INET_IFACE指定要匹配所有从接口INET_IFACE出去的包,这里我们使用的是eth0。最后,我们把target设置为SNAT。这样,所有匹配此规则的包都会由SNAT target处理,之后,它们的源地址就是Internet接口的地址了。不要忘了SNAT可是一定要有IP地址的,用--to-source 来设置哦。

在这个脚本中,我们选择SNAT而不用MASQUERADE是有原因的。主要的原因是我们的防火墙有静态IP地址,使用SNAT会更快更有效。还有一个原因是我们要在这个例子中展示它的作用以及怎样使用它。如果你没有静态的IP地址,要想实现SNAT,还是使用MASQUERADE为好,因为它简单易用,而且它可以自动获得IP地址。当然,计算机的消耗会多一点,但如果你使用DHCP,这样做是很值得的。
参考技术B Linux下防火墙
接收就是往电脑里进的数据流
发送就是从电脑出去的数据流
参考技术C 远程协助的时候用的!

以上是关于在linux系统中,iptables怎样灵活运用??的主要内容,如果未能解决你的问题,请参考以下文章

如何灵活运用Linux 进程资源监控和进程限制

如何灵活运用Linux 进程资源监控和进程限制

如何灵活运用Linux 进程资源监控和进程限制

iptables的运用,详解!

netfilter和iptables啥关系

深入理解iptables防火墙