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" "$@"

Ответить