查看文章
 
使用HAPROXY的ACL封禁IP
2009-07-16 18:13

在国内做互联网,总免不了要封这个,杀那个的。这不,刚收到要封禁N个IP段的需求,而且要求的还贼急。

有如下几个方法:
1) 改业务代码,封禁逻辑放在这里 -- 放弃了,业务不得慢死!
2) 改接入机IPTABLES -- 没敢做,怕把自己给ban了,要打电话到机房重启就惨了
3) 修改接入机上的haproxy -- 幸亏peterwang提醒了一下啊

这里就讲一下如何用haproxy满足这类封禁需求。

haproxy的简要介绍如下:
HAProxy提供高可用性、负载均衡 以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会氨3只蚱卟愦 怼?HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
更详细的信息请看:http://cn.haproxy.org/

我们需要用到的是haproxy的 acl功能,例子如下:

acl invalid_src src 0.0.0.0/7 224.0.0.0/3
acl invalid_src src_port 0:1023
acl local_dst hdr(host) -i localhost
block if invalid_src || local_dst

用acl定义一些规则,而用(block|use_backend)指定满足这些规则怎么做,我们当然选择block!

上述这段配置可以位于如下section

keyword                 defaults   frontend   listen    backend
----------------------+----------+----------+---------+---------
acl                         -          X         X         X

----------------------------------------------------------------
有点:
快速、高效;只需要改动一下配置文件即可,特别是应对突发事件。

缺点:
用户会得到一个403页面。不是很友好。
最好是业务端有封禁server,可以给出更友好的提示。


类别:学习心得||添加到搜藏 |分享到i贴吧|浏览(745)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu