如何在 NFTables 配置中使用 WAN 接口 IP 地址?

如何在 NFTables 配置中使用 WAN 接口 IP 地址?

背景
我正在尝试编写一个 NFTables 配置,以便我将 IPv4 和 IPv6 转发规则保存在同一张表中。

我在反向代理后面托管一些 Web 服务,并希望允许通过端口 80 和 443 进入该服务器的入站流量。

仅使用 IPv4,我可以创建一个规则iifname { $WANLINK } tcp dport { 80, 443 } accept,结合一个dnat规则iifname { $WANLINK } tcp dport { 80, 443 } dnat to { $REVERSEPROXY },并且唯一可以从外部访问的是通过定义的 TCP 端口的反向代理。

问题

  • 如果我inet按照上面所述定义规则,同时允许 IPv6 流量,那么我将允许任何人在互联网上访问 TCP 端口 80 和 443任何我的网络中的服务器。
  • 我能想到的唯一将 IPv4 和 IPv6 转发规则合并到一个inet表中的方法是基于两种协议的属性进行accept流量传输daddr。但由于我有一个住宅互联网连接,所以我的公共 IPv4 地址基于 DHCP,并且会(尽管很少)更改。这意味着我无法将我当前的 WAN IP 地址硬编码到我的配置中并期望事情会无限期地继续工作。

问题
有什么方法可以告诉 NFTables 在表单上始终使用我当前的 WAN IP 地址iifname { $WANLINK } ip daddr { <ip of $WANLINK> } tcp dport { 80, 443 } accept

或者我错过了我的问题的另一个明显的解决方案?

相关内容