Pular para o conteúdo

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.
Maycson Fonseca maycson
Hits: 94.223 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Comandos importantes

slappasswd

O comando slappasswd nos permite gerar senhas para os usuários do LDAP com uma variedade de criptografias. Este comando é muito útil em scripts, onde é preciso colocar senhas criptografadas em arquivos ".ldif" para adição de usuários em massa.

Segue algumas opções úteis (para verificar todas as opções, utilize: slappasswd help):

# slappasswd -g   # Cria uma senha randômica
# slappasswd -h hash   # Cria uma senha com o hash especificado.(Ex: {MD5})
# slappasswd -s secret   # Permite gerar o hash da senha sem perguntar a confirmação
# slappasswd -T file   # Permite pegar a senha a partir de um arquivo

Exemplo muito útil para scripts:

# slappasswd -h {MD5} -s senha

OpenLDAP - Consultando, adicionando, modificando e deletando entradas

Algumas opções em comum:
  • -h → Especifica o host no qual deseja se conectar;
  • -p → Especifica uma porta do servidor LDAP;
  • -f → Usado para ler as entradas de um arquivo;
  • -x → Usa autenticação simples no lugar de SASL;
  • -v → Retorna o diagnóstico da operação na saída padrão;
  • -ZZ → Inicia uma conexão segura, com start_tls;
  • -D → Usa a DN informada para se conectar no diretório LDAP;
  • -W → É usado para não especificar a senha na linha de comandos;
  • -w → Senha para se autenticar no servidor LDAP.

ldapsearch

Comando utilizado para consultar uma base de dados LDAP.

Algumas opções do comando:
  • -b → A partir de que ponto do diretório a pesquisa irá iniciar;
  • -L → Mostra informações restritas ao formato LDIFv1;
  • -LL → Mostra informações do LDIF sem os comentários;
  • -LLL → Mostra informações sobre o LDIF sem os comentários e sem a versão.

Vamos fazer uma consulta simples no nosso servidor:

# ldapsearch -h 127.0.0.1 -b "dc=ldap-server,dc=com" -x

ldapadd

Comando utilizado para adicionar entradas no diretório LDAP.

Vamos criar duas OUs, uma para os grupos e outra para os usuários do nosso servidor.

Crie um arquivo chamado "groups.ldif", com o seguinte conteúdo:

dn: ou=Groups,dc=ldap-server,dc=com
ou: Groups
objectClass: top
objectClass: organizationalUnit

Crie um arquivo chamado "users.ldif", com o seguinte conteúdo:

dn: ou=Users,dc=ldap-server,dc=com
ou: Users
objectClass: top
objectClass: organizationalUnit

Adicione as entradas com os seguintes comandos:

# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f groups.ldif -W
# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f users.ldif -W


Vamos criar dois grupos para nosso servidor.

Crie um arquivo chamado "grupo-a.ldif", com o seguinte conteúdo:

dn: cn=Grupo-A,ou=Groups,dc=ldap-server,dc=com
objectClass: posixGroup
objectClass: top
cn: Grupo-A
gidNumber: 500

Crie um arquivo chamado "grupo-b.ldif", com o seguinte conteúdo:

dn: cn=Grupo-B,ou=Groups,dc=ldap-server,dc=com
objectClass: posixGroup
objectClass: top
cn: Grupo-B
gidNumber: 501

Adicione as entradas com os comandos abaixo:

# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f grupo-a.ldif -W
# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f grupo-b.ldif -W


Observação: O gidNumber deve ser controlado manualmente. Cuidado para não adicionar dois grupos com mesmo GID, isso pode lhe trazer problemas com permissões nos clientes LDAP.

Use este comando para saber qual o seu gidNumber atual:

# ldapsearch -h 127.0.0.1 -b "dc=ldap-server,dc=com" -x | grep gidNumber | sort | tail -1 | awk '{print $2}'

Vamos criar dois usuários. Primeiro, crie o arquivo "user-01.ldif", com o seguinte conteúdo:

dn: cn=User-01,ou=Users,dc=ldap-server,dc=com
cn: User-01
gidNumber: 500
givenname: User-01
homedirectory: /home/user-01
loginshell: /bin/bash
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: User-01
uid: user-01
uidNumber: 1001
userpassword: {MD5}aY3BnUicTk23PiinE+qwew==

Crie o arquivo "user-02.ldif", com o seguinte conteúdo:

dn: cn=User-02,ou=Users,dc=ldap-server,dc=com
cn: User-02
gidNumber: 501
givenname: User-02
homedirectory: /home/user-02
loginshell: /bin/bash
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: User-02
uid: user-02
uidNumber: 1002
userpassword: {MD5}6VkIjGBJ8RBMhMm95VYKEw==

Observação: O uidNumber deve ser controlado manualmente. Cuidado para não adicionar dois usuários com mesmo UID, repare que a senha foi adicionada com criptografia MD5.

Use este comando para saber qual o seu uidNumber atual:

# ldapsearch -h 127.0.0.1 -b "dc=ldap-server,dc=com" -x | grep uidNumber | sort | tail -1 | awk '{print $2}'

Use esse comando para gerar o Hash da senha, neste caso usei criptografia MD5:

# slappasswd -h {MD5} -s SENHA

Adicione as entradas com os comandos abaixo:

# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f user-01.ldif -W
# ldapadd -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -f user-02.ldif -W


ldapmodify

Comando utilizado para modificar dados no diretório LDAP.

Adicionando o User-01 no Grupo-B.

Crie um arquivo com nome "addgrp.ldif", com o seguinte conteúdo:

dn: cn=Grupo-B,ou=Groups,dc=ldap-server,dc=com
changetype: modify
add: memberuid
memberuid: user-01

Comando para aplicar a modificação no servidor:

# ldapmodify -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -W -f addgrp.ldif

Modificando o grupo do User-01. Crie um arquivo com nome "modgrp.ldif", com o seguinte conteúdo:

dn: cn=User-01,ou=Users,dc=ldap-server,dc=com
changetype: modify
replace: gidNumber
gidNumber: 501

Comando para aplicar a modificação no servidor:

# ldapmodify -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -W -f modgrp.ldif

Deletando todos os usuários do Grupo-B. Crie um arquivo com nome "delgrp.ldif", com o seguinte conteúdo:

dn: cn=Grupo-B,ou=Groups,dc=ldap-server,dc=com
changetype: modify
delete: memberuid

Comando para aplicar a modificação no servidor:

# ldapmodify -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -W -f delgrp.ldif

O ldapmodify é extremamente importante para mantermos os dados sempre atualizados, podemos realizar muitas ações no nosso servidor através desta ferramenta.

ldapdelete

Comando utilizado para apagar uma ou mais entradas do diretório LDAP.

Vamos deletar o User-01, para isso use o comando abaixo:

# ldapdelete -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -W -v "cn=User-01,ou=Users,dc=ldap-server,dc=com"

Agora, vamos deletar a "OU Groups" e todo seu conteúdo. Para isso, use o comando abaixo. Repare a opção -r, que é recursivo para deletar o conteúdo de dentro da OU Groups:

# ldapdelete -h 127.0.0.1 -x -D "cn=Manager,dc=ldap-server,dc=com" -W -v -r "ou=Groups,dc=ldap-server,dc=com"

   1. O que é LDAP
   2. Criando certificado SSL
   3. Comandos importantes
   4. Gerenciando com phpLDAPadmin
   5. Autenticando as estações no servidor OpenLDAP
Nenhum artigo encontrado.

Apache2, PHP5, MySQL5 e PhpMyAdmin com certificação SSL no Debian Etch

DebConf - Perguntas ao usuário na instalação de pacote .deb

Servidor Internet (parte 1)

Instalar XGL e Beryl no Ubuntu 6.06 LTS (Gnome)

Colocando novos ícones no "Acer Desktop" (Acer Aspire One)

#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

Entre na sua conta para comentar.