id não está mostrando grupos secundários

2

Durante alguns dias, trabalhei em uma integração LDAP. Agora, depois de configurar quase tudo que eu precisava, eu criei a última parede: A necessidade de usar grupos secundários que são retirados do servidor LDAP.

Comportamento:

[root@sr-servicesLin ~]# id hmr
uid=2956(hmr) gid=10000(ldapusers) groups=10000(ldapusers)

[root@sr-servicesLin ~]# getent group repo
repo:*:25958:

[root@sr-servicesLin ~]# groups hmr
hmr : ldapusers

Conteúdo do grupo repo (é um grupo LDAP):

[root@sr-dns ~]# ldapsearch -x -H ldaps://ldap.eibind.iss -b "dc=eibind,dc=iss" "(&(objectclass=posixGroup)(cn=repo)(gidNumber=*))"
# extended LDIF
#
# LDAPv3
# base <dc=eibind,dc=iss> with scope subtree
# filter: (&(objectclass=posixGroup)(cn=repo)(gidNumber=*))
# requesting: ALL
#

# repo, Groups, eibind.iss
dn: cn=repo,ou=Groups,dc=eibind,dc=iss
objectClass: posixGroup
objectClass: top
cn: repo
memberUid: hmr
memberUid: jcontreras
memberUid: hectoriss
gidNumber: 25958

# search result
search: 2
result: 0 Success

O cenário:

OS: Centos 6.7

Pacotes:
· Ldap rodando com o ssl
· Sssd instalado
· Nss-pam-ldapd

O problema é:

Quando eu uso o comando id eu não estou recebendo os grupos secundários de cada usuário, apenas o principal (que vem do LDAP, então existe uma conexão).

Vou colar os arquivos de configuração principais, acho que coloquei tudo no lugar correto. Navegando entre sites, eu li que não é recomendado ter sssd e nsswitch configurados ao mesmo tempo, como configurar ldap e sss para "analisar" todos os dados desejados do servidor, que poderia ser uma bagunça para o servidor ou algo parecido. Apesar disso, escrevi o ldap e o sss como fontes de dados.

nsswitch.conf

#
# /etc/nsswitch.conf
#

passwd:     files ldap sss
shadow:     files ldap sss
group:      files ldap sss

#hosts:     db files nisplus nis dns
hosts:      files dns

bootparams: nisplus [NOTFOUND=return] files

ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files ldap sss

netgroup:   files ldap sss

publickey:  nisplus

automount:  files ldap sss
aliases:    files ldap nisplus

Como você pode ver, eu estou pedindo para ldap e sss (sssd) sobre o passwd, sombra e grupos. Combinado com esta configuração, eu também tenho o arquivo sssd.conf, que é o seguinte:

sssd.conf

[sssd]
config_file_version = 2
services = nss, pam, autofs
domains = default

[nss]
filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd

[pam]

[domain/default]
ldap_tls_reqcert = allow
auth_provider = ldap
ldap_schema = rfc2307bis
krb5_realm = eibind.iss
ldap_search_base = dc=eibind,dc=iss
ldap_group_member = uniqueMember
id_provider = ldap
ldap_id_use_start_tls = True
chpass_provider = ldap
ldap_uri = ldaps://ldap.eibind.iss/

#ldap_user_object_class = user
#ldap_group_object_class = group

#ldap_group_search_base = OU=Groups,DC=eibind,DC=iss
#ldap_group_search_scope = one
#ldap_group_object_class = group

ldap_chpass_uri = ldaps://ldap.eibind.iss/
krb5_kdcip = ldap.eibind.iss
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
entry_cache_timeout = 600
ldap_network_timeout = 3
krb5_server = ldap.eibind.iss
autofs_provider = ldap
[autofs]

Aqui podemos ver que estou usando ldap_schema = rfc2307bis e ldap_group_member = uniqueMember .

Eu digo isso porque descobri na rede que eu deveria alterar ldap_schema = rfc2307bis para ldap_schema = rfc2307 , mas ainda não funciona.

Além disso, há algumas linhas comentadas que eu tentei anteriormente, mas sem sucesso.

Para finalizar, vou colar o nslcd.conf . Aqui, eu apenas segui este tutorial: link , então meu arquivo de configuração é como vem mais as seguintes linhas:

# This comment prevents repeated auto-migration of settings.
uri ldap://ldap.eibind.iss/
base dc=eibind,dc=iss
uid nslcd
gid nslcd

Eu tenho que estar faltando alguma coisa, algum valor, alguma configuração estúpida. Provavelmente eu gasto cerca de 3-4 dias olhando para isso, então qualquer ajuda com ser muito grato.

Obrigado antecipadamente.

    
por ITPro Guy 26.05.2016 / 15:41

2 respostas

2

Estou confuso, seus grupos usam "memberuid: $ username", que é RFC2307, então por que dooes sua configuração especifica rfc2307bis e uniqueMember?

Eu proponho usar o rfc2307 (que é o padrão) e, se isso não funcionar, aumente a depuração e veja quais consultas são feitas em relação ao servidor LDAP.

    
por 27.05.2016 / 09:52
1

Quando você substitui o padrão:

ldap_schema = rfc2307

com

ldap_schema = rfc2307bis

Em seu arquivo sssd.conf , você precisa seguir as instruções das Perguntas frequentes sobre SSSD :

SSSD supports three LDAP schema types: RFC 2307, RFC 2307bis and IPA (the last being an extension of RFC 2307bis including memberOf backlinks).

By default, SSSD will use the more common RFC 2307 schema. The difference between RFC 2307 and RFC 2307bis is the way which group membership is stored in the LDAP server. In an RFC 2307 server, group members are stored as the multi-valued attribute memberuid which contains the name of the users that are members. In an RFC2307bis server, group members are stored as the multi-valued attribute member (or sometimes uniqueMember) which contains the DN of the user or group that is a member of this group. RFC2307bis allows nested groups to be maintained as well.

So the first thing to try when you hit this situation is to try setting ldap_schema = rfc2307bis, deleting /var/lib/sss/db/cache_DOMAINNAME.ldb and restarting SSSD. If that still doesn't work, add ldap_group_member = uniqueMember, delete the cache and restart once more. If that still doesn't work, it's time to ​file a bug.

    
por 26.05.2016 / 16:28