我们在 FreeBSD 路由器上托管了公共 IP 地址。我们的 LAN 网络内也运行着很多服务,我们的一些服务需要通过公共 IP 地址在我们的家庭网络之外访问。到目前为止,我将特定端口转发到特定的本地 IP 地址。示例(对于终端服务器,我将端口 2305 转发到端口 3389 上的本地 ip 服务器,当有人在“MYpublicIPadres:2305”上调用远程桌面连接以访问我的终端服务器时,它工作正常。
我想做的是:
一些如何保护特定客户端(机器或网络)对该服务的访问。有没有办法只允许特定用户(通过 MAC 地址或其他)访问我的服务。我已经做的是建立 VPN 服务器-客户端连接,但这种方法并没有为我提供很多。我也可以通过特定的 IP 地址限制访问,但我的大多数客户端没有静态公共 IP 地址,它们每次都来自具有不同 IP 地址的 DSL 连接。
如果使用 FreeBSD 无法做到这一点,我是否有类似 IPCOP 或类似于 FreeBSD 的替代方案。
编辑:VPN问题
正如您已经提到的,我应该使用 VPN 解决方案,这是我面临的问题
- 我正在使用 Windows 操作系统内部构建的示例 VPN 客户端,并且允许该客户端可以从任何计算机机器上设置 VPN(背后的故事:我在我们的网络之外有部门,我想确保只能从部门中添加特定服务访问权限.)
- 当客户调用 VPN 连接时,它会失去与其他世界的连接,并且许多客户希望能够访问我的服务和其他互联网资源。
如果您无法保护服务本身,那么 VPN 或 SSH 隧道确实是您最好的选择。
由于您的客户端没有静态公共 IP,因此您无法通过 IP 进行限制,并且如果客户端通过 Internet 进入,您将无法确定其 MAC 地址(在第一跳时丢失)。
您可以考虑使用诸如端口敲门之类的东西来控制对服务的访问(谷歌“端口敲门”-前几个链接对于解释和示例非常有用)。
类似的东西也可以通过 Web 服务器脚本和帮助程序进行装配,您可以在其中“授权”在一段时间内从 IP 访问,可能比端口敲击更复杂,但这些实现仅与底层代码)
我在这里只看到两个现实的选择:
使用您的 FreeBSD 路由器设置防火墙,只允许访问您从某个 IP 转发的那些端口。这将阻止大多数来自未知 IP 的“黑客攻击”尝试,即使您将其锁定到某个 ISP 或 C 类范围。您不能将其设置为基于 MAC 地址允许,因为这不会通过 Internet 广播到您的机器,只有 IP 地址。
运行 VPN 以安全地访问您的网络。如果 VPN 客户端设置正确,它不应该将您的客户端从互联网上击落。根据 VPN,您可以将其配置为仅通过 VPN 路由某些流量,而其余流量通过 Internet。一个简单的想法是Hamachi。
做到这一点的“正确”方法是使用 VPN。您可以使用防火墙/端口敲门解决方案来做到这一点,但最安全的方式(在我看来)是通过 VPN。