02.04.2016 22:41, skeletor пишет:
> Всем привет.
> Использую связку squid+kerberos для аутентификации юзеров из АД. squid собран с поддержкой
>
> AUTH_LDAP
> AUTH_SASL
> GSSAPI_MIT
Для проверки пользователей/групп из squid в Active Directory
нет необходимости использовать Kerberos. Достаточно посылать запросы
в AD по протоколу LDAP. На примере squid 3.2, для домена COMPANY.local
и контроллера на адресе 192.168.1.3, в squid.conf:
# Проверка пароля пользователя
auth_param basic program /usr/local/adm/squid_ad_auth
auth_param basic children 10
auth_param basic realm COMPANY
auth_param basic credentialsttl 5 minutes
acl ad_user proxy_auth REQUIRED
# Проверка вхождения пользователя в группу InetPermitted
external_acl_type ad_permitted ttl=300 %LOGIN /usr/local/adm/squid_ad_group
acl ad_authorized external ad_permitted InetPermitted
Скрипт /usr/local/adm/squid_ad_auth:
#!/bin/sh
base=COMPANY
domain="dc=$base,dc=local"
dom="$base.local"
controller="192.168.1.3"
user=squid
passwordfile=/usr/local/adm/ad.pwd
exec /usr/local/libexec/squid/basic_ldap_auth -R -b "$domain" \
-D "$user@$dom" -W "$passwordfile" -f sAMAccountName=%s -h "$controller"
В домене нужен пользователь squid, чей пароль записан в /usr/local/adm/ad.pwd.
Скрипт /usr/local/adm/squid_ad_group:
#!/bin/sh
base=COMPANY
domain="dc=$base,dc=local"
dom="$base.local"
controller="192.168.1.3"
user=squid
passwordfile=/usr/local/adm/ad.pwd
exec /usr/local/libexec/squid/ext_ldap_group_acl -R -b "$domain" \
-D "$user@$dom" -W "$passwordfile" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,$domain))" \
-h "$controller" "$@"