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"