请帮助我确定以下任务应采用哪条实施路径:
我有一个充当网络服务器的黑盒设备(我可以通过将其 IP 地址输入到浏览器的地址栏中,在本地连接到它)。除了简单的用户名和密码外,该黑盒不实施任何安全措施。当此服务器位于隔离网络上时,这当然没问题,但我希望能够从互联网访问它 - 即从世界任何地方。为此,我希望使用 TLS 安全性进行数据加密。
有了 Rasbperry PI(和 openVPN 软件),我认为它适合这个应用程序。关于如何使用 Raspberry PI 实现 VPN、网桥、路由器和防火墙,有许多不同的教程,但我不知道这四个功能中的哪一个适合我的应用程序。概念图如下所示:
Raspberry Pi 将有两个用于互联网访问的网络接口:一个通过地面以太网 (eth0),另一个使用蜂窝互联网 (eth1),无论哪个都有利于地面互联网连接。两个接口的 IP 地址都是已知的。第三个以太网接口 (eth2) 将通过交换机连接到本地网络。服务器也将连接到交换机。我无法控制服务器(它是一个黑匣子)——我只知道它的 IP 地址。
我的想法是让 Raspberry PI 充当我和服务器之间的中间人,这样我就可以使用我的网络浏览器安全地连接到它的网络应用程序。但是 Raspberry Pi 必须实现哪些功能:VPN、路由器、网桥还是防火墙?
编辑:
我上面提到的任务对我来说太艰巨了(缺乏能力),所以我决定先简化设置。我不想删除问题的顶部部分,以防有人发现它及其相应的答案有用。相反,我的新(简化)设置将如下所示:
RP 将通过点对点0接口并将所有流量路由至eth0接口直接地已连接到服务器:
1. dynamic ppp0 IP address (given by cell service provider)
2. static eth0 IP address (assigned by me)
3. non-secure internet connection
4. RP is connected to the server directly (no switch needed)
我找到了几个解决方案这和这,但他们没有清楚地解释为什么这样做。他们还提供了命令行指令,我不知道如何使用撤消。相反,我希望有人能引用实际的系统/配置文件,以便我可以根据需要编辑和恢复。
目前,当我将 RPi 连接到 Web 服务器时,我可以从 Web 浏览器浏览它。目标是能够通过 RPi 从互联网访问 Web 服务器。有人可以提供关于如何正确设置路由的教育教程吗?考虑到 ppp0 接口会根据蜂窝连接情况启动和关闭,并且其 IP 地址每次都会不同且未知。
答案1
TLDR;
您需要防火墙来保护您的网络服务器,并且您的路由器可能已经提供了此功能。
细节
您真正需要的只是防火墙和 SSL 来保护您的 Web 服务器。如果您的家用路由器已经提供此功能,那么 Raspberry Pi 将不会为您提供更多安全性。
您应该使用 SSL 来保护与 Web 服务器的通信。您可以使用 Raspberry Pi 作为反向代理来提供 SSL 功能,但反向代理之所以存在,是因为 SSL 加密需要大量计算,而代理会减轻 Web 服务器的 SSL 负载。不过,Pi 的计算能力可能远低于您的 Web 服务器。但如果您正在寻找 Pi 项目,那可能会很有趣。
一个常见的误解是 VPN 比没有 VPN“更安全”。VPN 只是加密 + 隧道。隧道可以让两个网络相信它们在同一个网络上。除非您想“连接”两个网络,否则您不需要 VPN。SSL + 防火墙应该没问题。
答案2
最简单的解决方案是将 Pi 配置为路由器/防火墙设备 - 即,您需要防火墙阻止对 Web 服务器的请求,以便只有通过终止于它的 VPN 接口时,它们才会穿过 PI,但不会将 Pi 与 LAN 上的其他设备隔离。这意味着它只能按照您的图表强制通过 Pi 来执行所有 Internet 连接。如果 LAN 上的另一台设备受到威胁,则可以通过它获取对 Web 服务器的访问权限。
(如果您追求的是一个简单的解决方案,并且适度安全的解决方案,您可以忽略下面的所有内容)
您可以使用更复杂、更昂贵的方案。您可以使用托管交换机而不是常规交换机,并在其自己的 VLAN 上配置 Web 服务器,该 VLAN 仅对 Pi 可见(即 Pi 将在多个 VLAN 上通信)。您还可以将 Web 服务器放在自己的 IP 地址上,从而允许 LAN 中的其他设备与其通信,但只能通过 Pi。
您可以进一步扩展上述交换机的想法,通过防火墙保护 Web 服务器所在的 VLAN,使得只有来自 PI 的 VLAN 接口的数据包才能在端口 80 上通信。然后,您可以向 Pi 添加一个反向代理(例如使用 Apache),它可以在端口 443 上应答,然后从端口 80 上的 Web 服务器获取请求。通过使用客户端和常规证书,您可以确保只有可以访问路由器的人和拥有客户端证书的人才能连接。