LDAP:
Definição de Ldap: significa protocolo leve de acesso a
diretórios, basicamente é um protocolo que permite acesso a um
catálogo de diretórios/informações
Atributos = são informações de um objeto
Exemplos: Common name, given name…
Objetos = são conjuntos de atributos
Exemplos: Person, coutry…
Schemas = são plugins para adição de atributos e objetos
Port = 389
# PACOTES NECESSÁRIOS PARA A INSTALAÇÃO DO SERVIDOR
LDAP
apt install slapd ldap-utils
# CONFIGURAÇÃO PADRÃO DO SERVIDOR LDAP NO ROCKY LINUX
# Copiar o conf do banco de dados e mudar o dono:
cp /usr/share/openldap-servers/DB_CONFIG.example
/var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
# Criando a senha de Root do LDAP:
slappasswd
# Arquivo [Link]:
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: hash da senha gerada anteriormente
# Adicionando a conta rootdn:
ldapadd -Y EXTERNAL -H ldapi:/// -f [Link]
# Adicionando os schemas:
ldapadd -Y EXTERNAL -H ldapi:/// -f
/etc/openldap/schema/[Link]
ldapadd -Y EXTERNAL -H ldapi:/// -f
/etc/openldap/schema/[Link]
ldapadd -Y EXTERNAL -H ldapi:/// -f
/etc/openldap/schema/[Link]
# Arquivo [Link]:
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by
[Link]="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=au
th"
read by [Link]="cn=Manager,dc=ryantotola,dc=local" read by
* none
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ryantotola,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=ryantotola,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}O6LVGt152d5YB6fbEht1na9zXMi5/BDo
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=ryantotola,dc=local" write by anonymous
auth by self write by * none
olcAccess: {1}to [Link]="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=ryantotola,dc=local"
write by * read
# Alterando o domínio:
ldapmodify -Y EXTERNAL -H ldapi:/// -f [Link]
# NO DEBIAN, AQUELA PARTE JÁ VEM TUDO OK, NESSE CASSO
PARTIMOS PARA CRIAR A ESTRUTURA DE ACORDO COM SUA
EMPRESA E OBJETIVO.
# Ver estrutura do LDAP
slapcat
# Modelo de entrada para o dominio:
dn: dc=ryantotola, dc=local
dc: ryantotola
objectClass: top
objectClass: domain
# Modelo de entrada para o administrador do ldap:
dn: cn=admryan, dc=ryantotola, dc=local
objectClass: organizationalRole
cn: admryan
description: LDAP MANAGER
# Modelo de entrada para o país:
dn: c=BR, dc=ryantotola, dc=local
objectClass: country
c: BR
# Modelo de entrada para a organização:
dn: o=matriz-SP, c=BR, dn=ryantotola, dn=local
objectClass: organization
o: matriz-SP
# Modelo de entrada para a organização:
dn: o=filial-SP, c=BR, dn=ryantotola, dn=local
objectClass: organization
o: filial-SP
# Modelo de entrada para usuários:
dn: uid=ryantauer,ou=users,dc=ryantotola,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: Ryan
sn: Totola
userPassword: {SSHA}SRm5bB3dneELsd6wdOfEItxrcQkbvmhM
loginShell: /bin/bash
homeDirectory: /home/ryantauer
uidNumber: 4000
gidNumber: 4000
# Modelo de entrada para ous:
dn: ou=users,dc=ryantotola,dc=local
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=ryantotola,dc=local
objectClass: organizationalUnit
ou: groups
# Modelo de entrada para grupos:
dn: cn=ryans,ou=groups,dc=ryantotola,dc=local
objectClass: posixGroup
cn: ryans
gidNumber: 4000
memberUid: ryantauer
# Adicionando usuário e grupo:
ldapadd -x -D cn=admin,dc=ryantotola,dc=local -W -f user-
[Link]
ldapadd -x -D cn=admin,dc=ryantotola,dc=local -W -f group-
[Link]
# Modificando usuário e grupo:
ldapmodify -x -D "cn=admin,dc=ryantotola,dc=local" -W -f
[Link]
# Exemplo de modificação do uidNumber e depois do gidNumber:
dn: uid=ryantauer,ou=users,dc=ryantotola,dc=local
changetype: modify
replace: uidNumber
uidNumber: 3000
dn: cn=ryantauer,ou=Group,dc=ryantotola,dc=local
changetype: modify
replace: gidNumber
gidNumber: 3500
# Removendo uma entrada:
ldapdelete -x -D “cn=admin,dc=ryantotola,dc=local” -W -f
[Link]
OBS: basta digitar a dn da entrada que você quer remover
# Pesquisando no LDAP:
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local ' '(objectclass=*)'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(uidNumber=*)'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(gidNumber=*)'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(cn=*)'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(&(sAMAccountName=*))'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(&(sAMAccountName=*)(cn=*))'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(&(posixAccount=*)(cn=*))'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local' '(&(!(objectClass=computer))(cn=*))'
ldapsearch -x -H ldap://[Link] -D
"cn=admin,dc=ryantotola,dc=local" -W -LL -b
'dc=ryantotola,dc=local'
'(&(userPrincipalName=ryantotola@[Link]))'