Автор Тема: squid авторизация по группам  (Прочитано 22810 раз)

carter123

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
squid авторизация по группам
« : 04 Апрель 2013, 20:24:31 »
Добрый день
пользуюсь хелперами squid_ldap_auth и squid_ldap_group
Я хочу сделать в squid  2 доступа: inet и noninet
При этом у меня все пользотваели находятся в одной группе people (я не хочу делать подразделения на группы)
Собственно вопрос, как проще  организовать принадлежность пользотвателя к определ. группе
1) можно ли сделать чтобы у каждого пользователя к примеру test имелся какой нибудь доп. атрибут и чтобы хелпер определял inet или noninet  у данного юзера?
или здесь нужен другой способ?
Спасибо.

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: squid авторизация по группам
« Ответ #1 : 05 Апрель 2013, 05:23:49 »
Здравствуйте! Разумееется, при наличии атрибута с нужным значением, его всегда можно указать в поисковом фильтре, такой пример есть в man squid_ldap_auth:
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(specialattribute=value))" ldapserver
То есть, если в записи Вашего пользователя есть атрибут, скажем locality (или какой Вам больше нравится) со значением, допустим, squidInetUser, то хэлпер можно вызывать примерно так:
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(locality=squidInetUser))" ldapserver + остальные параметры

В свете недавнего обсуждения наложения memberof можно попробовать вернуться к предложенной Вами ранее концепции групп для разных приложений, то есть сделать группу cn=squid,ou=groups,dc=your,dc=domain и указать, что только её члены будут ходить в интернет через squid:
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(memberOf=cn=squid,ou=groups,dc=your,dc=domain))" ldapserver + остальные параметры

Егор

carter123

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: squid авторизация по группам
« Ответ #2 : 05 Апрель 2013, 11:14:10 »
Спасибо Егор
но
squid_ldap_auth -b "dc=your,dc=domain" -f "(&(uid=%s)(memberOf=cn=squid,ou=groups,dc=your,dc=domain))" dapserver + остальные параметрыразве не squid_ldap_group здесь должен был быть?
и если у меня будет таких несколько групп скажем inetfull ... inetHalf ... InetRestrict   к примеру
то тогда     вместо squid  будет %a?
-f "(&(uid=%s)(memberOf=cn=%a,ou=groups,dc=your,dc=domain))" 
« Последнее редактирование: 05 Апрель 2013, 15:16:01 от carter123 »

carter123

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: squid авторизация по группам
« Ответ #3 : 05 Апрель 2013, 17:05:00 »
вообщем сделал
# test, people, mol.ru
dn: uid=test,ou=people,dc=mol,dc=ru
objectClass: inetOrgPerson
objectClass: posixAccount
cn: test
sn: 1
uid: test
userPassword:: MTIz
uidNumber: 8
gidNumber: 12
homeDirectory: /var/mail/test
description: swell guy
ou: it
# groups, mol.ru
dn: ou=groups,dc=mol,dc=ru
objectClass: organizationalUnit
ou: groups
description: generic groups branch

# inetfull, groups, mol.ru
dn: cn=inetfull,ou=groups,dc=mol,dc=ru
objectClass: groupOfNames
cn: inetfull
description: inetfull
member: uid=test,ou=people,dc=mol,dc=ru
потом проверяю. и ничего не получаю
ldapsearch -x -LLL -b 'dc=mol,dc=ru' '(uid=test)' memberof
dn: uid=test,ou=people,dc=mol,dc=ru
все плаигны влючил
overlay                 memberof
при рестарте ошибок нет
не подскажите что я делаю не так? на просторах интернета ничего не нашел
прошлую тему перечитал


-------------------------------------------------------------
СДЕЛАЛ
как сделал так и не понял, просто удалил  cn=inetfull,ou=groups,dc=mol,dc=ru   и заново добавил
что за глюк такой? как такое может быть
« Последнее редактирование: 05 Апрель 2013, 18:29:04 от carter123 »

carter123

  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: squid авторизация по группам
« Ответ #4 : 05 Апрель 2013, 18:48:31 »
вроде заработало
/usr/lib64/squid/squid_ldap_group -b "dc=mol,dc=ru" -f "(&(uid=%v)(memberOf=cn=%a,ou=groups,dc=mol,dc=ru))"
test inetfull
OK
Спасибо Егор  :)