URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 5323
[ Назад ]

Исходное сообщение
"squid_ldap_auth"

Отправлено hawaiski , 09-Янв-08 13:04 
Для аутентификации пользователей из AD на прокси-сервере squid решил использовать модуль squid_ldap_auth.
Возникла проблема:

авторизация пользователей из AD группы Users проходит отлично
./squid_ldap_auth -u cn -b "cn=Users,dc=test,dc=local" 172.16.3.1
squidtest squidtest
OK

а вот из группы Domain Users не проходит:
./squid_ldap_auth -u cn -b "cn=Domain Users,dc=bsuir,dc=by" 172.16.83.1
koluchy ttt
ERR Success

в чем может быть проблема? кто нибудь сталкивался?
может формат записи неправильный


Содержание

Сообщения в этом обсуждении
"squid_ldap_auth"
Отправлено Maxlane , 10-Янв-08 11:48 
>[оверквотинг удален]
>squidtest squidtest
>OK
>
>а вот из группы Domain Users не проходит:
>./squid_ldap_auth -u cn -b "cn=Domain Users,dc=bsuir,dc=by" 172.16.83.1
>koluchy ttt
>ERR Success
>
>в чем может быть проблема? кто нибудь сталкивался?
>может формат записи неправильный

может быть проблема в названии группы - попробуй убрать пробел (проверь на других группах).


"squid_ldap_auth"
Отправлено hawaiski , 11-Янв-08 16:25 

>может быть проблема в названии группы - попробуй убрать пробел (проверь на
>других группах).

пробовали с пробелами и без, другие группы пробовал

такое ощущение что squid_ldap_auth не понимает вложенных групп


"squid_ldap_auth"
Отправлено hawaiski , 11-Янв-08 17:17 
больше нет никаких соображений?


"squid_ldap_auth"
Отправлено fis , 14-Янв-08 06:58 
>больше нет никаких соображений?

а для групп случайно используют не squid_ldap_group ???


"squid_ldap_auth"
Отправлено Golub Mikhail , 14-Янв-08 13:53 
>>больше нет никаких соображений?
>
>а для групп случайно используют не squid_ldap_group ???

Если в имени группы есть проблел, то его надо заменить так:
Domain%20USers

На счет вложенности - не проверял, но посмотрите флаги squid_ldap_auth:
        -b basedn (REQUIRED)    base dn under which to search
        -f filter               search filter to locate user DN
        -u userattr             username DN attribute
        -s base|one|sub         search scope
        -D binddn               DN to bind as to perform searches
        -w bindpasswd           password for binddn
        -W secretfile           read password for binddn from file secretfile
        -H URI                  LDAPURI (defaults to ldap://localhost)
        -h server               LDAP server (defaults to localhost)
        -p port                 LDAP server port
        -P                      persistent LDAP connection
        -c timeout              connect timeout
        -t timelimit            search time limit
        -R                      do not follow referrals
        -a never|always|search|find
                                when to dereference aliases
        -v 2|3                  LDAP version
        -Z                      TLS encrypt the LDAP connection, requires LDAP version 3


"squid_ldap_auth"
Отправлено koluchy , 14-Янв-08 15:10 
спасибо за информацию.
2 fis На сколько я помню squid_ldap_group используется для прохождения аутентификации группой мне же нужно по отдельно взятому пользователю.


"squid_ldap_auth нужна помощь"
Отправлено hawaiski , 15-Янв-08 15:59 

все попытки добраться-таки до группы для аутентификации пользователя закончились неудачей. squid_ldap_auth работает только с контейнером Users, и не хочет работать ни с группами находящимися в этом контейнере ни с другими организационными единицами.

Кто сталкивался с такой проблемой посвятите пожалуйста как это победить :)


"squid_ldap_auth нужна помощь"
Отправлено neodiz , 17-Янв-08 16:02 
Пробуй так.У меня стоит sles 10.Тоже настраивал очень долго мучился но получилось и по группе сделать авторизацию
если будут вопросы пиши сразу на почтовый отвечу
auth_param basic program /usr/sbin/squid_ldap_auth -P -b "dc=akm,dc=ru" -f (uid=%s) -H "ldap://localhost" -v 3 -p 389
external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -P -b "dc=akm,dc=ru" -f (&(memberUid=%v)(cn=%a)) -H "ldap://localhost" -v 3 -p 389

"squid_ldap_auth нужна помощь"
Отправлено hawaiski , 18-Янв-08 16:35 
>Пробуй так.У меня стоит sles 10.Тоже настраивал очень долго мучился но получилось
>и по группе сделать авторизацию
>если будут вопросы пиши сразу на почтовый отвечу
>auth_param basic program /usr/sbin/squid_ldap_auth -P -b "dc=akm,dc=ru" -f (uid=%s) -H "ldap://localhost" -v
>3 -p 389
>external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -P -b "dc=akm,dc=ru" -f (&(memberUid=%v)(cn=%a)) -H "ldap://localhost" -v
>3 -p 389

в первом случае я так понимаю это аутетификация по юзерам?



"squid_ldap_auth нужна помощь"
Отправлено neodiz , 21-Янв-08 12:47 
по группам!в ACL я даю доступ по группам

"squid_ldap_auth нужна помощь"
Отправлено hawaiski , 21-Янв-08 15:18 
>по группам!в ACL я даю доступ по группам

черт мне надо по узерам. Вот в чем дело :-)

по группам не подходит, потому, как у меня одна группа


"squid_ldap_auth нужна помощь"
Отправлено hawaiski , 21-Янв-08 16:52 
To neodiz: ваш имэйл не доступен.

squid_ldap_auth -P -b "dc=bsuir,dc=by" -f (uid=%s) -H "172.16.83.1" -v 3 -p 389
ругается на синтаксис bash: syntax error near unexpected token `('

Вообще ситуация такая я создал группу в ad пользователи которой имеют право выходить в интернет. Так вот не могу я подобрать праильную последовательность записи в squid_ldap_auth, чтобы их аутентифицировать.
Так у меня работает:
./squid_ldap_auth -b "cn=Users,dc=bsuir,dc=by" -h ldapserv
C другиги группами не работает.



"squid_ldap_auth нужна помощь"
Отправлено nrvalex , 21-Янв-08 17:18 
>авторизация пользователей из AD группы Users проходит отлично
>./squid_ldap_auth -u cn -b "cn=Users,dc=test,dc=local" 172.16.3.1

есть  group  Users  и  Container  "cn=Users,dc=test,dc=local"
>а вот из группы Domain Users не проходит:
>./squid_ldap_auth -u cn -b "cn=Domain Users,dc=bsuir,dc=by" 172.16.83.1

а Container-а  "cn=Domain Users,dc=bsuir,dc=by" нет
есть group  "Domain Users"

-b basedn (REQUIRED)
    Specifies the base DN under which the users are located.
basedn -  container "cn=Users,dc=test,dc=local" или Organizational units  "ou=MyUsers,dc=bsuir,dc=by", но не group

Пробуй так
/squid_ldap_auth -b "cn=Users,dc=bsuir,dc=by" -f '(&(sAMAccountName=%s)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))'  -h ldapserv


"squid_ldap_auth нужна помощь"
Отправлено hawaiski , 25-Янв-08 11:09 
>
>Пробуй так
>/squid_ldap_auth -b "cn=Users,dc=bsuir,dc=by" -f '(&(sAMAccountName=%s)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))'  -h ldapserv

5-313-kolnix:/usr/sbin # ./squid_ldap_auth -d -b "cn=Users,dc=bsuir,dc=by" -f '(&(sAMAccountName=%s)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))' -h 172.16.83.1
squidtest squidtest
user filter '(&(sAMAccountName=squidtest)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))', searchbase 'cn=Users,dc=bsuir,dc=by'
squid_ldap_auth: WARNING, LDAP search error 'Operations error'
ERR Success

что-то неверно в формате записи?


"squid_ldap_auth нужна помощь"
Отправлено Golub Mikhail , 25-Янв-08 12:35 
>[оверквотинг удален]
>>Пробуй так
>>/squid_ldap_auth -b "cn=Users,dc=bsuir,dc=by" -f '(&(sAMAccountName=%s)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))'  -h ldapserv
>
>5-313-kolnix:/usr/sbin # ./squid_ldap_auth -d -b "cn=Users,dc=bsuir,dc=by" -f '(&(sAMAccountName=%s)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))' -h 172.16.83.1
>squidtest squidtest
>user filter '(&(sAMAccountName=squidtest)(memberOf=CN=Domain Users,CN=Builtin,dc=bsuir,dc=by))', searchbase 'cn=Users,dc=bsuir,dc=by'
>squid_ldap_auth: WARNING, LDAP search error 'Operations error'
>ERR Success
>
>что-то неверно в формате записи?

Для авторизации юзеров - squid_ldap_auth.
Для использования групп в acl-ях - squid_ldap_group.

Вот пример, уже работающий несколько лет:
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -R -v3 -P \
    -b "DC=DOMAIN,DC=RU" \
    -f "(&(objectclass=user)(!(objectclass=computer))(sAMAccountName=%s))" \
    -D "CN=ldapreaduser,OU=OOOO,DC=DOMAIN,DC=RU" -w "pass_for_ldapreaduser" -H ldap://IP_DC:3268

Где:
-b "DC=DOMAIN,DC=RU" --- base DN.
    -D "CN=ldapreaduser,OU=OOOO,DC=DOMAIN,DC=RU" -w "pass_for_ldapreaduser" -H ldap://IP_DC:3268 --- под кем подключаться и куда.
IP_DC - IP контроллера домена.
3268 - порт Global Catalog MS AD (с GC чтение быстрее, чем с 389-го порта, да и если лес доменов, то доступны все).

Для squid_ldap_group по аналогии.



"squid_ldap_auth нужна помощь"
Отправлено BaldyMan , 29-Янв-08 16:40 
А я бы не стал делать проверку по группе Domain Users. На мой взгляд лучше создать в АД группу к примеру Internet и использовать ее, пользователя ведь всегда можно будет из неё исключить и тем самым отлучить от интернета...

"squid_ldap_auth нужна помощь"
Отправлено hawaiskii , 07-Фев-08 12:37 
Спасибо всем. Сделал следующим образом:

Создал в контейнере Users групп Unibel - все члены этой нруппы должны меть выход в инет.
Сделал пару пользователей из разных организационных единц членами этой группы.

squid_ldap_group -R -b "dc=bsuir,dc=by" -f "(&(cn=%v)(memberOf=cn=%a,cn=Users,dc=bsuir,dc=by))" -D Administrator@bsuir.by -w пароль -h 172.16.83.1
squidtest Unibel
OK

squid_ldap_auth -R -D Administrator@bsuir.by -w пароль -b "dc=bsuir,dc=by" -f "cn=%s" -h 172.16.83.1
koluchy пароль
OK

Пока все работает.


"squid_ldap_auth нужна помощь"
Отправлено hawaiskii , 07-Фев-08 12:42 
Вообще исследую AD(winserver2003) при помощи ldapsearch, обнаружил, что различные единицы хранения объектов обозначаются не логично.
Например, CN - это и пользователь, и группа, и контейнер. Имхо.

"squid_ldap_auth нужна помощь"
Отправлено fcgsen , 16-Мрт-08 01:18 
>[оверквотинг удален]
>
>squidtest Unibel
>OK
>
>squid_ldap_auth -R -D Administrator@bsuir.by -w пароль -b "dc=bsuir,dc=by" -f "cn=%s" -h 172.16.83.1
>
>koluchy пароль
>OK
>
>Пока все работает.

Я написал проще, ни каких там контейнеров создавать не нужно, просто делаете так:

./squid_ldap_auth -u cn -b "ou=Sector SAK,ou=Users_Admins,dc=niips,dc=ru" -h 10.3.1.1
имя пароль
OK
где имя - это Ваше common name (cn), а не логин на вход в систему, если токо они одинаковые. ou - Ваши органиционные единицы, прописывать надо их с конца.



"squid_ldap_auth нужна помощь"
Отправлено dpalkin , 21-Мрт-08 18:07 
>[оверквотинг удален]
>
>Я написал проще, ни каких там контейнеров создавать не нужно, просто делаете
>так:
>
>./squid_ldap_auth -u cn -b "ou=Sector SAK,ou=Users_Admins,dc=niips,dc=ru" -h 10.3.1.1
>имя пароль
>OK
>где имя - это Ваше common name (cn), а не логин на
>вход в систему, если токо они одинаковые. ou - Ваши органиционные
>единицы, прописывать надо их с конца.

А если не одинаковые?


"squid_ldap_auth нужна помощь"
Отправлено Любитель , 17-Мрт-09 13:35 
>[оверквотинг удален]
>>так:
>>
>>./squid_ldap_auth -u cn -b "ou=Sector SAK,ou=Users_Admins,dc=niips,dc=ru" -h 10.3.1.1
>>имя пароль
>>OK
>>где имя - это Ваше common name (cn), а не логин на
>>вход в систему, если токо они одинаковые. ou - Ваши органиционные
>>единицы, прописывать надо их с конца.
>
>А если не одинаковые?

Путем извращизмов прошло следующее:
/usr/local/libexec/squid/squid_ldap_auth -b "dc=your_domain,dc=local" -f cn=%s -D "cn=ldapuser,cn=Users,dc=your_domain,dc=local" -w ldappasswd -R 10.0.3.5

Коменты такие:
ключ f ищет по имени юзера в АД, неявно используя ключ -s sub (поиск по всему дереву LDAP)
ключи D и w - тут ясно, авторизация для домена
А заработало все после ключа R! Почему - не знаю, описание ключа туманное. Хотя в одном примере squid_ldap_auth фигурирует R:

squid_ldap_auth     -P     -R    -b    "dc=your,dc=domain"    -D "cn=squid,cn=users,dc=your,dc=domain"  -w  "secretsquidpassword" -f  "(&(userPrincipalName=%s)(objectClass=Person))" activedirec-toryserver

Работает очень быстро, так что усложнять поисковый параметр -f не стал.


"squid_ldap_auth нужна помощь"
Отправлено Любитель , 17-Мрт-09 14:12 
>[оверквотинг удален]
>>так:
>>
>>./squid_ldap_auth -u cn -b "ou=Sector SAK,ou=Users_Admins,dc=niips,dc=ru" -h 10.3.1.1
>>имя пароль
>>OK
>>где имя - это Ваше common name (cn), а не логин на
>>вход в систему, если токо они одинаковые. ou - Ваши органиционные
>>единицы, прописывать надо их с конца.
>
>А если не одинаковые?

Уточнения :)
1. 10.0.3.5  - это мой сервак
2. Есть очень сильное подозрение, что порядок параметров тоже играет свою роль
3. Это гонялось на FeeBSD


"squid_ldap_auth нужна помощь"
Отправлено Sucht , 20-Авг-10 17:47 
/usr/local/libexec/squid/squid_ldap_auth -d -R -D admin@domen.local -W /usr/local/etc/passwordfile -b "cn=users,dc=domen,dc=local" -f "cn=%s" -h 192.168.5.1

./squid_ldap_auth.sh
test пароль
user filter 'cn=test', searchbase 'cn=users,dc=domen,dc=local'
attempting to authenticate user 'CN=test,CN=Users,DC=domen,DC=local'
OK

u.test тотжепароль
user filter 'cn=u.test', searchbase 'cn=users,dc=domen,dc=local'
Ldap search returned nothing
ERR Success

Я так понимаю пользователи с точкой не пашут.

Ладно. Это не так страшно.
Клиентская машина в домене. Шлюзом указана машина со сквидом. Захожу пользователем test.
Открываю браузер и он у меня спрашивает логин пароль. ПОЧЕМУ???