我有一台 NAS,在端口 8081 上运行 Web 应用程序,IP 为 192.168.0.2,还有一台反向代理服务器(单独的机器),IP 为 192.168.0.3。为了访问 Web 应用程序(我不想直接将其暴露在互联网上),我将反向代理端口转发到 WAN(端口 443),在其上设置 HTTPS 和用户名/密码身份验证,然后将代理指向 192.168.0.2:8081,以便从外部连接到https://mydomain.example.com让我登录并访问该服务。
这可以正常工作,但我想阻止我的 LAN 中任何非 192.168.0.3 的设备通过连接到端口 8081 上的 192.168.0.2 绕过反向代理。这样,如果网络上的 PC 受到威胁,任何人都无法在未经身份验证的情况下访问服务。我知道 DMZ 通常是解决此问题的方法,但这会非常烦人,因为 NAS 还运行了大量其他我希望能够直接连接的服务(SMB、Plex 等)。将 RP 移动到 NAS 也不是一种选择,因为我也想将 NGINX 用于 Nextcloud,而且通常 LetsEncrypt + NGINX via Docker(我的 NAS 使用)很笨重。
有没有办法使用 OpenWRT 实现这一点,通过创建某种特定规则来阻止任何非 192.168.0.3 主机通过端口 8081 连接到主机 192.168.0.2,而其他所有流量保持不变?我已经尝试过流量规则,但不幸的是没有成功。
我的 OpenWRT 路由器在 LAN 上的 IP 为 192.168.0.1,在 WAN 上的 IP 为 192.168.1.50,由 IP 为 192.168.1.1 的调制解调器/路由器管理,这是 WAN 上唯一提供互联网访问的其他设备。
答案1
创建防火墙规则在主机本身上。即使它是“NAS”——如果它可以运行Docker,那么它肯定有iptables或另一个系统级防火墙可用。
有没有办法用 OpenWRT 来实现这一点,[...] 我已经尝试了交通规则,但不幸的是没有成功。
不会,同一子网内的流量会绕过路由器。