Índice das dicas
Kurumin autenticando em servidores LDAP
Por Clovis Sena em 21 de abril de 2006 às 17h45
0Partimos 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:
O que é preciso:IP do servidor = 10.0.1.122
Nome Domínio = intranet.sare.com.br
Base DN = dc=intranet.sare, dc=com, dc=br
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
/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