LDAP Linux Auth SSS: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 50: | Строка 50: | ||
==ldap auth via pam_sss== |
==ldap auth via pam_sss== |
||
+ | <PRE> |
||
+ | yum install sssd-ldap |
||
+ | yum -y install openldap-clients |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | [sssd] |
||
+ | config_file_version = 2 |
||
+ | services = nss, pam, sudo, ssh |
||
+ | domains = default |
||
+ | reconnection_retries = 100 |
||
+ | |||
+ | [nss] |
||
+ | default_shell = /bin/sh |
||
+ | |||
+ | [pam] |
||
+ | |||
+ | [domain/default] |
||
+ | ldap_tls_reqcert = never |
||
+ | id_provider = ldap |
||
+ | auth_provider = ldap |
||
+ | access_provider = ldap |
||
+ | |||
+ | ldap_uri = ldap://ldap/ |
||
+ | dns_resolver_timeout = 15 |
||
+ | |||
+ | ldap_search_base = dc=mirantis,dc=net |
||
+ | ldap_access_filter = |(|(&(accessTo=itlab)(trustModel=byhost)(trustModel=fullaccess))(&(objectClass=posixAccount)(uid=mmaxur)))(memberOf=cn=it-cloud-ops,ou=groups,o=mirantis,dc=mirantis,dc=net) |
||
+ | cache_credentials = False |
||
+ | #enumerate = false |
||
+ | enumerate = True |
||
+ | sudo_provider = ldap |
||
+ | ldap_sudo_search_base = ou=sudoers,dc=mirantis,dc=net |
||
+ | cache_credentials = True |
||
+ | ldap_tls_reqcert = never |
||
+ | min_id = 1000 |
||
+ | use_fully_qualified_names = False |
||
+ | override_shell = /usr/bin/sudosh |
||
+ | |||
+ | [autofs] |
||
+ | |||
+ | [sudo] |
||
+ | sudo_provider = ldap |
||
+ | ldap_sudo_search_base = ou=sudoers,dc=mirantis,dc=net |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | <PRE> |
||
+ | /etc/init.d/sssd start |
||
+ | |||
+ | chkconfig sssd on |
||
+ | </PRE> |
||
==sudo== |
==sudo== |
Версия 15:09, 20 июля 2016
SSSD
Изначально задача стояла - сделать авторизацию (shell) в LDAP причем
* Огромный корпоративный LDAP где куча всяких данных и в целом мне не доступно управление * Доступ должен определяться членством в группах (обратить внимание - есть более чем 1 группа, memberOf ко торой должны иметь возможность логиниться на сервер что исключает pam_ldap) * sudo для этой группы * sudosh2 для записи сессии
Пару слов про sssd:
SSSD (System Security Services Daemon) позволяет обращаться к удаленным механизмам аутентификации. Таким образом стирается граница между локальной и сетевой аутентификацией и допускается использование разных механизмов. Информацию о пользователях предоставляет база данных, называемая доменом, которая может служить источником данных для удаленной аутентификации. Допускается использование нескольких механизмов, что разрешает нескольким серверам реализовать различные пространства имен. Полученная информация будет предоставлена внешним приложениям с помощью стандартных интерфейсов PAM и NSS.
SSSD выполняется как комплект служб, независимых от вызывающих их приложений. Поэтому приложениям необязательно создавать собственные подключения к удаленным доменам и даже не требуется знать о том, какая именно служба используется в данный момент. Локальное кэширование данных идентификации и информации о группах позволяет продолжать работу в автономном режиме независимо от источника данных (LDAP, NIS, IPA, DB, Samba и т.п.) и в целом повышает производительность. SSSD допускает использование нескольких поставщиков одного типа (например, LDAP). За подробной информацией обратитесь к руководству по развертыванию Red Hat Enterprise Linux 6.
sudosh2
spec есть в комплекте, сборка особого труда не представляет.
https://github.com/squash/sudosh2
rpm -ivh sudosh2-1.0.6-1.el5.x86_64.rpm
/etc/shells
/bin/sh /bin/bash /sbin/nologin /bin/dash /usr/bin/sudosh
head -1 /etc/passwd root:x:0:0:root:/root:/usr/bin/sudosh
ldap auth via pam_sss
yum install sssd-ldap yum -y install openldap-clients
[sssd] config_file_version = 2 services = nss, pam, sudo, ssh domains = default reconnection_retries = 100 [nss] default_shell = /bin/sh [pam] [domain/default] ldap_tls_reqcert = never id_provider = ldap auth_provider = ldap access_provider = ldap ldap_uri = ldap://ldap/ dns_resolver_timeout = 15 ldap_search_base = dc=mirantis,dc=net ldap_access_filter = |(|(&(accessTo=itlab)(trustModel=byhost)(trustModel=fullaccess))(&(objectClass=posixAccount)(uid=mmaxur)))(memberOf=cn=it-cloud-ops,ou=groups,o=mirantis,dc=mirantis,dc=net) cache_credentials = False #enumerate = false enumerate = True sudo_provider = ldap ldap_sudo_search_base = ou=sudoers,dc=mirantis,dc=net cache_credentials = True ldap_tls_reqcert = never min_id = 1000 use_fully_qualified_names = False override_shell = /usr/bin/sudosh [autofs] [sudo] sudo_provider = ldap ldap_sudo_search_base = ou=sudoers,dc=mirantis,dc=net
/etc/init.d/sssd start chkconfig sssd on