LDAP Linux Auth SSS: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 101: Строка 101:
   
 
chkconfig sssd on
 
chkconfig sssd on
  +
</PRE>
  +
  +
<B>/etc/openldap/ldap.conf</B>
  +
<PRE>
  +
URI ldap://ldap/
  +
BASE dc=mirantis,dc=net
  +
</PRE>
  +
  +
  +
  +
<PRE>
  +
cp -r /etc/pam.d /root
  +
authconfig --enablesssdauth --enablesssd --update
  +
</PRE>
  +
  +
Проверить: (/root/pam.d - бекап)
  +
<PRE>
  +
[root@ic3-fuel-scc ~]# diff /etc/pam.d/ /root/pam.d/
  +
diff /etc/pam.d/fingerprint-auth /root/pam.d/fingerprint-auth
  +
11d10
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
20d18
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/fingerprint-auth-ac /root/pam.d/fingerprint-auth-ac
  +
11d10
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
20d18
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/password-auth /root/pam.d/password-auth
  +
7d6
  +
< auth sufficient pam_sss.so use_first_pass
  +
13d11
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
18d15
  +
< password sufficient pam_sss.so use_authtok
  +
25d21
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/password-auth-ac /root/pam.d/password-auth-ac
  +
7d6
  +
< auth sufficient pam_sss.so use_first_pass
  +
13d11
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
18d15
  +
< password sufficient pam_sss.so use_authtok
  +
25d21
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/smartcard-auth /root/pam.d/smartcard-auth
  +
11d10
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
20d18
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/smartcard-auth-ac /root/pam.d/smartcard-auth-ac
  +
11d10
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
20d18
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/system-auth /root/pam.d/system-auth
  +
7d6
  +
< auth sufficient pam_sss.so use_first_pass
  +
13d11
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
18d15
  +
< password sufficient pam_sss.so use_authtok
  +
25d21
  +
< session optional pam_sss.so
  +
diff /etc/pam.d/system-auth-ac /root/pam.d/system-auth-ac
  +
7d6
  +
< auth sufficient pam_sss.so use_first_pass
  +
13d11
  +
< account [default=bad success=ok user_unknown=ignore] pam_sss.so
  +
18d15
  +
< password sufficient pam_sss.so use_authtok
  +
25d21
  +
< session optional pam_sss.so
 
</PRE>
 
</PRE>
   

Версия 15:34, 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

/etc/sssd/sssd.conf

[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

/etc/openldap/ldap.conf

URI ldap://ldap/
BASE dc=mirantis,dc=net


cp  -r /etc/pam.d /root
authconfig --enablesssdauth  --enablesssd --update

Проверить: (/root/pam.d - бекап)

[root@ic3-fuel-scc ~]# diff /etc/pam.d/ /root/pam.d/
diff /etc/pam.d/fingerprint-auth /root/pam.d/fingerprint-auth
11d10
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
20d18
< session     optional      pam_sss.so
diff /etc/pam.d/fingerprint-auth-ac /root/pam.d/fingerprint-auth-ac
11d10
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
20d18
< session     optional      pam_sss.so
diff /etc/pam.d/password-auth /root/pam.d/password-auth
7d6
< auth        sufficient    pam_sss.so use_first_pass
13d11
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
18d15
< password    sufficient    pam_sss.so use_authtok
25d21
< session     optional      pam_sss.so
diff /etc/pam.d/password-auth-ac /root/pam.d/password-auth-ac
7d6
< auth        sufficient    pam_sss.so use_first_pass
13d11
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
18d15
< password    sufficient    pam_sss.so use_authtok
25d21
< session     optional      pam_sss.so
diff /etc/pam.d/smartcard-auth /root/pam.d/smartcard-auth
11d10
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
20d18
< session     optional      pam_sss.so
diff /etc/pam.d/smartcard-auth-ac /root/pam.d/smartcard-auth-ac
11d10
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
20d18
< session     optional      pam_sss.so
diff /etc/pam.d/system-auth /root/pam.d/system-auth
7d6
< auth        sufficient    pam_sss.so use_first_pass
13d11
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
18d15
< password    sufficient    pam_sss.so use_authtok
25d21
< session     optional      pam_sss.so
diff /etc/pam.d/system-auth-ac /root/pam.d/system-auth-ac
7d6
< auth        sufficient    pam_sss.so use_first_pass
13d11
< account     [default=bad success=ok user_unknown=ignore] pam_sss.so
18d15
< password    sufficient    pam_sss.so use_authtok
25d21
< session     optional      pam_sss.so

sudo