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

Exc*_*000 2 ip blocking apache-2.2

我有一个网站,我想将其用于管理目的。我需要确保只有来自某些机器的人才能登录。问题是它们在 ISP 网络上。我真的会从 ip/ifconfig 命令获得正确的 IP 地址以使用,还是我必须担心 ISP 正在使用 NAT?

vor*_*aq7 6

做错了我的朋友。

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


如果您想正确保护您的网站,我的建议是:

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

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

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