刚刚在 AWS EC2 实例中安装了一个简单的 django web 应用程序。该实例始终处于打开状态,但目前无人使用(仍在开发中)。最近,AWS 因网络流量而产生大量费用。当 apache2 服务打开时,端口 80 上有大量流量,查看 netstat 看起来像是要进入 django 应用程序的暴力攻击。
我想我不能简单地关闭端口 80,因为当应用程序上线时该端口应该是打开的。
关于如何防止这种网络流量,您有什么想法吗?
非常感谢
答案1
有很多选择。在正常情况下,您预计有多少流量?来自哪里(即来自哪些国家)?如果网站暂时无法访问,这有关系吗?对于博客来说可能没那么重要,但对于电子商店来说可能很重要。还请注意,传入流量是免费的,因此您需要减少从云端传出的出站流量。
例如,您可以:
限速连接将每个 IP 的 80 和 443 端口设置为合理的预期速率 + 一些缓冲区,然后丢弃多余的流量。例如,使用 iptables“recent”模块。这是一个有点苛刻但便宜的措施,它肯定会减少您的出站流量。
将 CDN(内容分发网络)与 WAF(Web 应用程序防火墙)结合使用。在 AWS 中,您可以使用 CloudFront + AWS WAF或者使用 CloudFlare 等第三方。这样,您就可以在恶意/DoS 流量到达您的 Web 服务器之前将其阻止。
还可以配置正确的缓存您的网站设置。例如,图像、JS 和 CSS 文件可能可以缓存很多天甚至更长时间,而动态页面可能不能。使用正确的缓存,您的资产将不必经常从服务器重新加载,这将进一步减少出站流量。
希望有帮助:)