Arquivos históricos do BR-Linux.org apresenta:

Novo artigo: Autenticação com o PAM-LDAP

O Luciano Linhares Martins mandou um tutorial inédito sobre a configuração de estações Linux com autenticação em um servidor LDAP. O tutorial é bastante completo, e você pode vê-lo clicando em DETALHES.

Autenticação LDAP

Luciano Linhares Martins - lmartins@matrix.com.br

Considerações Iniciais
----------------------

Esse artigo tem como objetivo auxiliar a configuração de estações Linux com autenticação em
um servidor LDAP.

Ele pressupõe que você ja tenha um servidor LDAP configurado e o conhecimento básico do
seu funcionando.

Você pode encontrar informações sobre como migrar os dados do seu sistema para um
servidor LDAP nos seguintes endereços:

http://www.direct-to-linux.com/TUTORIALS/LinuxTutorialLDAP-ScriptsAndTools.html
http://www.redhat.com/mirrors/LDP/HOWTO/LDAP-HOWTO/
http://www.padl.com/OSS/MigrationTools.html
http://www.underlinux.com.br/modules.php?name=Sections&sop=viewarticle&artid=35


Instalar pam_ldap, nss_ldap e openldap-client
---------------------------------------------

-> Conectiva 8

# apt-get install pam_ldap
# apt-get install nss_ldap
# apt-get install openldap-client

-> Debian
# apt-get install libnss-ldap
# apt-get install libpam-ldap
# apt-get install ldap-utils

Caso você utilize outra distribuição, procure pelo pacote correspondente ou faça o download
no link abaixo:

http://www.padl.com/Contents/OpenSourceSoftware.html

Configuração do cliente ldap
____________________________


Editar o arquivo /etc/ldap.conf

### -> Inicio

# Host do servidor LDAP
host 192.168.100.1
# Distinguished Name base que vai ser utilizado para as pesquisas
BASE dc=dominio, dc=com, dc=br
# DN que vai ser utilizado para fazer a consulta ( Padrao e' anonimo)
binddn cn=manager,dc=dominio,dc=com,dc=br
# Senha do DN utilizado para fazer a consulta
bindpw suasenha
# Senhas utilizando MD5
pam_password md5

### -> Fim

Pode-se adicionar outros parametros para aprimorar a sua configuração:

# Define um filtro para as pesquisas
pam_filter objectclass=account

# Força os usuários a utilizar um determinado grupo.
pam_groupdn cn=PAM,ou=Groups,dc=dominio,dc=com,dc=br

# Habilita o ssl
ssl yes

Configuracao do NSS
-------------------

Após isso, editar o arquivo /etc/nsswitch.conf e deixar as seguintes linhas dessa forma:

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

Com isso o sistema irá procurar os usuários, senhas e grupos nos arquivos do sistema,
em seguida no ldap.

Provavelmente essas linhas na configuração padrão do seu nsswitch.conf devem
ser parecido com o resultado abaixo:

passwd: files nisplus nis
shadow: files nisplus nis
group: files nisplus nis

Configuracao do PAM
--------------------

Editar o arquivo /etc/pam.d/login

Adicionar as seguintes linhas:
auth sufficient /lib/security/pam_ldap.so use_first_pass
account sufficient /lib/security/pam_ldap.so

O meu arquivo /etc/pam.d/login ficou da seguinte forma:

#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so use_first_pass
account sufficient /lib/security/pam_ldap.so
account sufficient /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so

-> Com as configurações acima você vai logar com a senha local dos usuarios que estão
cadastrados localmente no seu sistema e vai "pegar" os outros usuarios e suas respectivas
senhas do servidor LDAP. Essa configuração é interessante caso você tenha algum problema com
o servidor LDAP e necessite logar na máquina ou ter um usuário root local.


Alterar o arquivo /etc/pam.d/su para trocar o usuário através do comando "su" com a base ldap.


#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_stack.so service=system-auth
auth sufficient /lib/security/pam_ldap.so use_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_xauth.so

Para permitir a troca das senhas ldap através do comando passwd editar o arquivo
/etc/pam.d/passwd, segundo o exemplo abaixo:

#%PAM-1.0
password sufficient /lib/security/pam_ldap.so


Testes
------

Para testar se a configuração acima funcionou corretamente digite o seguinte comando:

# getend passwd
# getend group

Observe se retorna a resposta com os usuários que estão na base LDAP.

Dicas
-----
Você pode exportar o diretório home dos seus usuários atraves do NFS.

Para isso basta adicionar a seguinte linha no arquivo /etc/exports do servidor NFS

/home 192.168.100.*(rw,anonuid=150,anongid=100)

Onde /home corresponde o diretório home que você irá exportar e 192.168.100.* os
hosts da sua rede que vão ter acesso ao servidor NFS.

Obs: Não esquecer de iniciar o servidor NFS, a inicialização desse serviço não é padrão
na maioria das distribuições.

Nas estações linux que vão "mapear" o diretório NFS, você deve incluir a seguinte
linha no arquivo /etc/fstab

192.168.100.1:/home /home nfs rw,hard,intr 0 0

Onde 192.168.100.1 e' o endereço IP do servidor NFS, o primeiro /home e' o diretório
que esta sendo exportado do servidor NFS e o segundo /home e' o diretório local que
você esta montando o diretório NFS.

Obs: Caso você tenha muitos clientes na sua base LDAP, o acesso as informações pode
ficar lento, para resolver esse problema existem duas soluções, a primeira seria criar
indexs no servidor ldap e a segunda seria instalar o nscd nos clientes para manter um
cache das consultas.

Exemplo:

Tempo para dar um ls -la no diretório /home montado de um servidor NFS

Sem o nscd:

# time `ls -la /home > /dev/null`

real 0m3.337s
user 0m0.100s
sys 0m0.030s

Com o nscd:
# time `ls -la /home > /dev/null`

real 0m0.179s
user 0m0.040s
sys 0m0.020s

Referências:

http://www.cosc.canterbury.ac.nz/~mpj17/ldap/
http://www.redhat.com/mirrors/LDP/HOWTO/LDAP-HOWTO/
http://www.padl.com/OSS/MigrationTools.html

Postado por brain em 28 de novembro de 2002, 10:07 PM

Comentários

Show de bola Luciano :) O nscd realmente ajuda nos casos de lentidão. Abraço!

Postado por: Victor Zucarino em novembro 29, 2002 10:50 AM


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.