为了方便起见,我设置了我们一个客户的 Windows 2008 R2 服务器的防火墙规则,以便对所有传入流量、所有端口和所有程序开放,但范围设置将其限制为一个特定的远程 IP 地址- 我们的。原因是我们远程访问数据库和其他程序。
问题:这样的设置有风险?除了固定的 IP 地址之外,我是否应该努力为特定端口和程序建立单独的规则?
作为一名开发人员,我发现很难估计 IP 欺骗的危险以及可能利用该设置的任何其他黑客技术的危险。
答案1
一般来说,可攻击面越小越好。将攻击面限制到特定源 IP 的做法是正确的。遵循最小特权原则,您应该拒绝所有目标端口,只打开您真正需要的端口。然后,您必须权衡管理成本与风险。风险取决于几个因素,例如您访问的数据有多敏感、服务器是否受到攻击、量化损失是多少等。
话虽如此,攻击者从客户网络内部利用客户服务器上的漏洞的可能性远高于他们进行中间人攻击并窃取您的凭据、敏感数据库材料等的可能性。实际应用中的 IP 欺骗在这里不会有太大的担忧。它通常用于扫描网络或构建另一台机器/IP。当使用需要在源和目标之间设置会话的协议时,欺骗 IP 并执行任何功能都会变得非常复杂。有可能,但不太可能。(请参阅 arp 或 dns 中毒)
另一个更可能的攻击媒介(针对数据库)可能是您自己的机器/网络受到攻击,攻击者可以从那里转向攻击数据库机器。当然,此时,您会遇到更大的问题。;) 希望这能有所帮助。
答案2
这是不必要的风险。大多数数据库访问可以通过证书认证来处理。“其他程序”太模糊了。这是否意味着您需要通过 Internet 与远程 Windows 计算机进行身份验证?听起来 VPN 很有用。在我看来,在当今这个时代,互联网上的两个组织不太可能没有能够在它们之间建立 IPSEC VPN 连接的防火墙。
答案3
根据您对该场景的解释,我会说限制对单个 IP(防火墙的公共 IP 地址)的访问,并通过防火墙规则管理谁被允许通过该公共 IP 访问各种服务器服务。
只要您的 IP 地址是静态的,就没问题。