首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在负载均衡器后面阻止Apache中重复的http请求

问在负载均衡器后面阻止Apache中重复的http请求
EN

Server Fault用户
提问于 2013-08-21 16:39:10
回答 2查看 7K关注 0票数 3

我在AWS上有许多EC2服务器,在负载均衡器(ELB)后面运行apache。不时有一些IP地址滥用EC2服务器上的API并导致拒绝服务。我没有访问负载均衡器的权限,所以我需要在服务器级别阻止访问。

我更改了apache访问日志,使其基于负载均衡器提供的X转发-For报头显示IP(否则它只显示负载均衡器的IP),这样我就可以识别这些IP并以如下方式阻止它们(同样通过指定X转发-For):

代码语言:javascript
复制
<Directory api_dir>
                SetEnvIF X-FORWARDED-FOR "1.1.1.1" DenyIP
                Order allow,deny
                allow from all
                deny  from env=DenyIP
</Directory>

然而,这仍然意味着我需要手动处理每一次攻击,我的服务器因此会遇到一些停机时间。

推荐的方法是自动阻止重复HTTP调用的攻击,这不是基于IP,而是基于转发-用于来自负载均衡器的报头。

EN

回答 2

Server Fault用户

发布于 2013-08-21 17:00:37

您可以使用国防部_避避和国防部_rpaf相结合来完成这个任务。

前者允许您限制IP地址(例如,为了阻止DOS攻击),后者允许您使X转发- for地址显示为IP,正如在这个问题的答复中讨论的那样。

(如果mod_rpaf对您不起作用,您就必须黑掉mod_evasive的源代码。)

票数 2
EN

Server Fault用户

发布于 2015-05-07 05:50:45

我编写了一个扩展博客帖子,介绍如何使用Apache2.4使用OSSEC (一个基于FOSS主机的入侵检测系统)。这是TLDR:

  1. 使用国防部_遥控器来记录客户端IP而不是负载平衡器IP。
  2. 在vhost配置中,使用IncludeOptional指令中的RequireAll指令来在包含其他国防部_合著_主机指令的目录中进行源,该指令是由OSSEC编写的。
  3. 为OSSEC创建一个自定义主动响应脚本,它将为OSSEC检测恶意活动的每个IP地址向上面的目录添加一个mod_authz_host指令(如Require not ip 1.2.3.4 )的文件。
  4. 配置OSSEC以开始使用上面的活动响应脚本--我建议从OSSEC的默认command活动响应的主机拒绝配置块和active-response配置块中复制设置,如果在第6级或更高的位置触发警报,它会阻塞IP地址10分钟。
  5. 将一些自定义规则添加到OSSEC的local_rules.xml定义文件中,用于记录到Apache日志中的HTTP请求,当与Y 时间框架中的X 频率匹配时,这些规则将触发上述活动响应(例如,在10秒内超过50次,或者您认为是滥用的)。

如果您还没有使用OSSEC (或其他一些HIDS),我会衷心地推荐它--它非常容易设置,并且提供了很多现成的功能。DigitalOcean为Ubuntu14.04提供了一个很好的OSSEC安装教程 (您可以很好地理解它,甚至对于其他linuxes也是如此)。您只需在每个服务器上以“本地”模式安装它即可开始,稍后再重新安排它以使用它的高级客户端服务器架构。

还请注意,每次将IP添加到块列表时,该技术都需要自动重新启动Apache,这对某些人来说可能是不可能的。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/532681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档