iptables 规则允许访问互联网

iptables 规则允许访问互联网

我为我的机器制定了默认策略-

iptables -A INPUT -j REJECT #DROP ALL PACKETS TO INPUT CHANNEL

INPUT 通道已被阻塞。现在我只想允许一些特定的服务,比如我应该能够访问互联网。那么我应该添加什么规则呢?端口 80 用于 HTTP,所以我尝试通过以下方式允许该端口

iptables -A INPUT -p tcp --dport 80 ACCEPT

但这没有用。让我知道我该怎么做?

答案1

iptables规则是连续的,这意味着它们匹配的第一个规则将被执行。像 ACCEPT、DROP 和 REJECT 这样的规则是终端规则,这意味着数据包不会进一步进入链。-A方法附加。所以你所做的是

  • 匹配所有内容并拒绝它#一切都到此为止
  • 接受 tcp 端口 80 # 我们永远不会到达这里,因为一切都停在那里 ^

不幸的是 tcp 端口 80 是一切的一部分,因此你永远不会达到第二条规则。刷新您的INPUT-F并反转您运行规则的顺序。我也推荐阅读Dan Robbins 关于状态防火墙设计的文章这不仅仅适用于 gentoo 或 2.4 内核。

相关内容