我的虚拟主机使用 mrtg 显示入站和出站流量。我有来自尼日利亚的稳定 3.5mbps 入站流量。即使假设源 IP 和目标端口已使用 Iptables 阻止,并且验证没有任何内容正在监听这些端口,流量是否仍会始终通过交换机并“到达”我的服务器(我的服务器会浪费 CPU 周期来“丢弃”数据包)?假设我设置了硬件防火墙,假设防火墙位于交换机后面,流量仍会显示在 mrtg 中?
那么,如果有人也拥有 100mbps 的线路,还有什么办法可以阻止他们占用你的 100mbps 线路呢?除了向尼日利亚的好心人提出滥用投诉外,还有什么办法吗?
答案1
基于软件的流量过滤iptables
会消耗 CPU 来丢弃数据包,但除非您的服务器性能真的很低,否则这可以忽略不计。尽早丢弃不需要的流量。iptables
如果可能的话,使用速率限制功能来限制不属于您想要的任何类别的流量。
服务器级 NIC 具有 TOE 和校验和卸载等功能,可减少 CPU 对接收流量的影响。
那么,如果有人也拥有一条 100mbps 线路,有什么方法可以阻止他们透支您的 100mbps 线路吗?
不是的。您可以通过丢弃不需要的传入流量并设置 TCP tarpit 来缓解攻击,但最终如果有人只是想向您推送 100mbps 的随机流量,并且有能力,他们就可以做到。
解决此问题的方法是使用 CDN 或托管在多个站点的多个 IP 来使您的内容在地理上多样化。这很复杂且成本高昂,但如果您需要可靠性,则值得研究。
答案2
另一个解决方案是引入您的 ISP 或任何负责服务器之前网络的服务提供商。
他们可以使用硬件防火墙之类的设施来保护您免受此类 DoS 攻击。
答案3
您自己位于连接的端点,您自己可以执行的所有防火墙、过滤等操作都将针对已经跨越线路到达您站点的流量,并且这些流量已经消耗了部分传入带宽。
许多 ISP 实际上只向您收取传出流量的费用,因此在这种情况下,一个可以悄悄丢弃不需要的传入流量的防火墙就足够了。服务器上的软件防火墙始终是一个好主意,并且通常消耗的资源可以忽略不计。或者也可以使用设备或路由器来设置防火墙。
为了防止不必要的流量到达您的网站,您必须采取更进一步的措施。通常,您的电信提供商或 ISP 会很乐意向您收取设置和维护费用。