OPNsense 端口转发规则未按预期运行

OPNsense 端口转发规则未按预期运行

我在 proxmox 内部设置了一个虚拟网络。我安装了 OPNsense 作为路由器,将常规网络的流量连接到虚拟网络。OPNsense 的 LAN 端位于 proxmox 中的桥接网络上,该网络分配给 10.0.42.0/24 网络,并具有静态分配的 IP。WAN 端连接到与 proxmox 服务器上的物理接口绑定的虚拟桥。WAN 接口通过我的互联网路由器的 DHCP 分配 IP。

虚拟网络能够毫无问题地从 OPNsense 接收 IP。这些相同的系统能够毫无问题地通过 OPNsense 访问互联网。我可以从我的桌面毫无问题地访问 OPNsense Web 界面。

在虚拟网络内,我已启动并运行 portainer。我无法从我的桌面访问此 portainer 系统的管理页面。我已确认 portainer 地址可从网络内访问。

我尝试在 OPNsense 上添加端口转发规则。我使用以下页面尝试设置端口转发规则。大多数页面的说明都非常相似

当我尝试从桌面访问 portainer 页面时,我在 OPNsense 防火墙的日志中看到以下内容:

Source: 10.0.42.11:9443
Destination: [desktop IP]:51918
Proto: tcp
Label: Default deny / state violation rule

我尝试过的防火墙规则:接口:WAN TCP/IP 版本:IPv4 协议:TCP 源:任意 源端口范围:任意 目标:WAN 地址 目标端口范围:任意 重定向目标 IP:portainer IP 重定向目标端口:9443 NAT 反射:尝试启用和禁用 过滤规则关联:尝试传递和添加关联过滤规则

我也尝试过使用上述相反的操作,但防火墙日志中的错误没有任何变化。

还尝试添加 WAN 规则。我使用 portainer 作为源 IP/端口,使用 WAN 地址作为所有端口的目标。我还尝试添加反向规则。

如果我完全禁用防火墙,我可以访问 portainer Web 界面,但虚拟机将无法再访问互联网。这是因为 NAT 与防火墙一起被禁用。

编辑

网络/设备的配置如下:

Modem->(public IP) Netgear router (192.168.x.x)->TP-link Switch->Desktop
Modem->(public IP) Netgear router (192.168.x.x)->TP-link Switch->Proxmox->(192.168.x.x) OPNsense (10.0.42.x)->Portainer

我在 proxmox 中创建了第二个桥接接口,该接口未绑定到物理接口。该桥接是发往 proxmox 的数据包转发到 OPNsense 以访问虚拟网络的网关。通过在 proxmox 上添加新的 ip 表和规则来实现。我已将绑定到物理接口的桥接器添加为 OPNsense 中的 WAN 接口。未绑定的桥接器分配给 OPNsense 中的 LAN 接口。在 Windows 桌面上,我添加了一条路由,将 10.0.42.x 流量指向 proxmox 上虚拟网桥的 IP。

这一切都允许我访问 OPNsense 的管理网页,因为它的防锁定规则将所有流量传递到端口 80。我尝试模仿该规则来传递来自我桌面的所有流量,但仍然根据日志条目被防火墙阻止。

最终目标是拥有一个独立于 LAN 的虚拟网络,我可以在其中作为家庭实验室的开端进行操作。在家庭实验室中,我计划安装 truenas、jellyfin 和 bind 等工具。其中大部分工具在某些时候都需要通过物理 LAN 进行访问。

答案1

我已经想出了如何解决 portainer 的问题。我通过 proxmox 中的控制台登录了 portainer。然后我在路由表中添加了一条路由,以通过 proxmox 上的 10.0.42.x 端口传递发往 192.168.0.0/16 的流量。

ip route add 192.168.0.0/16 via 10.0.42.x

一旦路由到位,我就可以成功从我的桌面访问 portainer 的 Web 界面。这意味着对于我想要访问的虚拟 LAN 内的每个服务器,都需要为“WAN”网络设置路由。

我已经测试在虚拟网络内的 Fedora VM 上添加相同的路由。我的桌面现在也可以 ping 并连接到该 VM。这是在没有防火墙规则的情况下进行的。因此,添加该路由似乎完全绕过了防火墙。本质上,也将 proxmox 服务器变成了路由器。我怀疑 OPNsense 需要保留以提供 NAT,以便 VM 可以访问互联网。

我确信有一种方法可以实现相同的结果,而无需在每台服务器上添加路由。这可能需要企业级路由器,而不是像 OPNsense 或我的家用路由器这样的防火墙设备。我还需要弄清楚将路由命令添加到启动文件中的哪个位置,以便它在重新启动时仍然存在。

相关内容