我计划使用 Shorewall 来过滤源自 OpenVPN 创建的虚拟接口(我们称之为 tap0)的流量。如果 OpenVPN 在 Shorewall 启动之前没有成功创建此接口,但该接口已在 中定义/etc/shorewall/interfaces
,那么如果稍后成功创建该接口,流量是否会被过滤?这是否取决于脚本挂钩,或者 Shorewall 是否为配置中定义但不存在的接口预先创建规则?
答案1
Shorewall 是一个用于配置 iptables/netfilter 防火墙规则的工具,因此 netfilter 的文档是一个更有效的查找位置。 它说:
指定当前不存在的接口是完全合法的;在界面出现之前,该规则不会匹配任何内容。这对于拨号 PPP 链路(通常是接口 ppp0)等非常有用。
作为一种特殊情况,以“+”结尾的接口名称将匹配以该字符串开头的所有接口(无论它们当前是否存在)。例如,要指定匹配所有 PPP 接口的规则,可以使用 -i ppp+ 选项。
粗略检查,运行 Shorewall 的接口不存在似乎制定-i
规则-o
,这会起作用。
此设置会导致需要了解 ip/路由信息才能运行的功能(例如路由过滤器)出现问题。