Локально запретить вход для пользователей, прошедших проверку подлинности через LDAP

У меня есть сервер RedHat Linux, который используется для более чем 1000 пользователей

Имена пользователей поступают на сервер по протоколу LDAP, поэтому аутентификация входа происходит из LDAP

Мой вопрос: возможно ли заблокировать вход пользователя на локальный компьютер, а имена пользователей – из LDAP?

One Solution collect form web for “Локально запретить вход для пользователей, прошедших проверку подлинности через LDAP”

Логика аутентификации обычно обрабатывается PAM в настоящее время. Я предполагаю, что вы должны установить это в конфигурационных файлах PAM (в моем случае, в /etc/pam.d ).

Общая логика аутентификации хранится в common-auth . В вашем случае, я предполагаю, что у вас должно быть что-то вроде этого:

 auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_ldap.so use_first_pass auth requisite pam_deny.so auth required pam_permit.so 

… или, может быть, немного проще, например:

 auth sufficient pam_unix.so nullok_secure auth sufficient pam_ldap.so use_first_pass 

… в зависимости от того, является ли LDAP первым или вторым источником по сравнению со стандартной аутентификацией UNIX (учитывая, что он также задействован).

Теперь, если вы хотите отключить аутентификацию LDAP на компьютере или запретить доступ к пользователям, прошедшим проверку подлинности LDAP, все, что вам нужно сделать, это удалить этот источник из конфигурации PAM и использовать его только для проверки подлинности UNIX:

 auth [success=1 default=ignore] pam_unix.so nullok_secure auth requisite pam_deny.so auth required pam_permit.so 
  • Когда pam_unix.so удастся, пропустите 1 элемент из остальной части цепочки ( pam_deny.so ) и оцените следующий ( pam_permit.so ). Это означает, что при неудачной аутентификации UNIX пользователь получает pam_deny.so в pam_deny.so , что приводит к сбою аутентификации. Когда он преуспеет, он получает pam_permit.so и получает доступ к системе.
  • LDAP здесь не задействован, что означает, что любой пользователь, который не хранится в /etc/passwd не может получить доступ к системе.

Теперь, если вы хотите специально заблокировать пользователей LDAP …

 auth [success=die] pam_ldap.so auth sufficient pam_unix.so 
  • Когда pam_ldap.so удастся, верните код сбоя и завершите цепочку. Если это не удается, pam_unix.so достаточно для доступа к системе.
  • Это приведет к прерыванию всех аутентификаций PAM при совпадении учетных данных LDAP. Пользователи UNIX могут получить доступ к системе.

Конечно, есть много других способов настройки PAM, и некоторые из них, вероятно, лучше / эффективнее, чем те, которые я только что дал. Для получения дополнительной информации об этом просмотрите эту страницу . Однако обратите внимание на то, что: прежде чем вы начнете играть с настройкой PAM, убедитесь, что у вас есть root терминал, безопасно работающий где-то. Если вы испортите логику аутентификации, вы будете более чем счастливы снова обратиться к /etc/pam.d и вернуть свои изменения 🙂

Другая сторона примечания: в то время как PAM обрабатывает аутентификацию (и некоторые другие вещи), разрешение имен обрабатывается NSS ( Service Service Name ), конфигурация которого может быть найдена в /etc/nsswitch.conf . Если вы оставите LDAP в этом файле, система все равно будет знать об этих LDAP-пользователях, но не позволит им входить. В принципе, это позволяет системе сопоставлять UID с именами, например, когда вы указываете содержимое ( ls -l ) и получить владельцев файлов.

Вы также можете удалить этот источник имени LDAP, отредактировав конфигурацию NSS, но я бы не рекомендовал его, если ваши пользователи фактически владеют файлами, доступными на машине.

  • Открытый LDAP предназначен для работы с командой passwd для Linux?
  • пользователи не могут выполнить su для другого пользователя LDAP
  • Проблема с настройкой iptables (заблокирован трафик LDAP)
  • настройка клиента ldap только для чтения
  • как настроить ldap и trac
  • Сервер каталогов, выполняющий поиск на одном сервере ldap и авторизацию на другом сервере ldap
  • Тип токена аутентификации не поддерживается
  • Как я могу запускать автоматические процессы как аутентифицированные пользователи AD / LDAP?
  • Восстановление резервной копии Openldap
  • Что случилось с моей интеграцией AD / LDAP?
  • Используя LDAP для аутентификации, как я могу безопасно отключить / деактивировать учетную запись, не удаляя ее?
  • Linux и Unix - лучшая ОС в мире.