我正在运行一些独特的防火墙设置,使用 rackspace 提供的各种功能(负载均衡器和云,并且我安装了 squid 来通过云代理 http 请求)。我的设置几乎阻止了除 HTTP 洪水之外的所有攻击。问题是我没有 SSH 访问负载均衡器的权限来告诉它阻止攻击 IP,并且当它到达云时,连接 IP 是负载均衡器的。但是,负载均衡器在标头中发送客户端 IP。有什么方法可以设置防火墙以从标头读取(并阻止)IP?
在负载均衡器上使用CentOS6.0
答案1
您无法让 iptables 防火墙系统有效地从 HTTP 层读取内容并进行阻止。有一些“第 7 层”匹配模块,但它们通常不是好的选择,或者无法合理地支持。
部分问题在于,报头可能位于初始连接之后的三到五个数据包中,您必须维护大量状态才能确定其来源。(除非负载平衡器将其放在 IP 选项或其他东西中,但可能不会。)
你最好使用以下工具之一:失败2ban该进程记录查找违规内容,然后添加 iptables 规则或 - 有用的 - 执行一些其他操作,例如尽一切可能阻止上游攻击。
如果您无法阻止系统上的攻击,那么您最有可能做的就是在系统上的 Web 服务器和负载均衡器之间放置某种代理,然后将其转发 - 但前提是攻击不是恶意的。
虽然这仍然需要花费大量成本,但至少它可以保护您的应用服务器免受恶意请求的侵害,并为您提供一个更简单的操作系统。