Versão avaliada: Debian 12
O OpenLDAP pode ser usado como serviço de diretório para gerenciar credenciais e controlar a autenticação de aplicações.
Da mesma forma quando instalamos um Active Directory ou um SAMBA4 é necessário algumas premissas iniciais estarem configuradas, são elas:
IP Fixo: 192.168.10.115/24
Hostname: hl115
Domain Name: local.domain
BaseDN: dc=local,dc=domain
Organization: o=domain
# hostnamectl set-hostname hl115.local.domain --static
# reboot
# apt install ldap-utils libldap-common slapd slapd-contrib
Aguarde terminar a instalação.
Execute o comando para configurar o OpenLDAP com a BaseDN correta.
# dpkg-reconfigure slapd
Ajuste os parametros:
Omit OpenLdap server configuration? No
DNS Domain Name: local.domain
Organizagion Name: domain
Administrator password: <SENHA>
Confirm password: <SENHA>
Do you want the database to be removed when slapd is purged?: Yes
Move old database: Yes
Reinicie o serviço.
# systemctl restart slapd.service
O comando abaixo ajuda a identificar as configurações existentes.
# slapcat
Criando arquivo ldif com as OU's iniciais.
# vi organizationalunit.ldif
dn: ou=Users,dc=local,dc=domain
objectClass: organizationalUnit
ou: Users
dn: ou=Groups,dc=local,dc=domain
objectClass: organizationalUnit
ou: Groups
Adicionando a base Ldap.
# ldapadd -x -D cn=admin,dc=local,dc=domain -W -f organizationalunit.ldif
Enter LDAP Password:
adding new entry "ou=Users,dc=local,dc=domain"
adding new entry "ou=Groups,dc=local,dc=domain"
Criando senha encriptada.
# slappasswd
New password: <SENHA>
Re-enter new password: <SENHA>
{SSHA}eEp7K6DNOrQdwLCS3RyBTy5CYpyuZfV+
Criando arquivo ldif para um usuário.
# vi ldapusers.ldif
dn: uid=nomeuser,ou=Users,dc=local,dc=domain
cn: Nome Sobrenome
givenname: Nome
homedirectory: /home/users/<uid>
loginshell: /usr/sbin/nologin <- Altere conforme a demanda
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Sobrenome
uid: nomeuser
uidnumber: 1000
gidnumber: 500
userpassword: {SSHA}BRs1ZYmoHVFD+lQCBrWDvZECMQt/oFXU <- Executar o comando slappasswd e inserir o resultado
Adicionando a base Ldap.
# ldapadd -x -D cn=admin,dc=local,dc=domain -W -f ldapusers.ldif
Enter LDAP Password:
adding new entry "uid=nomeuser,ou=Users,dc=local,dc=domain"
Criando arquivo ldif para um grupo.
# vi ldapgroups.ldif
dn: cn=GG_DPART01,ou=Groups,dc=local,dc=domain
cn: GG_DPART01
gidNumber: 500
objectClass: posixGroup
objectclass: top
memberuid: nomeuser
Adicionando a base Ldap.
# ldapadd -x -D cn=admin,dc=local,dc=domain -W -f ldapgroups.ldif
Enter LDAP Password:
adding new entry "cn=GG_DPART01,ou=Groups,dc=local,dc=domain"
Para trocar de senha primeiramente gere a nova senha com o comando slappasswd e depois atualize o script substituindo os parametros CN e userPassword.
# vi newpasswd.ldif
dn: cn=Tio Chico,ou=Users,dc=local,dc=domain
changetype: modify
replace: userPassword
userPassword: {SSHA}7LiBPpjuM5sObmYFxKKMajpFxIqaSNFI
Execute a modificação de senha.
# ldapmodify -H ldap:// -x -D "cn=admin,dc=local,dc=domain" -W -f newpasswd.ldif
Enter LDAP Password:
modifying entry "cn=Tio Chico,ou=Users,dc=local,dc=domain"
Link: 1 / 2 / 3
Firewall
# apt install ufw
# ufw allow from 192.168.1.0/24 to 192.168.1.115 port 22 proto tcp
# ufw allow from 192.168.1.0/24 to 192.168.1.115 port 389 proto tcp
# ufw allow from 192.168.1.0/24 to 192.168.1.115 port 636 proto tcp
# ufw enable
# apt install krb5-kdc-ldap krb5-admin-server schema2ldif
CREATE DATABASE IF NOT EXISTS lam;
GRANT ALL PRIVILEGES ON lam.* TO 'lam'@'localhost' IDENTIFIED BY '<SENHA>';
FLUSH PRIVILEGES;
exit