我可以将对 Apache 网站的访问限制为仅允许 IP 地址位于通过 DHCP 分配 IP 地址的 ISP 上的客户端吗?

我可以将对 Apache 网站的访问限制为仅允许 IP 地址位于通过 DHCP 分配 IP 地址的 ISP 上的客户端吗?

我有一个网站,我想用它来进行管理。我需要确保只有某些机器上的用户可以登录。问题是他们在 ISP 网络上。我是否真的可以从 ip/ifconfig 命令中获得正确的 IP 地址,还是必须担心 ISP 正在使用 NAT?

答案1

你是做错了我的朋友。

除了本地 NAT 和“运营商级 NAT”(这意味着您从客户端系统获取的信息ifconfig可能是您不能在服务器的访问列表中使用的私有地址),基于 IP 的安全性是一场闹剧:ISP 可能会更改公共网络分配,最终用户可能使用动态 IP,或者有人可能会欺骗 BGP 并绕过您的安全性。


如果您想妥善保护您的网站,我的建议是:

  1. 具有相互证书认证的 SSL
    非常安全,几乎所有浏览器都支持,但管理起来有点麻烦,因为您需要向所有用户颁发客户端证书并解释如何安装它们(并且证书与您安装它们的机器绑定,因此您的用户可能无法从奶奶家登录)。
    但如果您需要安全性,那么这绝对值得。

  2. SSL 和双因素身份验证
    除了用户名/密码外,还可以使用类似 Google Authenticator 的工具,为您的用户提供真正的双因素身份验证(您知道的东西 - 用户名/密码,以及您拥有的东西 - 运行 Authenticator 的设备)。
    这可能需要您在您的应用中或服务器上进行一些工作,例如mod_auth_external但是它的安全性非常好:它不受相互证书认证的限制,而且几乎不可能被暴力破解。

  3. SSL 和用户名/密码验证
    仅与用户名/密码一样安全,但这就是我们制定良好密码策略的原因。
    这很容易受到暴力攻击,因此需要采用缓解技术。

答案2

确定这一点的最简单方法是在您计划允许访问的系统上运行以下命令。

lynx ipchicken.com

如果它与您的 ifconfig 匹配,那么您就可以开始了。如果不匹配,并且它是家用路由器,您将信任个人路由器后面的机器。您可以执行此操作的另一种方法是要求使用凭据的 vpn,并且仅在您的网络内提供该站点。然后您可以要求密钥或证书。

相关内容