Índice das dicas

Kurumin autenticando em servidores LDAP

Por Clovis Sena em 21 de abril de 2006 às 17h45

0

Partimos do presuposto que você já tem um servidor OpenLDAP instalado e funcionando. Se ainda não tem, procure por ajuda nas referências abaixo.

Ambiente:

No nosso ambiente de rede, estamos com a seguinte estrutura para o servidor LDAP:

IP do servidor = 10.0.1.122
Nome Domínio = intranet.sare.com.br
Base DN = dc=intranet.sare, dc=com, dc=br

O que é preciso:

Primeiro vamos atualizar o sistema: (OPCIONAL - mas é sempre bom você ter o sistema atualizado! Porém, pode ter que baixar vários arquivos, então pode ficar pra depois.)

# apt-get update
# apt-get upgrade

Agora, vamos instalar os pacotes necessários:

# apt-get install libnss-ldap ==>> NSS module for using LDAP as a naming service
# apt-get install linpam-ldap ==>> Pluggable Authentication Module allowing LDAP
# apt-get install ldap-utils ==>> OpenLDAP utilities
# apt-get install ldap-client ==>> OpenLDAP utilities
# apt-get install libldap2 ==>> OpenLDAP libraries
# apt-get install nscd ==>> GNU C Library: Name Service Cache Daemon

Nota: para saber se algum pacote está instalado, basta o comando "dpkj -l", ex: "dpkj -l ldap*".

Para alguns destes pacotes, após sua instalação, o DebConf ira fazer algumas perguntas (post install configuration), como mostra a tabela abaixo:

Responda de acordo com sua própria configuração:

Pacote
Questão
Resposta
libpam-ldap/libnss-ldap LDAP server host address 10.0.1.122
libpam-ldap/libnss-ldap distinguished name of the search base
dc=intranet.sare,dc=com,dc=br
libpam-ldap/libnss-ldap LDAP version to use 3
libpam-ldap/libnss-ldap Make local root Database admin no
libpam-ldap/libnss-ldap database requires login no
libpam-ldap/libnss-ldap make configuration readable/writeable by owner only no
libpam-ldap/libnss-ldap Local crypt to use when changing passwords. crypt

O DebConf ira preconfigurar os arquivos abaixo, com os dados do seu ambiente:

/etc/libnss-ldap.conf
/etc/nsswitch.conf
/etc/pam_ldap.conf
/etc/openldap/ldap.conf

Outros arquivos que precisamos alterar manualmente:

/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password

APENAS PARA ADICIONAR A LINHA QUE CRIA O /HOME CASO NÃO EXISTA:

/etc/pam.d/login

Arquivos de configuração:

Edite o arquivo /etc/pam.d/common-account, altere a linha:

account required pam_unix.so

Pelas seguintes linhas:

account sufficient pam_unix.so
account required pam_ldap.so use_first_pass
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0022

Edite o arquivo /etc/pam.d/common-auth, altere a linha:

auth required pam_unix.so

Pelas seguintes linhas:

auth sufficient pam_unix.so
auth required pam_ldap.so use_first_pass

Edite o arquivo /etc/pam.d/common-password, altere a linha:

password required pam_unix.so nullok obscure min=4 max=8 md5

Pelas seguintes linhas:

password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password required pam_ldap.so try_first_pass

Edite o arquivo etc/nsswitch.conf de modo que tenha as linhas como abaixo:

# as seguintes linhas fazem o papel do "+" nos arquivos /etc/passwd e /etc/group.
passwd: files ldap
group: files ldap

Esta configuração diz ao ldap para primeiro olhar no /etc/passwd e depois no servidor ldap.


Clique aqui para ver um txt com todos os arquivos de configuração.

Testando o sistema:

Este comando irá concatenar seu arquivo /etc/passwd com os usuários do ldap:

# getent passwd

( o mesmo vale para "getent group")

Para pesquisar na base do ldap, use um dos comandos abaixo, de acordo com seus próprios dados:

# ldapsearch -x
# ldapsearch -x -D cn=Manager,dc=intranet.sare,dc=com,dc=br -W
# ldapsearch -x -b 'dc=intranet.sare,dc=com,dc=br' '(objectclass=*)' -h 10.0.1.122
# ldapsearch -x -b dc=intranet.sare,dc=com,dc=br objectclass=posixaccount

Se estiver conseguindo pesquisar na base ldap, deve estar tudo ok. Pode fazer o login que deverá funcionar.

Para verificar mensagens de erro:

# tail -f /var/log/messages


Para listar arquivos sem aquelas linhas de comentários ( que começam com # ):

# cat /etc/ldap.conf | egrep -v '#|^ *$'

Referências:

1 - Autenticação LDAP
2 - Debian GNU/Linux autenticando em um servidor OpenLDAP
3 - Meta Consultancy Directory Services
4 - Forum Kurumin
5 - http://www.ldapman.org/articles/index.html
6 - OpenLDAP website
7 - Authenticating with LDAP using Openldap and PAM

Sem comentáriosPor Clovis Sena. Revisado 21 de abril de 2006 às 17h45

Comentários