headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Squid + LDAP

Дабы не забыть, оставляю для себя напоминалку по настройки squid на авторизацию на основе аккаунтов в LDAP.

В squid встроен модуль squid_ldap_auth. Расположен он в /usr/lib64/squid/.

Проверяем, работает ли он:

#/usr/lib64/squid/squid_ldap_auth -b "basedn" -D "binddn" -w bindpasswd -h LDAP_Server -v 3 -p 389
User Pass
OK

Как видно выше, работает. User и Pass забиваем ручками после запуска первой команды :).

Собственно на этом проверка завершена, можно идти в конфиг:

#vim /etc/squid/squid.conf

Добавляем строчки:

auth_param basic program /usr/lib64/squid/squid_ldap_auth -b "basedn" -D "binddn" -w bindpasswd -h LDAP_Server -v 3 -p 389
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
acl ldapauth proxy_auth REQUIRED
http_access allow ldapauth
http_access deny all

Проверяем, радуемся если работает, огорчаемся в противном случае.

А теперь идем дальше и настраиваем squid_ldap_group, который даст нам возможность авторизиции на основе групп пользователей, построение acl на основе групп и прочее.

Итак, тестим

#/usr/lib64/squid/squid_ldap_group -R -b "basedn" -D "binddn" -w bindpasswd -f "(&(memberUid=%v)(cn=%a))" -h LDAP_Server -v 3 -p 389
User Group
OK

Обратим внимание на строку фильтра -f “(&(memberUid=%v)(cn=%a))”. В моем случае cn содержит имя группы, а memberUid содержит члена группы.

Изменяем конфиг следующим образом:

auth_param basic program /usr/lib64/squid/squid_ldap_auth -b "basedn" -D "binddn" -w bindpasswd -h LDAP_Server -v 3 -p 389
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
external_acl_type ldap_group %LOGIN /usr/lib64/squid/squid_ldap_group -R -b "basedn" -D "binddn" -w bindpasswd -f "(&(memberUid=%v)(cn=%a))" -h
acl test2 external ldap_group Admins
http_access allow Admins
http_access deny all

Где test2 это имя нового списка контроля доступа, а Admins это группа в LDAP сервере.

Сегодня на этом все, дальше настраиваем практически как обычно.

Постовой

Нужен пылесос? Не беги в магазин, закажи в инете. Отличный интернет-магазин пылесосов с огромным ассортиментом, низкими ценами.

Просто обязательный сайт для увлекающихся фотографией. Качественные статьи, секреты фотографии и многое другое.

One Comment

  1. В последнем примере в восьмой строчке ошибка?
    http_access allow test2
    вместо
    http_access allow Admins

    1. pomaskin on May 20th, 2010 at 3:23 pm