Implementação de serviço de diretórios com OpenLDAP no CentOS 6.3

O objetivo deste tutorial é mostrar como instalar, configurar e administrar um serviço de diretórios com OpenLDAP.

[ Hits: 82.113 ]

Por: Maycson Fonseca em 09/01/2013 | Blog: http://br.linkedin.com/pub/maycson-fonseca/96/b54/12a


Autenticando as estações no servidor OpenLDAP



Para a autenticação, utilizarei uma estação CentOS 6.3 como cliente do meu OpenLDAP Server.

Vamos instalar os pacotes necessários no cliente (instale os mesmos repositórios instalados no servidor no cliente):

# yum install openldap openldap-clients nss-pam-ldapd

Inicie o serviço nslcd, e pare o serviço nscd:

# service nslcd start
# service nscd stop


Use o comando authconfig-tui para as principais configurações do cliente e marque as seguintes opções:

# authconfig-tui

Marque as opções:
  • Use LDAP
  • Use MD5 Passwords
  • Use Shadow Passwords
  • Use LDAP Authentication
  • Local Authorization is Sufficient

  • Selecione Next

  • Marque "Use TLS"
  • Server: ldap://192.168.255.1
  • Base DN: dc=ldap-server,dc=com

Edite o arquivo /etc/openldap/ldap.conf, como o exemplo abaixo:

# nano /etc/openldap/ldap.conf

URI ldaps://192.168.255.1
BASE dc=ldap-server,dc=com
TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT allow

Edite o final do arquivo /etc/nslcd.conf como no exemplo. Se existir a linha "ssl", nãa apague:

# nano /etc/nslcd.conf

uri ldap://192.168.255.1
base dc=ldap-server,dc=com
ssl start_tls
tls_reqcert allow
tls_cacertdir /etc/openldap/cacerts

Agora, no final do arquivo /etc/pam_ldap.conf, se existir a linha "ssl", não apague e deixe como o exemplo abaixo:

# nano /etc/pam_ldap.conf

uri ldap://192.168.1.20
ssl start_tls
tls_reqcert allow
tls_cacertdir /etc/openldap/cacerts
pam_password md5

Faça uma cópia do arquivo /etc/pam.d/system-auth:

# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.original

Agora edite o arquivo system-auth, e deixe igual ao exemplo abaixo:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.

auth       required     pam_env.so
auth       sufficient   pam_unix.so  try_first_pass  likeauth  nullok
auth       sufficient   pam_ldap.so  use_first_pass
auth       required     pam_deny.so
account    sufficient   pam_ldap.so
account    required     pam_unix.so
password   required     pam_cracklib.so   difok=2    minlen=8     dcredit=2  ocredit=2  try_first_pass  retry=3
password   sufficient   pam_unix.so  try_first_pass  use_authtok  nullok  md5  shadow
password   sufficient   pam_ldap.so  use_authtok  use_first_pass
password   required     pam_deny.so
session    required     pam_limits.so
session    required     pam_unix.so
session    required     pam_mkhomedir.so   skel=/etc/skel  umask=0022
session    optional     pam_ldap.so

Adicione o seguinte conteúdo no final do arquivo /etc/pam.d/sshd:

session    required    pam_mkhomedir.so  skel=/etc/skel  umask=0022

Confirme se o seguinte conteúdo está dentro do arquivo /etc/nsswitch.conf:

passwd: files ldap
shadow: files ldap
group: files ldap
netgroup: ldap
automount: files ldap

Confirme se a opção USELDAP está como "yes", em /etc/sysconfig/authconfig:

USELDAP=yes

Coloque os serviços para serem iniciados junto ao boot e reinicie a máquina:

# chkconfig nslcd on
# chkconfig nscd on
# shutdown -r now


Agora, logue na estação cliente com seu usuário e senha do LDAP.

Pronto, seu serviço de diretórios com OpenLDAP está funcionando perfeitamente e autenticando os clientes com TLS. Para dar permissões especiais aos usuários, instale o pacote sudo e altere conforme sua necessidade.


Obrigado.
Maycson Fonseca

Página anterior    

Páginas do artigo
   1. O que é LDAP
   2. Criando certificado SSL
   3. Comandos importantes
   4. Gerenciando com phpLDAPadmin
   5. Autenticando as estações no servidor OpenLDAP
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor de Mídia com 128 MB de RAM

Instalando MultiLIB no Slackware 14.2 com Atualizações pelo GSlapt

Migrando de Red Hat para Debian

Integrando o BIND com DHCPd

Apache2 + PHP5 + MySQL + PhpMyAdmin + Webmin de forma simples e objetiva

  
Comentários
[1] Comentário enviado por will__m em 04/11/2013 - 10:01h


Obrigado.


[2] Comentário enviado por rootss em 15/04/2014 - 20:23h

Cara primeiramente parabéns pelo artigo.

Estou com um problema aqui pra gerenciar pelo PHPldapAdmin.

Eu logo normalmente mas não exibe a árvore de diretórios, aparece assim " Esta base não pode ser criada com PLA. " .... onde deveria estar a base.

Você já passou por isso? ou tem idéia do que pode ser? Já não sei mais o que fazer hehe

Desde já agradeço.

Abs...

[3] Comentário enviado por murilo_ns em 06/05/2014 - 11:51h

como seria a autenticação se a estação fosse um Ubuntu e o servidor um CentOS?

[4] Comentário enviado por jfernandes em 05/10/2014 - 00:37h

Olá rapaz,

Antes de mais nada, parabéns pelo post, mas gostaria de pedir ajudas .

Como faço para localizar objetos específicos pelo nome, exemplo, um usuário, uma impressora, um servidor, quero localizar isso numa base LDAP.

Fico no aguardo

Abraços

[5] Comentário enviado por maycson em 06/10/2014 - 11:52h


[3] Comentário enviado por murilo_ns em 06/05/2014 - 11:51h:

como seria a autenticação se a estação fosse um Ubuntu e o servidor um CentOS?


Olá, seria a mesma coisa. No Ubuntu o que muda é apenas o nome de alguns arquivos e seus respectivos lugares.

[6] Comentário enviado por maycson em 06/10/2014 - 11:56h


[4] Comentário enviado por jfernandes em 05/10/2014 - 00:37h:

Olá rapaz,

Antes de mais nada, parabéns pelo post, mas gostaria de pedir ajudas .

Como faço para localizar objetos específicos pelo nome, exemplo, um usuário, uma impressora, um servidor, quero localizar isso numa base LDAP.

Fico no aguardo

Abraços


Olá, Obrigado

Você pode fazer assim : ldapsearch -h 127.0.0.1 -b "cn=maycson.fonseca,ou=users,dc=ldap-server,dc=com" -x
Se você separar por OUs as impressoras, os usuários e os servidores você consegue localizar bem fácil.
Era essa sua duvida ?

Abraços

[7] Comentário enviado por jfernandes em 06/10/2014 - 12:36h

Perfeito rapaz.

Muito obrigado.

Mais uma para nossas anotações.

Valeu Maycon

[8] Comentário enviado por maycson em 06/10/2014 - 22:33h


[2] Comentário enviado por rootss em 15/04/2014 - 20:23h:

Cara primeiramente parabéns pelo artigo.

Estou com um problema aqui pra gerenciar pelo PHPldapAdmin.

Eu logo normalmente mas não exibe a árvore de diretórios, aparece assim " Esta base não pode ser criada com PLA. " .... onde deveria estar a base.

Você já passou por isso? ou tem idéia do que pode ser? Já não sei mais o que fazer hehe

Desde já agradeço.

Abs...



Olá, Obrigado

use esse comando a sua base não foi adicionada corretamente:
ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f ldap-server.ldif -W

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts