我可以限制访问一个Apache网站的IP地址是一个ISP分配IP地址通过DHCP的客户端?

我有一个网站,我想用于pipe理目的。 我需要确保只有某些机器的用户才能login。 问题是他们在ISPnetworking上。 我真的会从ip / ifconfig命令中获得正确的IP地址吗?还是我担心ISP正在使用NAT?

做错了我的朋友。

除了本地NAT和“运营商级NAT” (这意味着您从客户端系统上的ifconfig获得的信息可能是您的服务器访问列表中不能使用的私有地址),基于IP的安全性是一个闹剧:互联网服务提供商可能会改变公共networking的分配,最终用户可能是在dynamic的IP地址,或者有人可能会欺骗BGP,并通过你的安全。


如果你想妥善保护你的网站,我的build议是:

  1. 具有相互证书authentication的SSL
    非常安全,几乎每一个浏览器都支持,但是在pipe理上有点痛苦,因为你需要向所有用户颁发客户端证书,并解释如何安装它们(并且证书与安装它们的机器绑定在一起因此您的用户可能无法从奶奶家login)。
    完全值得,如果你需要安全。

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

  3. SSL和用户名/密码authentication
    只有与用户名/密码一样安全,但这就是为什么我们有良好的密码策略。
    这很容易受到暴力攻击,因此需要采用缓解技术。

确定这一点最简单的方法是在您打算允许访问的系统上运行以下内容。

lynx ipchicken.com

如果它匹配你的ifconfig你应该很好去。 如果不是,这是一个家庭路由器,你会信任个人路由器背后的机器。 另一种方法,你可以做到这一点是需要vpn与凭据,只有使网站可在您的networking。 那么你可能需要密钥或证书。