Последние сообщения

Страницы: 1 ... 4 5 [6] 7 8 ... 10
51
Access Control List (ACL) / Re: Общие ACL для двух серверов
« Последний ответ от ferta 04 Февраль 2021, 15:03:54 »
Спасибо
52
Общий раздел / Вопросы про настройку БД meta
« Последний ответ от VlgSlv 04 Февраль 2021, 12:56:41 »
Доброго всем!
Возможно вопросы ламерские  - недавно только занялся openldap.
Погуглил + поискал по форуму, ответов на них не нашел (может плохо искал)
Есть локальный ЛДАП и АД настраиваю БД meta следующим образом
# {3}meta, config
dn: olcDatabase={3}meta,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMetaConfig
olcDatabase: {3}meta
olcSuffix: dc=AA,dc=BB,dc=CC
olcDbOnErr: continue

далее uri
#локальный ЛДАП
dn: olcMetaSub={0}uri,olcDatabase={3}meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: uri
olcDbURI:"ldap://192.16.20.20/dc=ldap,dc=AA,dc=BB,dc=CC"
olcDbIDAssertBind: bindmethod=simple binddn="CN=admin,DC=AA,DC=BB,DC=CC" credentials=ping mode=none
olcDbProtocolVersion: 3
olcDbRebindAsUser: FALSE

# Active Directory
dn: olcMetaSub={1}uri,olcDatabase={3}meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: uri
olcDbURI:"ldap://10.14.20.6/ou=uf,dc=AA,dc=BB,dc=CC"
olcDbIDAssertBind: bindmethod=simple binddn="CN=user,OU=Service Accounts,OU=DR,OU=UF,DC=UF,DC=RT,DC=RU" credentials= pong  mode=none
olcDbProtocolVersion: 3
olcDbRebindAsUser: FALSE

Вопросы следующие:
1.  olcMetaSub и {3}meta добавлялись через ldapadd  ... -f add.ldif , но после
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
обноружил , что  olcDbIDAssertBind: представлено ввиде
olcDbIDAssertBind:: YmluZG1ldGh  .... =


2. если я ищу пользователя из локального ЛДАП, что из АД
ldapsearch -vvv  -x -b "dc=AA,dc=BB,dc=CC"  -H "ldap://192.16.20.20"   "(uid=userLDAP)"
ldapsearch -vvv   -x -b "dc=AA,dc=BB,dc=CC"  -H "ldap://192.16.20.20"   "(sAMAccountName=userAD)"
то в ответ получаю
# search result
search: 2
result: 1 Operations error
Но в логах сервера  в первом случае имею найденного пользователя в "локальном ЛДАП", но ошибку при обращении к АД
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: [rw] searchBase: "ou=uf,dc=AA,dc=BB,dc=CC" -> "ou=uf,dc=AA,dc=BB,dc=CC"
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: [rw] searchFilter: "(uid=userLDAP)" -> "(uid=userLDAP)"
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: [rw] searchResult: "cn=Fname Lname ,ou=users,dc=ldap,dc=AA,dc=BB,dc=CC" -> "cn=Fname Lname,ou=users,dc=ldap,dc=AA,dc=BB,dc=CC"
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: [rw] searchAttrDN: "cn=admin,dc=ldap,dc=AA,dc=BB,dc=CC" -> "cn=admin,dc=ldap,dc=AA,dc=BB,dc=CC"
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: conn=1010 op=1 meta_back_search[1] match="" err=1 (Operations error) text="000004DC: LdapErr: DSID-0C090A7D, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v3839".
Feb  4 12:19:03 ubuntuLDAP slapd[30519]: send_ldap_result: err=1 matched="" text=""

А во втором случае
Feb  4 12:22:46 ubuntuLDAP slapd[30519]: [rw] searchBase: "ou=uf,dc=AA,dc=BB,dc=CC" -> "ou=uf,dc=AA,dc=BB,dc=CC"
Feb  4 12:22:46 ubuntuLDAP slapd[30519]: [rw] searchFilter: "(SAMACCOUNTNAME=userAD)" -> "(SAMACCOUNTNAME=userAD)"
Feb  4 12:22:46 ubuntuLDAP slapd[30519]: conn=1011 op=1 meta_back_search[1] match="" err=1 (Operations error) text="000004DC: LdapErr: DSID-0C090A7D, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v3839".
Feb  4 12:22:46 ubuntuLDAP slapd[30519]: send_ldap_result: err=1 matched="" text=""

Выглядит как если не правильно указаны binddn= ... и credentials в  olcDbIDAssertBind для АД, но с теми же параметрами с того же ресурса
ldapsearch -v -x -D "CN=user,OU=Service Accounts,OU=DR,OU=UF,DC=UF,DC=RT,DC=RU" -w "pong" -b "OU=UF,DC=AA,DC=BB,DC=CC" -H "ldap://10.14.20.6"  "(&(sAMAccountType=805306368)(sAMAccountName=userAD))"
имеем нормальный результат
...
# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Подскажите, где собака зарыта?



53
Access Control List (ACL) / Re: Общие ACL для двух серверов
« Последний ответ от egor 04 Февраль 2021, 11:52:16 »
Здравствуйте!

Если у вас динамическая конфигурация slapd (cn=config), то можно параллельно с репликацией рабочего каталога частично реплицировать каталог динамической конфигурации с помощью того же механизма syncprov/syncrepl для базы данных olcDatabase={0}config.

Если у вас статическая конфигурация (файл slapd.conf), можно вынести директивы ACL в отдельный файл, в slapd.conf подключить его в нужное место директивой include, а сам файл с ACL расшарить/синхронизировать между серверами (nfs, rsync или что-то ещё). После внесения изменений и синхронизации нужно будет перезапускать slapd на всех серверах.

Егор
54
Access Control List (ACL) / Общие ACL для двух серверов
« Последний ответ от ferta 04 Февраль 2021, 08:55:58 »
Здравствуйте!
Имею два сервера с настроенной репликацией между ними, на каждом сервере настроены свои ACL.
Не удобно вести параллельно два списка ACL. Поэтому вопрос, имеется ли возможность при данной схеме иметь одни общие ACL для 2-х серверов?
Спасибо.
55
Очень интересные решения с нестандартными правилами соответствия от Microsoft. Спасибо, что поделились.

Егор
56
Решено:

cat /etc/postfix/main.cf
...
virtual_alias_maps = pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members.cf}
...

cat /etc/postfix/ldap/ad_virtual_group.cf
...
query_filter     = (&(mail=%s)(objectClass=group)(member=*))
result_attribute = distinguishedName
...

cat /etc/postfix/ldap/ad_virtual_group_members.cf
...
query_filter     = (&(userPrincipalName=*)(mail=*)(memberOf:1.2.840.113556.1.4.1941:=%s)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute = mail
...

Проверка:
postmap -vfq "group@doma.in" "pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members.cf}"
Применить:
posfix reload
57
Всех с наступившим )

Продолжаю воевать с postfix-ом и отправкой писем только АКТИВНЫМ пол-лям в группе

Попробовал схему с pipemap:
pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group_dn_maps.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members_maps.cf}
1. Определяем distinguishedName группы:
cat /etc/postfix/ldap/ad_virtual_group_dn_maps.cf
...
query_filter = (&(mail=%s)(member=*))
result_attribute = distinguishedName

2. Используем полученный выше результат для поиска только АКТИВНЫХ пол-лей в группе:
cat /etc/postfix/ldap/ad_virtual_group_members_maps.cf
...
query_filter = (&(memberOf=%s)(objectClass=person)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute = mail

Работает. НО только, если нет вложенных групп. А надо, чтобы и во вложенных группах искало АКТИВНЫХ пол-лей.

P.s. Вот так ищет и во вложенных группах и без использования pipemap:

cat /etc/postfix/ldap/ad_virtual_group_maps.cf
...
query_filter     = (&(mail=%s)(member=*))

result_attribute =
special_result_attribute = member
leaf_result_attribute = mail

Но в результат попадают ВСЕ пол-ли, а не только АКТИВНЫЕ.
58
Добрый.
БОЛЬШОЕ спасибо за ответ. Попробую.

Цитировать
А если человек вернётся, адрес почты вручную планируете восстанавливать?
Да, руками. Если многим добавлять - опять же скриптом можно.
59
Зы. Может postfix умеет со скриптами работать? Перед отправкой, например?

Со скриптами умеет, но это обычно используется для анализа письма (антивирус, антиспам и т.п.) а не для принятия решения по маршрутизации/доставке почты. Я тут посмотрел в документацию postfix, там есть тип карты pipemap, очень похоже на то, что может решить вашу задачу. То есть можно сделать одну LDAP-карту для отбору группы по адресу группы, а вторую для проверки члена группы на активность/неактивность. IMHO, это должно быть как-то так:

/etc/postfix/ldap/ad_virtual_group_maps.cf:
...
query_filter = (&(objectClass=group)(|(mail=%s)(otherMailbox=%s)(proxyAddresses=%s)))

result_attribute = member
...

/etc/postfix/ldap/ad_virtual_user_maps.cf:
...
search_base = %s
scope = base
query_filter = (&(objectClass=user)(!(|(userAccountControl=514)(userAccountControl=66050))))

result_attribute = mail,otherMailbox,proxyAddresses
...

/etc/postfix/main.cf:
...
virtual_mailbox_maps = pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group_maps.cf, ldap:/etc/postfix/ldap/ad_virtual_user_maps.cf}
...

Естественно, я это не проверял, так что на свой страх и риск.

Решил пока так.
У отключенного пол-ля просто убрал адрес почты в св-вах уч. записи. И тогда при выборе member-а из group пол-ль без эл. адреса в результат выборки не попадает.

Зы. При большом кол-ве пол-лей пройтись скриптом (bash, PS etc) с условием, если пол-ль не логинился более 90 дней, то откл. его уч. запись (установить атрибут userAccountControl=514) и удалить адрес почты (сбросить атрибут mail). Скрипт повесить в cron (bash) или Планировщик заданий (PS) на необходимую периодичность.

Решение довольно трудозатратное, но в целом, как варант. А если человек вернётся, адрес почты вручную планируете восстанавливать?

Егор
60
Решил пока так.
У отключенного пол-ля просто убрал адрес почты в св-вах уч. записи. И тогда при выборе member-а из group пол-ль без эл. адреса в результат выборки не попадает.

Зы. При большом кол-ве пол-лей пройтись скриптом (bash, PS etc) с условием, если пол-ль не логинился более 90 дней, то откл. его уч. запись (установить атрибут userAccountControl=514) и удалить адрес почты (сбросить атрибут mail). Скрипт повесить в cron (bash) или Планировщик заданий (PS) на необходимую периодичность.
Страницы: 1 ... 4 5 [6] 7 8 ... 10
Эта страница

Содержание

Новости:
Форум проекта Pro-LDAP.ru
OpenLDAP 2.4 Руководство

Содержание

Введение в службы каталогов OpenLDAPБыстрое развёртывание и начало работыОбщая картина - варианты конфигурацииСборка и установка OpenLDAPНастройка slapd

 

Конфигурационный файл slapdЗапуск slapdКонтроль доступаОграниченияИнструментыМеханизмы манипуляции даннымиНаложенияСпецификация схемы

 

БезопасностьSASLTLSРаспределённая служба каталоговРепликацияОбслуживаниеМониторингПроизводительностьУстранение неполадок
Перевод официального руководства OpenLDAP 2.4 Admin Guide
Полное содержание здесь
LDAP для учёных-ракетчиков

Содержание

О книгеКонцепции LDAPОбъекты LDAPУстановка LDAPПримерыНастройкаРепликация и отсылкиLDIF и DSMLПротоколLDAP API

 

HOWTOНеполадкиПроизводительностьИнструменты LDAPБезопасностьЗаметкиРесурсы LDAPRFC и X.500ГлоссарийОбъекты
Перевод "LDAP for Rocket Scientists"
Полное содержание здесь
Ресурсы

Книги

Руководство OpenLDAP 2.4LDAP для учёных-ракетчиков

Другие

СтатьиТермины LDAPman-страницы OpenLDAP 2.4Список RFCКлиенты LDAPФайлы наборов схемы
Полезные ресурсы
Форум

 

Разделы форумаНепрочитанные сообщенияПоследние сообщения
Форум проекта
Главная

Pro-LDAP.ru

О проектеНовости проектаУчастникиСтаньте участником!Сообщите об ошибке!Об авторских правахСоглашения проекта
Присоединяйсь!