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