当规则中的 acl proxy_auth_regex 否定时,squid 代理会做什么?

当规则中的 acl proxy_auth_regex 否定时,squid 代理会做什么?

NTLM 身份验证助手仅当用户是 AD 组成员时才将其标记为已授权。Kerberos 身份验证助手将用户标记为已授权,如果用户能够登录,则 Kerberos 助手无法进行组检查,因此我需要一个外部 ACL 程序,该程序通过 LDAP 检查此用户是否被允许使用 squid。

我只需要直接允许通过 NTLM 授权的用户,外部 LDAP 检查成功后才允许 Kerberos 授权用户。

Kerberos 用户显示为 sAMAccountName@REALM,例如“[电子邮件保护]

NTLM 用户显示为 sAMAccountName,例如“用户”

我有以下 ACL:

# External ACL helper returns OK (User is in given LDAP group)
acl ldap_group_check external squid_kerb_ldap
# Username contains character '@'
acl kerberos_without_ldap_auth proxy_auth_regex (@)

还有这个规则:

# Default: Kerberos + LDAP group check
http_access allow ldap_group_check
# Fallback: NTLM
http_access allow !kerberos_without_ldap_auth

这是我的问题:规则是什么

http_access allow !kerberos_without_ldap_auth

是什么意思?我的配置是否存在安全问题?

这是否意味着“除用户名中带有‘@’的用户之外的所有用户”=> 坏事,因为未经身份验证的用户也会被允许

或“全部已认证除了用户名中带有“@”的用户之外的其他用户?=> 好东西,因为这样就只允许 NTLM 用户(成功的 KerberosLDAP 用户从第一条规则开始就被允许,因为 squids 的“先匹配获胜”原则

答案1

NTLM 和 Kerberos 都对用户进行身份验证,在用户通过身份验证后,您希望根据安全组成员身份授权访问互联网,对吗?如果是这样,为什么不将 LDAP 搜索过滤器调整为类似以下内容:

external_acl_type ldap_group %LOGIN /usr/lib64/squid/squid_ldap_group -R -b "DC=domain,DC=local" -D "CN=SQUID,OU=domain 服务帐户,DC=domain,DC=local" -w "*********" -f "(&(objectclass=person) (!(sAMAccountname=%v)(userPrincipalName=%s))(memberof=CN=%a,OU=PROXY,ou=ALL domain Groups,DC=domain,DC=local))" -h 10.0.0.,10.0.0。,10.0.0.***

请注意 (!(sAMAccountname=%v)(userPrincipalName=%s)) 的或过滤器将匹配 NTLM 或 Kerberos 验证名称。

相关内容