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
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.