【问题标题】:Use of .htaccess to mitigate denial of service attacks使用 .htaccess 缓解拒绝服务攻击
【发布时间】:2013-06-13 02:01:21
【问题描述】:

我有一个需要登录的应用程序。

只能通过单个登录页面访问该站点。

我担心 DDOS,并且(感谢这里的朋友)能够编写一个脚本来识别潜在的 DDOS 攻击并锁定特定 IP 以防止站点访问(也是防止多个密码/用户名组合猜测的安全措施)

阻止那些使用 .htaccess 攻击的 IP 是否有任何价值。我可以简单地修改文件以防止我的服务器在一段时间内允许访问有问题的 IP,但这有什么好处吗?即使 .htaccess 阻止它们被服务,传入的请求是否仍会导致系统崩溃,还是会减少允许真正请求进入的负载?

值得注意的是,我的大部分请求都来自有限范围的正版 IP,因此我打算的实现大致如下:

如果怀疑有 DDOS 攻击,则仅允许从之前在设定的时间段内良好登录的 IP 进行访问。永久阻止所有无法正常登录的可疑 IP,除非手动请求解除阻止。

您的明智建议将不胜感激。如果您认为这是浪费时间,请告诉我!

实现几乎是纯 PHP。

【问题讨论】:

  • 您的网站成为 DDOS 攻击的目标有多现实?
  • 风险非常低,但它提供了一种服务,其中缺少服务是一个高风险问题。我只是想尽可能地建立保护而不是真正的偏执。
  • 这是一个 vps 还是一个 hoted 站点?如果以后我会把它留给主人。
  • 目前是一个托管站点,但我应该感谢任何关于最佳方式的意见。我设想在数据中心租用两台机器。
  • 我自己会去 AWS 做任何新项目

标签: php .htaccess ddos


【解决方案1】:

如果被 .htaccess 阻止,DDOS 攻击导致的负载会降低,因为不需要的连接会被提前拒绝并且不允许调用您的 PHP 脚本。

以对登录脚本的请求为例,您的 apache 服务器将调用 PHP 脚本,该脚本将(我假设)在某种数据库中进行用户查找。这是负载。

Request <---> Apache <---> PHP <---> MySQL (maybe)

如果您阻止和 ip(例如 1.2.3.4),您的 htacess 将有一个额外的行,如下所示:

Deny from 1.2.3.4

请求会是这样的:

Request <---> Apache <-x-> [Blocked]

并且不会发生 PHP 脚本或数据库调用,这比上一个示例的负载要少。

这还具有防止对登录表单进行暴力攻击的额外好处。您必须决定何时将 IP 添加到阻止列表,可能是当他们在一分钟内 20 次或连续超过半小时提供错误凭据时。

防火墙

最好使用防火墙来阻止请求,而不是使用 .htaccess。这样请求永远不会到达 apache,这是服务器根据 IP 地址规则丢弃数据包的简单操作。

下面的行是一个 shell 命令(当以 root 身份运行时)将添加一个 iptables 规则来丢弃来自该 IP 地址的所有数据包:

/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP

【讨论】:

  • 没有任何严重的 DDOS 防御能够在如此高的水平上发挥作用,并不是所有的 DDOS 攻击类型都可以在 Web 服务器附近进行。 rotuer-switch-firewall-os 级别是开始的地方
  • 不太确定你在说什么@Dagon,确实在防火墙处处理它(即使是软防火墙、iptables 等)会更干净(再次减少负载)。这样数据包甚至不会到达 apache。
  • 大多数 DDOS 攻击并不直接针对 Web 服务器,因此 .htacess 中的任何内容都无济于事。
  • 非常感谢 - 我希望有其他意见。我将确保与托管服务商交谈以确保其正常工作。 @will,是否可以稍后删除 iptables 规则,比如如果真正的用户需要从被阻止的 IP 登录?
  • 是的,与上面相同,但带有 -D 选项来删除该规则
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 2012-03-21
  • 2018-12-27
  • 2013-12-24
  • 1970-01-01
  • 2010-09-11
相关资源
最近更新 更多