V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
caizixian
V2EX  ›  NGINX

关于 apache 和 nginx 的 auth 疑问

  •  
  •   caizixian ·
    caizixian · 2014-04-15 11:41:45 +08:00 · 3046 次点击
    这是一个创建于 3882 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一些服务器用的是apache或nginx
    问题是,为了防止暴力破解,想有一个密码错误尝试多次后不让其继续访问需要auth的页面(所对应的公网ip),但其他的普通网页依然允许访问的功能
    我现在自己配置的apache和nginx可以无限重试,感觉太不放心了
    7 条回复    1970-01-01 08:00:00 +08:00
    kfll
        1
    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
        2
    cevincheung  
       2014-04-15 12:13:46 +08:00
    单纯依靠nginx/apache实现不了吧。auth页面自己写逻辑啊,密码错误几次今天内这个ip封掉啊。redis&memcache就好
    Livid
        3
    Livid  
    MOD
       2014-04-15 12:23:44 +08:00 via iPhone
    ngx lua 放到 access_by_lua 阶段,对请求中带 Authorization 头部的 IP 进行计数,在一定时间内超过阀值就触发 403。
    caizixian
        4
    caizixian  
    OP
       2014-04-15 12:39:22 +08:00
    现在我是直接Deny All
    Allow IP

    @kfll 用fail2ban 把整个IP都给禁了 连普通页面也无法访问
    @cevincheung 太复杂了吧
    @Livid 能给个样例吗 谢谢
    lang1pal
        5
    lang1pal  
       2014-04-15 12:53:08 +08:00
    用fail2ban好像就以解决了
    cevincheung
        6
    cevincheung  
       2014-04-15 14:04:37 +08:00
    @caizixian 一点都不复杂。web server不承担验证逻辑判断的任务。像@Livid 的方案也是把验证逻辑搬到了nginx里,“验证”这个逻辑和代码部分内容依然还是存在的。
    cevincheung
        7
    cevincheung  
       2014-04-15 14:06:07 +08:00
    补充一下,如果写到nginx里,那还要考虑到以后的扩展问题,做负载不好做啊 -_-#
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:44 · PVG 23:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.