Я надеялся, что некоторые гуру PAM / LDAP могут помочь мне здесь. Недавно я установил каталог LDAP на Ubuntu Server для хранения учетных записей как для моих клиентов (для использования с веб-системами), так и для персонала (который должен будет входить через SSH).
Аутентификация LDAP работает отлично. Однако я не могу получить ограничения счета работающих: сотрудники счета будут иметь идентификаторы между 2001
и 2999
и будет членом ssh-users
группы , чтобы позволить им входа на серверы.
Рассматриваемые ограничения есть /etc/ldap.conf
, и есть pam_min_uid
, pam_max_uid
и pam_groupdn
.
pam_groupdn
содержит полный DN моей ssh-users
группы. pam_min_uid
= 2000
и pam_max_uid
= 2999
.
Теперь мне удалось заставить их работать, добавив:
account [success=1 default=ignore] pam_ldap.so
выше pam_unix.so
линии в /etc/pam.d/common-account
. Тем не менее, локальные учетные записи Unix могут НЕ войти в систему: сервер SSH разрывает соединение, как только они пытаются.
Я установил pam_ldap.so
модуль sufficient
в вышеупомянутом файле, но затем недопустимые пользователи получают сообщение о том, что они не могут войти, но в любом случае они регистрируются.
Итак, как я могу установить эти ограничения учетной записи для пользователей LDAP, при этом позволяя пользователям UNIX входить в систему?
Как вы можете догадаться, я новичок в PAM, хотя мне удалось заставить работать модуль «автоматически создавать домашние каталоги» :-)
Большое спасибо, Энди
Я бы просто использовал
разрешить только определенные группы (как для локальных, так и для групп LDAP). Таким образом, вам не нужно ничего указывать в
ldap.conf
.Если вы хотите сохранить авторизацию по своему усмотрению, вам не следует фильтровать пользователей по проходу «аккаунт». Я полагаю, что вы должны сделать это на «аутентификационном» проходе. Во-вторых, как вы можете видеть, pam_unix обрабатывает как локальные, так и LDAP-аккаунты (по крайней мере, на этапе «account»), поэтому, похоже, pam_ldap вообще не нужен.
РЕДАКТИРОВАТЬ: В-третьих, если вы настаиваете на наличии материала на проход "account" (который, я считаю, могут иметь странные побочные эффекты), ваша последовательность должна заканчиваться: ..., "достаточный pam_ldap", "required pam_localuser", "required pam_unix" , Я имею в виду, если у вас есть какие-либо другие модули, переместите их перед pam_ldap - в противном случае они будут проигнорированы для учетных записей LDAP из-за условия «достаточного».
источник
Просто добавьте к @ andy-shellam вот мой
common-account
файл:источник