Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - marawu

Страницы: [1] 2 3 ... 6
1
Работа с LDAP-клиентами / Настройка pGina
« : 08 Октябрь 2018, 17:38:03 »
Доброго времени суток, подскажите пожалуйста, пытаюсь подружить pGina и FreeIPA. Настраиваю авторизацию, указываю просто данные для аутентификации, всё отлично. Указываю авторизацию где настраиваю правила для групп и получаю ошибку. В логах DS389 вижу вот что:



[08/Oct/2018:14:32:23.479054754 +0000] conn=3427886 fd=309 slot=309 connection from xx.xx.xx.xx to xx.xx.xx.xx
[08/Oct/2018:14:32:23.479550438 +0000] conn=3427886 op=0 BIND dn="uid=user.name,cn=users,cn=accounts,dc=example,dc=com" method=128 version=3
[08/Oct/2018:14:32:23.480962113 +0000] conn=3427886 op=0 RESULT err=0 tag=97 nentries=0 etime=0.0001827141 dn="uid=user.name,cn=users,cn=accounts,dc=example,dc=com"
[08/Oct/2018:14:32:23.655809023 +0000] conn=3427886 op=1 BIND dn="cn=accounts,dc=example,dc=com" method=128 version=3
[08/Oct/2018:14:32:23.655879278 +0000] conn=3427886 op=1 RESULT err=53 tag=97 nentries=0 etime=0.0000191268
[08/Oct/2018:14:32:23.686547379 +0000] conn=3427886 op=2 UNBIND
[08/Oct/2018:14:32:23.686575437 +0000] conn=3427886 op=2 fd=309 closed - U1


Почитал в ошибках LDAP по номеру ошибки, но не могу понять, в чём может быть проблема

2
Общий раздел / Re: Разделение прав доступа
« : 19 Февраль 2018, 21:37:25 »

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


Я немного использовал FreeIPA, не знаю зачем там создавать локальных пользователей, там ведь обычный 389 DS + Kerberos. Я думаю нужно его подключить как просто LDAP-сервер и просто добавить галочки про Kerberos во вкладке безопасность.


У FreeIPA есть кстати ман по настройке Kerberos на macOS - https://www.freeipa.org/page/HowTo/Setup_FreeIPA_Services_for_Mac_OS_X_10.12


3
Общий раздел / Re: Разделение прав доступа
« : 19 Февраль 2018, 21:33:12 »
Уже дошел до того,что samba 4  AD установил. Да,там видно где это делать, но проблема в том,что на win-машинах это работает без проблем, но маки игнорируют записи о том,что конкректному юзеру можно логиниться только на конкретных машинах а не на всех - в итоге на машинах с мас os может войти любой юзер,несмотря на ограничения,  которые заданы.

Вот тут наверно посложнее будет, в Directory Utility нет фильтра к сожалению. Вы можете попробовать например фильтровать по юзернейму или id как написано тут: https://discussions.apple.com/thread/5024630. По хорошему конечно хотелось бы это делать по членству в группе, но я пока не знаю как.

Почитаю - отпишусь

4
Общий раздел / Re: Разделение прав доступа
« : 19 Февраль 2018, 21:23:39 »
Добрый день, если проблема актуальна ещё, могу попробовать вам помочь.

Я у себя настраивал аутетификацию на macOS с помощью openLDAP.

На самом деле всё оказалось не так страшно.

Основную информацию черпал отсюда http://pig.made-it.com/ldap-mac.html

Так же спасибо Егору, который помог мне со схемами Apple.

И так, у меня сейчас работает аутетификация на macOS на десятке машин, массово пока ещё не стали внедрять, есть свои тонкости.

Первая важная тонкость: в macOS всё работает через uuid. К примеру вот так выглядит минимальная учетная запись для работы с macOS:


dn: uid=nikita.spitckij,ou=People,dc=digital-ecosystems,dc=ru
1147 uid=nikita.spitckij,ou=People,dc=domain,dc=ru$
uidNumber: 1537$
objectClass: top$
objectClass: inetOrgPerson$
objectClass: qmailUser$
objectClass: organizationalPerson$
objectClass: person$
objectClass: posixAccount$
objectClass: shadowAccount$
objectClass: apple-user$
objectClass: ldapPublicKey$
objectClass: radiusprofile$
sn:; Спицкий$
givenName:; Никита Андреевич$
displayName:; Спицкий, Никита$
cn:; Никита Спицкий$
uid: nikita.spitckij$
ou: ou=People,dc=domain,dc=ru$
preferredLanguage: ru_RU$
homeDirectory: /home/nikita.spitckij$
mail: nikita.spitckij@domain.ru$
apple-user-homeurl: /Users/nikita.spitckij$
apple-generateduid: F8C2ED3B-07E0-4222-83F2-2A58203CF919$
radiusTunnelMediumType: 6$
radiusTunnelPrivateGroupId: 111$
radiusTunnelType: VLAN$
sshPublicKey: $
loginShell: /bin/bash$
userPassword: {SSHA}gdfgdgf==$
initials:; Н.А.$
gidNumber: 100$
mailQuotaSize: 1000000000$
Здесь не все атрибуты нужны, просто для примера взял что первое под руку попалось. И так атрибут apple-generateduid нужен обязательно, через него работает членство в группах и права, на стандартные posixGroup macOS забивает (из-за этого я долго не мог понять, почему нормально права не сохраняются). Второе хомяк: советую сделать отдельный атрибут, так как с папкой home в macOS всё не просто, это "пвевдокаталог", я пытался курочить fstab, но больше проблем. Третье, будьте аккуратны с uidNumber и giNumber, лучше их начать как в любой UNIX-системе с 60000, что бы не пересекаться с системными учетными записями и группами.

Как в кратце настроить ldap-сервер

1. Необходимо добавить схемы Apple и Samba (подразумевается, что у вас уже есть настроенный ldap)

2. Подключить на macOS ldap сервер. Если вы неиспользуйте RFC, тогда придется собрать свою схему. Хорошая новость, ее можно загрузить в ldap и потом просто забирать при новой настройке. Плохая новость, что через terminal я так и не нашел как настраивается Directory Utility, поэтому с автоматизацией всё плохо.

3. PROFIT

Выглядит всё просто, но я кучу времени убил, что бы в этом разобраться:( С группами тоже не всё тривиально.

Вообще надо бы написать подробный мануал

Вот что могу в кратце рассказать. Пишите вопросы, постараюсь максимально быстро ответить.

5
В общем реплику починить удалось, но что именно помогло сказать не могу. Делал следующее:



https://www.openldap.org/lists/openldap-technical/200905/msg00024.html


https://blog.night-shade.org.uk/2015/05/fixing-ldap-error-53-server-is-unwilling-to-perform/


Так же удалил настройки синхронизации и потом добавил по новой. Через какой-то время данные начали синхронизироваться, но те атрибуты, которые я обновил на мастере на реплику не прилетели. По хорошему надо было через slapcat восстановление сделать, но я знал какие данные нереплецировались и сделал это вручную.




6
Странное поведение. На мастере добавили учетку в группу, синхронизация прошла (синхронизировалась только эта группа). Добавили учетку в другую группу, она не отреплицировалась. То есть репликация как-то выборочно работает:(

7
Добрый день, помогите пожалуйста, не могу восстановить работу реплики.


Что произошло:


Нужно было добавить новый атрибут всем пользователям и части пользователей изменить другой атрибут.


Добавил атрибут, на реплике все данные появились.


После этого сделал replace: gidNumber примерно у 1000 пользователей и после этого реплика перестала синхронизироваться.


Пробовал перезапустить сервис, включил логирование для синхронизации, но там ничего нету. Максимум есть ошибки о том, что мастер недоступен когда я перезапускал его и более ничего.


Подскажите пожалуйста в какую сторону копать?

ЗЫ. Вот такое сообщение есть:

do_syncrep2: rid=000 LDAP_RES_INTERMEDIATE - REFRESH_DELETE


8
Кстати, в dynlist результирующим атрибутом стоит member (а не uniqueMember) -- возможно, это так и надо, но тогда откуда возьмутся memberof =)

Я вообще хочу его переделать на groupOfNames чтобы не было конфликтов, там как раз member для членства используется.

В общем, настройки сложные, без olcLogLevel: -1 и тщательного анализа трудно разобраться.

Надеюсь такого больше не повторится, но в следующий раз включу полный дебаг


Я не уверен, что работает наложение refint, по идее каждый отслеживаемый атрибут добавляется отдельным значением атрибута olcRefintAttribute. И непонятно, зачем отслеживать атрибут memberof, если он и так отслеживается наложением memberof. Тут тоже может крыться причина затыка.


Я так понял refint должен обновить членство в группах если я например сделаю modrdn (смена фамилии к примеру). Я memberOf делал по примерам, ибо своего опыта пока маловато :( , а подробную документацию найти ой как не просто.



Насколько я понимаю оверлеи удалять нельзя?

9
В общем после перезапуска сервиса наложение заработало, но вот рассинхрон придется устранить вручную, благо групп не много, около 500, напишу скрипт, который всех передобавит.


ЗЫ. Так же после перезапуска стало повлятся сообщение о ограничении вывода, хотя olcSizeLimit был -1. Передобавил ещё раз, вроде работает.


Видимо я вносил какие-то изменения и нужно было после этого перезапустить сервис, хотя я всегда считал что cn=config работает без перезапука, в следствии чего произошла такая ситуация

10
Удалил учетную запись пользователя, добавил по новой. Добавил в несколько групп, на мастере memberof не появилось, а на реплике рабоает нормально

11
Добрый день, прошу помощи.


Сегодня выяснил такой момент, что на сервере перестало работать наложение memberof, то есть раньше всё работало и в какой-то момент перестало, в какой точно сказать не могу:( Добавляю или удаляю пользователя из группы, набор атрибутов memberOf у него не меняется.


А вот на реплике всё работает как надо не смотря на то, что конфигурация у них одинаковая.


В итоге на серверах сейчас разный набор атрибутов memberOf у пользователей и я пока не знаю как это исправить и как потом вернуть к нормальному состоянию. В логах ошибок никаких я не вижу.


С каждым разом расснихрон всё больше и больше:(


На всякий случай кину конфиг оверлеев:



dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=domain,dc=ru
olcLastMod: TRUE
olcRootDN: cn=admin,dc=domain,dc=ru
olcRootPW: {SSHA}zjDsG4wlohNoFErCtD22l6jqrV5GwDiI
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbIndex: uniqueMember eq,pres
olcDbIndex: mail,mailAlternateAddress sub,eq,pres
olcDbIndex: cn,uid sub,eq,pres
olcDbIndex: entryCSN eq
olcDbIndex: entryUUID eq
olcDbMaxSize: 1073741824
olcAccess: {0}to attrs=userPassword
  by ssf=128 self write
  by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
  by ssf=128 dn="uid=wiki,ou=Users,dc=domain,dc=ru" read
  by ssf=128 dn="cn=ldap04,dc=domain,dc=ru" read
  by ssf=128 anonymous auth
  by ssf=128 * none
olcAccess: {1}to attrs=shadowLastChange
  by ssf=128 self write
  by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
  by ssf=128 * read
olcAccess: {2}to *
  by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
  by ssf=128 * read
olcLimits: {0}dn.exact="cn=ldap04,dc=domain,dc=ru" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited


dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf


dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner


dn: olcOverlay={2}autogroup,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAutomaticGroups
olcOverlay: {2}autogroup
olcAGattrSet: {0}groupOfURLs memberURL member


dn: olcOverlay={3}dynlist,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcDynamicList
olcOverlay: {3}dynlist
olcDlAttrSet: {0}groupOfUniqueNames labeledURI member


dn: olcOverlay={4}unique,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcUniqueConfig
olcOverlay: {4}unique
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?uid?sub
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?mail?sub
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?uidNumber?sub
olcUniqueURI: ldap:///ou=Users,dc=domain,dc=ru?uid?sub
olcUniqueURI: ldap:///ou=Users,dc=domain,dc=ru?uidNumber?sub


dn: olcOverlay={5}syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {5}syncprov
olcSpCheckpoint: 500 15


dn: olcOverlay={6}accesslog,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAccessLogConfig
olcOverlay: {6}accesslog
olcAccessLogDB: cn=accesslog
olcAccessLogOps: writes
olcAccessLogPurge: 7+00:00 1+00:00
olcAccessLogSuccess: TRUE


Грешил на dn: olcOverlay={3}dynlist,olcDatabase={1}mdb,cn=config, удалил olcDlAttrSet, но это не помогло, да и на реплике это не мешает.


Очень прошу помощи

12
По статической группе есть забавная уязвимость. Поскольку проверяется только username (uid=%u), то не учитывается домен, то есть можно взять такое же имя, но отправить с другого домена и проверка будет пройдена:(

13
Самое смешно, что я в dovecot делал тоже самое, чтобы пользователь логинился под собой


auth_bind_userdn = uid=%n,ou=People,dc=domain,dc=ru


И я подумывал, а почему бы так же и в postfix не сделать:) Но не успел вчера это проверить

14
Егор, извините, но не могу понять, как мне сделать карту для статической группы all_senders. Сделал такую группу:



dn: cn=all_senders,ou=Groups,dc=domain,dc=ru$
cn: all_senders$
description: Senders for mailing to all@domain.ru$
objectClass: top$
objectClass: groupOfUniqueNames$
objectClass: extensibleObject$
postalCode: OK$
uniqueMember: uid=nikita.spitckij,ou=People,dc=domain,dc=ru


Пытаюсь написать карту для postfix, но не могу понять, как правильно это сделать. Вот такую накидал:



server_host = ldap03.domain.ru
tls_ca_cert_file = /etc/postfix/ssl/gd_bundle-g2-g1.crt
start_tls = yes
debuglevel = 0
version = 3
search_base = cn=all_senders,ou=Groups,dc=domain,dc=ru
scope = base
bind_dn = uid=postfix,ou=Users,dc=domain,dc=ru
bind_pw =
query_filter = (&(mail=%s)(objectClass=groupOfUniqueNames))
special_result_attribute = uniqueMember
leaf_result_attribute = mail
result_attribute = postalCode


Понимаю, что она неправильная, но не могу сообразить какая логика должна быть у карты, чтобы делать проверку на членство в группе :(

15
Что-то мы не можем найти общий язык.

Задача. Есть список рассылки (dynlist), в которых входят все сотрудники компании. Список рассылки имеет адрес all@domain.ru. Но нужно разрешить отправку на этот адрес только определенному кругу лиц. Вот это основная задача.

Страницы: [1] 2 3 ... 6