Я пытаюсь настроить аутентификацию через ldap для подключений OpenSSH на наших серверах FreeBSD в AWS. Фактический сервер ldap является внешним по отношению к AWS и доступен через Интернет.
У меня возникла проблема с ограничением доступа к серверам. При использовании pam_ldap и nss_ldap с клиентом OpenLDAP (версии PADL) все работает нормально с использованием соответствующего фильтра. Однако вход в систему занимал несколько минут. После некоторого чтения я переключаюсь на nslcd, и это, похоже, сильно ускорило работу, но я не могу заставить фильтры работать должным образом, чтобы ограничить доступ.
Кроме того, я заметил, что у пользователей не присутствует все свое членство в вторичных группах, поэтому я не могу решить эту проблему с помощью другого фильтра pam или функции AllowGroups в файле конфигурации sshd.
Рассматриваемый сервер ldap представляет собой огромную университетскую установку, поэтому существуют тысячи групп.
Я безуспешно пробовал фильтр, похожий на следующий.
фильтр passwd (& (objectClass = posixAccount) (memberOf = CN = customgroup, ou = User Groups, OU = groups, DC = thedomainoftheuniversity, DC = edu))
Любые предложения о том, что может быть не так с этим фильтром, или идеи о том, как отобразить все членства в группах, чтобы я мог использовать другой подход?
Обновление: я узнал, что атрибут memberOf не является частью схемы и что сервер LDAP - это eDirectory. Мне нужно найти способ фильтровать группы по пользователям. Группы действительно реализуют posixGroup и имеют заполненные атрибуты членов.
Мне по-прежнему не удается отобразить вторичные группы для пользователей, но теперь работает ограничение. Эта конфигурация ограничена двумя группами, а также фильтрацией на основе атрибутов OU в записи пользователя.
pam_authz_search (&(objectClass=posixGroup)(|(cn=wd40)(cn=dev specs))(member=$dn))
pagesize 1000
referrals off
filter passwd (&(objectClass=posixAccount)(uid=*)(|(ou=Dev Svcs & Strategic Solutions - Faculty and Staff)(ou=Campaign Planning & Services - Faculty and Staff)))
map passwd homeDirectory "/home/$uid"
map passwd loginShell "/bin/tcsh"
map passwd gidNumber "20"
filter group (&(objectClass=posixGroup)(|(gidNumber=2281499)(gidNumber=2219401))