关于 apache 和 nginx 的 auth 疑问

2014-04-15 11:41:45 +08:00
 caizixian
有一些服务器用的是apache或nginx
问题是,为了防止暴力破解,想有一个密码错误尝试多次后不让其继续访问需要auth的页面(所对应的公网ip),但其他的普通网页依然允许访问的功能
我现在自己配置的apache和nginx可以无限重试,感觉太不放心了
3035 次点击
所在节点    NGINX
7 条回复
kfll
2014-04-15 11:58:40 +08:00
auth? 你是指自带的 http auth 模块么

这俩自带的模块好像都没有这个特性

这里有解决方案: http://serverfault.com/questions/421046/how-to-limit-nginx-auth-basic-re-tries
cevincheung
2014-04-15 12:13:46 +08:00
单纯依靠nginx/apache实现不了吧。auth页面自己写逻辑啊,密码错误几次今天内这个ip封掉啊。redis&memcache就好
Livid
2014-04-15 12:23:44 +08:00
ngx lua 放到 access_by_lua 阶段,对请求中带 Authorization 头部的 IP 进行计数,在一定时间内超过阀值就触发 403。
caizixian
2014-04-15 12:39:22 +08:00
现在我是直接Deny All
Allow IP

@kfll 用fail2ban 把整个IP都给禁了 连普通页面也无法访问
@cevincheung 太复杂了吧
@Livid 能给个样例吗 谢谢
lang1pal
2014-04-15 12:53:08 +08:00
用fail2ban好像就以解决了
cevincheung
2014-04-15 14:04:37 +08:00
@caizixian 一点都不复杂。web server不承担验证逻辑判断的任务。像@Livid 的方案也是把验证逻辑搬到了nginx里,“验证”这个逻辑和代码部分内容依然还是存在的。
cevincheung
2014-04-15 14:06:07 +08:00
补充一下,如果写到nginx里,那还要考虑到以后的扩展问题,做负载不好做啊 -_-#

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/108626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX