Помощник NTLM auth помечает пользователей как авторизованных, только если они являются членами группы AD. Помощник Kerberos auth помечает пользователя как авторизованного, если он смог войти в систему, проверка группы не может быть выполнена помощником Kerberos, поэтому мне нужна внешняя программа ACL, которая проверяет через LDAP, разрешено ли этому пользователю использовать Кальмар.
Я должен разрешить только пользователям, авторизованным через NTLM напрямую, авторизованные пользователи Kerberos разрешены после успешной внешней проверки LDAP.
Пользователи Kerberos отображаются как sAMAccountName @ REALM, например "user@COMPANY.LOCAL"
Пользователи 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 (Успешный Kerberos И Пользователи LDAP разрешены уже из первого правила, из-за кальмаров "первый матч выигрывает")
Как 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 Service Accounts, DC = domain, DC = local" -w "* ******** "-f" (& (objectclass = person) (! (sAMAccountname =% v) (userPrincipalName =% s)) (memberof = CN =% a, OU = PROXY, ou = ВСЕ домен Группы, DC = домен, DC = local)) "-h 10.0.0., 10.0.0., 10.0.0. ***
Обратите внимание на фильтр или для (! (SAMAccountname =% v) (userPrincipalName =% s)), который будет соответствовать аутентифицированному имени NTLM или Kerberos.