NetFilter/iptables防火墙设置(上)
2007-02-23 12:39:38 来源:WEB开发网核心提示: iptables -t nat -A POSTROUTING -s $NET_PRV -o $IF_PUB -j SNAT --to$IP_PUB需要注意,我们用的-t nat这个规则规定了这个表,NetFilter/iptables防火墙设置(上)(5),该规则不是应用在默认的filte
iptables -t nat -A POSTROUTING -s $NET_PRV -o $IF_PUB -j SNAT --to
$IP_PUB
需要注意,我们用的-t nat这个规则规定了这个表。该规则不是应用在默认的filter表中的。它是应用在NAT表的post-routing链中的。换句话说,确定路由之后才会应用该规则。它应用在内网上带源地址的数据包上,该数据包即将输出到公网接口上。该规则的动作就是执行SNAT并且把数据包的源IP地址变换成公网接口的IP地址。
也许你会奇怪为什么没有规则来执行这个相反的转换。为了实现那种规则,NetFilter必须知道对哪个数据包应用这样的规则。使用它的唯一有效的地方就是会话本身。由于NetFilter要维持这些规则的表,因此相反的转换规则是没必要的,并且在会话中接受到的数据包系统会自动进行相反的转换。
哲学问题
到现在为止,我们已经处理了所有我们信任和不信任的信息了。在决定允许对哪些信息的受限制访问之前,我需要讲一下对被拒绝的数据流的合理响应。到目前为止,我们的策略是将不接受的数据包扔到黑洞里。这也许是防火墙最常见的操作。它不会给该传输的发送者透漏任何信息。这种方法经常被描述成对付攻击者的有效方法,因为它使攻击者等响应等到超时。我曾经也用这种策略,但现在再也不用了。不久前,我读了一篇USENET上的文章,那个时候我正在构造自己的第一个iptables防火墙。该文章正是针对的这个问题(揭示了没有什么可以耽搁攻击者),它提出攻击者在执行的是大量的并行扫描,因此延时是毫无意义的。该文章还提出保护得当的主机不会给攻击者提供任何有用的信息,因此做一个顺从的IP良民更有效。我赞成这两个观点,因此,我的防火墙对大多数常见的扫描手段的回应都像是个毫无阻碍的IP堆栈。
更多精彩
赞助商链接