我有一个托管多个不同网站的网络服务器。一些由外部客户使用,一些仅在内部使用。对于内部站点,我有一个.htaccess文件,该文件拒绝所有IP地址但允许任何以10.25.x.x开头的IP地址。
IndexIgnore *
deny from all
allow from 10.25.
这意味着我们的本地网络只能访问服务器的PC。即使客户的计算机上有本地IP地址10.25.x.x,我的网络服务器也只能看到他们的公共IP,对吧?
我没有将文件上传到此目录的表单,因此他们无法覆盖.htaccess文件。
我的问题是:攻击者有没有办法绕过这些安全方法?如果是这样,我可以采取哪些预防措施来确保不会发生?
答案 0 :(得分:5)
我认为SébastienRenauld的回答表明,IP黑/白名单并不能完美保护您的网站。您的应用程序应该已足够安全,以便进行公共可访问的部署无论如何,IP限制确实有助于限制应用程序上的攻击向量。
请记住,IP欺骗在技术上是可行的,但很难执行。
从网络外部,黑客必须至少绕过以下障碍。
还有许多障碍比我刚刚总结的需要被攻击者绕过的障碍,比如阻止本地合法客户端不干扰攻击。 (想想服务器的欺骗性IP地址的响应将去哪里,以及模拟客户端将做什么。)
欺骗IP地址的更简单方法是在网络内部进行欺骗。好吧,如果已经可以做到这一点,你可能还需要先了解一些事情:)
我希望你会发现黑客现在几乎不可能进行这种攻击。安全性是所需努力与攻击者获得的满意度之间的平衡。
因此,我会说,在SébastienRenauld建议的本地网络绑定旁边的IP白名单是一个足够好的安全实践。您仍然需要假设攻击者可以访问您的内部网络,因此还应该查看您的网站和服务器本身的安全性。
答案 1 :(得分:4)
您问题的最后一行是:不要, EVER ,依赖于知识产权的价值。
为了演示和说明这一点,this document在此解释了IP地址实际上如何附加到数据包。实际上,它只是源的字节列表,以及目标的字节列表。任何人都可以有效地修改它们(顺便说一句,除其他事项外,这是NAT的作用,否则NAT遍历将不起作用)。这意味着,如果它们可以被修改,它们就会被欺骗。
有一些方法可以部分抵御这种情况,但所有方法都依赖于启发式方法。例如,最简单的规则是,如果一个数据包来自您的WAN接口但声称来自192.168.0.1
,那么您就知道某些事情已经发生了。市场上的一些安全设备就是这样做的:他们过滤掉了他们认为可疑的东西。
在你的情况下,有一种方法可以抵御这一切。我假设您正在使用Apache。如果您是,而不是将VirtualHost
绑定到所有接口(如Apache中的默认值:*:80
),请将其绑定到该特定本地接口(10.0.0.0:80
或等效接口)。这将迫使Apache仅侦听该接口上的ping,如果运行unix / linux,则将其与其他接口隔离,并保证是不同的。这使您可以有效地拥有一个仅限局域网的网站。
答案 2 :(得分:1)
是的,有。 IP Spoofing是可能的。请记住,每个人都可以更改他发送的数据包的元数据。
除了我认为完全不同的身份验证方法之外,几乎没有任何预防方法可以帮助你。您无法通过.htaccess黑名单(或者说在您的情况下为白名单)实现有效的安全性。但是Ingress filtering是必须的。