如果我只是使用iptables,是否还需要为ipv6设置另一个iptables规则?


21

假设我在Linux服务器上使用iptables设置了防火墙,因此我只接受端口22和端口80的流量,并阻止对所有其他端口的访问。

这些规则仅在客户端计算机使用IPv4地址时有效吗?因此,如果使用ipv6地址,客户端可以访问我不希望它们访问的端口吗?(即端口22和端口80以外的端口)


您尚未将任何答案标记为有用。你应该那样做。;-)
Anders

Answers:


21

iptables适用于IPv4,但不适用于IPv6。 ip6tables是等效的IPv6防火墙,并与一起安装iptables

最终,尽管如此,它iptables是用于IPv4连接的,ip6tables是用于IPv6连接的。如果您希望iptables规则也适用于IPv6,则还必须将其添加到其中ip6tables


如果您尝试iptables在中复制规则集ip6tables,则并非所有iptables可以执行的规则都可以巧妙地移植到ip6tables,但大多数规则都可以使用。

如果要确保在您的命令中使用的命令可以整齐地移植过来,请参考手册ip6tablesiptables


如果您愿意,我们可以帮助您创建等效的ip6tables规则集以匹配您的iptables规则。否则,我们只能回答您的一般性问题。


10
那不是很可笑吗?需要澄清的是,现在我在服务器上的所有端口对任何使用IPv6地址连接的人都是开放的吗?
user230779 2014年

3
@ user230779我同意这是“荒谬的”,但这就是为什么ufw和其他防火墙管理器存在的原因,他们将规则自己添加到两者中。但是,这里的问题不是“任何拥有IPv6的人都能看到我的网站吗?” 更大的问题是您的系统是否具有IPv6地址。大多数连接都从像我这样的客户端计算机获得IPv4和IPv6。但是,如果远程服务器没有面向公众的IPv6,则将连接IPv4。据我了解,但是,如果您具有IPv6,则也应该添加规则ip6tables
托马斯·沃德

1
@ user230779我可以创建一个脚本,该脚本将对iptablesAND 执行相同的命令ip6tables,并且常规规则-p tcp --dport仍然可以使用,但是更复杂的规则可能无法...(例如-j REJECT --reject-with [something]
Thomas Ward

Thomas,您可以将我链接到针对Apache Web服务器的安全ip6tables示例吗?
user230779

1
@Braiam从来没有说过关于旗帜的任何话。某些命令无效(-j REJECT --reject-with icmp-host-prohibited例如,因为IPv6中拒绝数据包的名称不同)
Thomas Ward

3

正如其他人已经告诉您的那样,IPv4和IPv6有不同的防火墙表。您可以像设置IPv4一样为IPv6设置规则,但是如果您不知道IPv6,则很有可能将其弄乱。就像,您不能放弃ICMP使用IPv6,因为那里有一些重要的握手部分。就像告诉发送方这些帧太大了,等等。如果没有这些内容,IPv6可能会停止对某些用户起作用。

因此,强烈建议您将ufw或与shorewall6一起使用shorewall。在iptables前端ufw同时支持IPv4和IPv6,并适用于与一个或两个接口的服务器伟大的,但不(如路由器或网关的工作)路由流量。如果您路由流量,则需要更好的服务,例如,shorewall或手动添加一些规则,以使用iptables和进行转发ip6tables

不要忘记,接口上可以有多个IPv6地址。有些只是本地链接,有些是全局静态和动态的。因此,您应该相应地设置规则,并且服务器仅侦听正确的地址。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.