在 Apache 中实现黑名单/白名单 + LDAP 身份验证

在 Apache 中实现黑名单/白名单 + LDAP 身份验证

在 Apache 中,最好的方法是什么,只向以下用户授予访问权限:通过两个以下测试:

  1. 用户未出现在黑名单中(或者出现在白名单中)
  2. 用户拥有有效的 LDAP 用户帐户

我已经进行了第二次测试,但现在我需要禁止一些有效的 LDAP 用户。请注意,我不能创建一个 AD 组来代表我的黑/白名单。

答案1

出现在白名单中很容易 - 只需使用 require ldap-user(或 2.0 中的 require user)而不是“require valid-user”列出单个用户。

如果不编写一个简短的模块或做一些花哨的事情(例如上下文中的 mod_rewrite + 黑名单的重写映射),黑名单是不可能实现的。然后您只需查看登录的用户名即可。

答案2

我已经成功地做到了这一点

  • mod_auth_ldap 验证有效用户
  • mod_authz_host 将 IP 范围列入黑名单

配置看起来类似于:

    <Location /blacklisted >
        AuthType Basic
        AuthName "PAM"

        AuthBasicProvider ldap
        Require valid-user
        AuthLDAPURL ldap://ldap.example.com/?sAMAccountName?sub
        AuthzLDAPAuthoritative off
        AuthLDAPBindDN [email protected]
        AuthLDAPBindPassword verySecurePasswd

        Order allow,deny
        Deny from 192.168.1
        Allow from all
    </Location>

但是,我仍然不知道如果我想将 LDAP 用户名而不是 IP 地址列入黑名单是否可行。(科文纳似乎建议一些复杂的配置可以做到这一点,但我还没有尝试过)。

相关内容