我可以使用软件或硬件(防火墙)来防止 DOS 攻击吗?
我使用 ubuntu 作为我的网络服务器。
谢谢
答案1
一般来说,你无法有效地减轻对被攻击机器的 DoS 攻击。
也就是说,您可以采取一些措施来提供帮助,例如使用本地防火墙阻止连接以使其无法到达 Web 服务器、调整 Web 服务器以仅接受来自特定 IP 或子网的有限数量的连接等。——但要记住的重要一点是,您的机器仍在消耗资源来应对攻击,足够大的攻击最终将压倒它。
同样,如果网络端有防火墙,您无法真正缓解重大 DoS 攻击(威胁到您的带宽或通过防火墙的每秒最大数据包数的攻击)——如果您用吸管喝水,而攻击者在吸管末端插了一颗樱桃,那么您将无法获得饮料。最好尽可能让上方的点(您的 ISP)过滤流量(继续类比 - 需要用葡萄柚来挡住他们的吸管,而如果攻击者只有樱桃,那么您就处于更有利的位置)。
如果您能向我们提供更多信息(您是否正在经历或预计会受到攻击?什么类型的攻击?),我们也许能够为您提供更好的答案……
答案2
如果你的公共服务只是 Apache,那么首先你要确保 MaxServers 的数量对于你的可用内存来说不是太多,否则你的 Web 服务器可能会陷入垃圾,不仅适用于 DOS 攻击,还适用于持续流量。
其次,你可能需要看看limitipconn(允许网络服务器管理员限制单个 IP 地址同时下载的数量)。这有助于缓解问题,但对于分布式 DOS 却无济于事。
您是否实际经历过 DOS 攻击或者这只是一个理论问题?
答案3
DoS 或 DDoS 攻击有其目的和成本。每 MB 流量都有成本。因此很难预防(比如说我要花 2 万美元关闭你的服务器),你对此无能为力。但你可以投入一些资源来让你的系统更可靠:
1. Block by GeoIP some Chinese(Asian)
region.
2. Install and configure **ipset** -- it can handle much more connections than iptables
3. Prepare project image for some cloud hosting for fast deployment
4. Configure Frontend with nginx/or something similar and backends with apache/or other
5. You can buy some SSD hardware for **nginx's static** or make some RAM-hdd for static files. T
6. During DDoS you must check what type of attack it is. This attack
can just require index file and youcan make it static.
7. Its hard for me now to block poison traffic (slow http attacks)
so cant help with this.
8. Dont forget to optimize nginx/apache/php... configs.
这应该有帮助。