linux – netfilter / iptables:为什么不使用原始表?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – netfilter / iptables:为什么不使用原始表?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2424字,纯文字阅读大概需要4分钟。
内容图文
在Linux下,我们通常使用“过滤器”表来进行常见过滤:
iptables --table filter --append INPUT --source 1.2.3.4 --jump DROP
iptables --table filter --append INPUT --in-interface lo --jump ACCEPT
根据下面的netfilter流程图,数据包首先通过“原始”表:
所以我们可以写:
iptables --table raw --append PREROUTING --source 1.2.3.4 --jump DROP
iptables --table raw --append PREROUTING --in-interface lo --jump ACCEPT
>数据包处理得越早,无需通过conntrack mangle nat路由.所以使用的CPU /内存要少得多(而且必须通过iptable_raw模块加载来轻微补偿)
>只有一个规则,以防盒子也是一个路由器(显然不是每个规则都可以),因为没有必要为过滤器/转发添加相同的规则
我只进行了快速测试,这非常有效.
我发现的文档总是描述在严格的情况下使用的原始表.但是没有人能给出最小的理由.
问题:是否有任何理由不使用原始表,除了教条表?
解决方法:
来自man iptables:
raw: This table is used mainly for configuring exemptions from connection
tracking in combination with the NOTRACK target. It registers at the
netfilter hooks with higher priority and is thus called before
ip_conntrack, or any other IP tables.
It provides the following built-in chains:
- PREROUTING (for packets arriving via any network interface)
- OUTPUT (for packets generated by local processes)
分析:
因此,RAW表在conntrack之前,它的设计目标是在您不希望在netfilter中跟踪的数据包上设置NOTRACK标记.
-j目标不仅限于NOTRACK,所以是的,您可以过滤原始表中的数据包,具有较少的CPU /内存消耗.
大多数情况下,服务器不需要跟踪所有连接.如果需要根据先前建立的连接过滤iptables中的数据包,则只需要跟踪.在仅用于简单目的的服务器上,只打开端口80(可能是21),不需要这样做.在这些情况下,您可以禁用连接跟踪.
但是,如果您尝试运行NAT路由器,事情就会变得有些复杂.为了NAT某些东西,您需要跟踪这些连接,以便将数据包从外部网络传送到内部网络.
如果使用NOTRACK设置整个连接,那么您将无法跟踪相关连接,conntrack和nat帮助程序将无法用于未跟踪的连接,相关的ICMP错误也不会.换句话说,你必须手动打开这些.当涉及到诸如FTP和SCTP等复杂协议时,这可能非常难以管理.
用例:
例如,如果您有一个交通繁忙的路由器,您想要阻止传入和传出流量,而不是路由流量.然后,您可以设置NOTRACK标记以忽略转发的流量以节省处理能力.
可以使用NOTRACK的另一个例子是,如果您拥有高流量的Web服务器,则可以设置一条规则,在所有本地拥有的IP地址或实际为Web流量提供服务的IP地址上转换端口80的跟踪.然后,您可以享受所有其他服务的状态跟踪,除了可能在已经过载的系统上节省一些处理能力的Web流量.
示例 – > running-a-semi-stateless-linux-router-for-private-network
结论:
没有强烈的理由不使用原始表,但是在原始表中使用NOTRACK目标时需要注意一些原因.
内容总结
以上是互联网集市为您收集整理的linux – netfilter / iptables:为什么不使用原始表?全部内容,希望文章能够帮你解决linux – netfilter / iptables:为什么不使用原始表?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。