Instalar e configurar o Open LDAP

LDAP conhecido como Light Weight Directory Access Protocolé um protocolo usado para acessar contêineres de serviço X.500 dentro de uma empresa conhecida a partir de um diretório. Aqueles que estão familiarizados com a Administração do Windows Server podem pensar no LDAP como sendo de natureza muito semelhante ao Active Directory. É até um conceito amplamente utilizado de entrelaçar estações de trabalho Windows em uma empresa OpenLDAP CentOS. Por outro lado, uma estação de trabalho CentOS Linux pode compartilhar recursos e participar com a funcionalidade básica em um domínio Windows.

A implantação do LDAP no CentOS como Directory Server Agent, Directory System Agent ou DSA (esses acrônimos são todos iguais) é semelhante a instalações antigas do Novell Netware que usam a estrutura da árvore de diretórios com NDS.

Breve História do LDAP

O LDAP foi basicamente criado como uma maneira eficiente de acessar diretórios X.500 com recursos corporativos. O X.500 e o LDAP compartilham as mesmas características e são tão semelhantes que os clientes LDAP podem acessar os diretórios X.500 com alguns auxiliares. Embora o LDAP também tenha seu próprio servidor de diretório chamadoslapd. A principal diferença entre LDAP e DAP é que a versão leve é ​​projetada para operar sobre TCP.

Enquanto o DAP usa o modelo OSI completo. Com o advento da Internet, TCP / IP e proeminência Ethernet nas redes de hoje, é raro encontrar uma implantação de Directory Services usando diretórios corporativos DAP e X.500 nativos fora de modelos de computação legados específicos.

Os principais componentes usados ​​com openldap para CentOS Linux são -

openldap Bibliotecas de suporte LDAP
servidor openldap Servidor ldap
openldap-clients Utilidades do cliente LDAP
openldap-devel Bibliotecas de desenvolvimento para OpenLDAP
compay-openldap Bibliotecas compartilhadas OpenLDAP
slapd Daemon do servidor de diretório do OpenLDAP
slurpd Usado para replicação LDAP em um domínio corporativo

Note - Ao nomear sua empresa, é uma prática recomendada usar o .localTLD. Usar um .net ou .com pode causar dificuldades ao separar uma infraestrutura de domínio online e interna. Imagine o trabalho extra para uma empresa internamente usando acme.com para operações externas e internas. Portanto, pode ser aconselhável ter recursos da Internet chamados acme.com ou acme.net . Em seguida, os recursos da empresa de rede local são descritos como acme.local . Isso envolverá a configuração de registros DNS, mas pagará em simplicidade, eloqüência e segurança.

Instale o Open LDAP no CentOS

Instale openldap, openldap-servers, openldap-clients e migrationstools do YUM .

[[email protected]]# yum -y install openldap openldap-servers openldap-clients
migration tools
 Loaded plugins: fastestmirror, langpacks
 updates
 | 3.4 kB  00:00:00
 updates/7/x86_64/primary_db
 | 2.2 MB  00:00:05
 Determining fastest mirrors
 (1/2): extras/7/x86_64/primary_db
 | 121 kB  00:00:01
 (2/2): base/7/x86_64/primary_db
 | 5.6 MB  00:00:16
 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
 Resolving Dependencies
 --> Running transaction check
 ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
 ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
 --> Finished Dependency Resolution
 base/7/x86_64/group_gz
 | 155 kB  00:00:00
 
 Dependencies Resolved
 
=============================================================================== 
=============================================================================== 
Package                                Arch
Version                             Repository                        Size 
=============================================================================== 
=============================================================================== 
Installing: 
openldap-clients                    x86_64
2.4.40-13.el7                    base                                 188 k 
openldap-servers                    x86_64
2.4.40-13.el7                    base                                 2.1 M  

Transaction Summary 
=============================================================================== 
===============================================================================
Install  2 Packages

Total download size: 2.3 M 
Installed size: 5.3 M 
Downloading packages:

Installed: 
openldap-clients.x86_64 0:2.4.40-13.el7                                       
openldap-servers.x86_64 0:2.4.40-13.el7                                       
Complete! 
[[email protected]]#

Agora, vamos começar e habilitar o serviço slapd -

[[email protected]]# systemctl start slapd 
[[email protected]]# systemctl enable  slapd

Neste ponto, vamos garantir que temos nossa estrutura openldap em / etc / openldap .

[email protected]]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[[email protected]]#

Em seguida, certifique-se de que nosso serviço slapd esteja em execução.

[email protected]]# netstat -antup | grep slapd
tcp        0      0 0.0.0.0:389            0.0.0.0:*              LISTEN      1641/slapd
tcp6       0      0 :::389                 :::*                   LISTEN      1641/slapd
 
[[email protected]]#

A seguir, vamos configurar nossa instalação do Open LDAP .

Certifique-se de que nosso usuário ldap do sistema foi criado.

[[email protected]]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[[email protected]]#

Gere nossas credenciais LDAP.

[[email protected]]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[[email protected]]#

Precisamos salvar a saída do slappasswd.

Configurar o LDAP aberto

Step 1 - Configure o LDAP para o domínio e adicione o usuário administrativo.

Primeiro, queremos configurar nosso ambiente openLDAP. A seguir está um modelo para usar com o comando ldapmodify .

dn: olcDatabase={2}hdb,cn=config 
changetype: modify 
replace: olcSuffix 
olcSuffix: dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootDN 
olcRootDN: cn=ldapadm,dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootPW 
olcRootPW: <output from slap

Faça alterações em: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif com o comando ldapmodify.

[[email protected]]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif  
SASL/EXTERNAL authentication started 
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth 
SASL SSF: 0 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 

[[email protected] cn=config]#

Vamos verificar a configuração LDAP modificada.

[email protected] ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

[[email protected]]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
 # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. 
 # CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = 
entryCSN: 20170215204423.726622Z#000000#000#000000 
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z

[[email protected]]#

Como você pode ver, nossas modificações empresariais LDAP foram bem-sucedidas.

Em seguida, queremos criar um certificado SSL autoassinado para OpenLDAP. Isso protegerá a comunicação entre o servidor corporativo e os clientes.

Step 2 - Crie um certificado autoassinado para OpenLDAP.

Usaremos o openssl para criar um certificado SSL autoassinado. Vá para o próximo capítulo,Create LDAP SSL Certificate with opensslpara obter instruções sobre como proteger as comunicações com OpenLDAP. Então, quando os certificados SSL forem configurados, teremos concluído nossa configuração corporativa OpenLDAP.

Step 3 - Configure o OpenLDAP para usar comunicações seguras com certificado.

Crie um arquivo certs.ldif no vim com as seguintes informações -

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem

Em seguida, novamente, use o comando ldapmodify para mesclar as alterações na configuração do OpenLDAP.

[[email protected] rdc]# ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[[email protected]]#

Finalmente, vamos testar nossa configuração OpenLADP.

[[email protected]]# slaptest -u 
config file testing succeeded 
[[email protected]]#

Step 4 - Configurar banco de dados slapd.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

Atualiza o esquema OpenLDAP.

Adicione os esquemas LDAP cosseno e nis.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Por fim, crie o esquema corporativo e adicione-o à configuração atual do OpenLDAP.

A seguir, um domínio denominado vmnet. local com um administrador LDAP chamado ldapadm .

dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People

dn: ou = Group,dc=vmnet,dc=local 
objectClass: organizationalUnit 
ou: Group

Finalmente, importe isso para o esquema OpenLDAP atual.

[[email protected]]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
 Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"

adding new entry "cn=ldapadm ,dc=vmnet,dc=local"

adding new entry "ou=People,dc=vmnet,dc=local"

adding new entry "ou=Group,dc=vmnet,dc=local"

[[email protected]]#

Step 5 - Configure um OpenLDAP Enterprise Users.

Abra o vim ou seu editor de texto favorito e copie o seguinte formato. Isso é configurado para um usuário chamado "entacct" no domínio LDAP "vmnet.local".

dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Agora importe os arquivos acima, conforme salvos, no esquema OpenLdap.

[[email protected]]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif 
 Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local" 

[[email protected]]#

Antes que os usuários possam acessar o LDAP Enterprise, precisamos atribuir uma senha da seguinte forma -

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s especifica a senha do usuário

-x é o nome de usuário ao qual a senha atualizada é aplicada

-D é o * nome distinto "para autenticação no esquema LDAP.

Finalmente, antes de entrar na conta Enterprise, vamos verificar nossa entrada OpenLDAP .

[[email protected] rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
 # extended LDIF
 #
 # LDAPv3
 # base <dc=vmnet,dc=local> with scope subtree
 # filter: cn=entacct
 # requesting: ALL 
 # 
 # entacct, People, vmnet.local 
dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top 
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword:: e2NyeXB0fXg= 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Converter itens como / etc / passwd e / etc / groups para autenticação OpenLDAP requer o uso de ferramentas de migração. Eles estão incluídos no pacote migrationtools . Em seguida, instalado em / usr / share / migrationtools .

[[email protected] openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root  2652 Jun  9  2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root  2950 Jun  9  2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root  2946 Jun  9  2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root  3011 Jun  9  2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root  3006 Jun  9  2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root  3164 Jun  9  2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root  3146 Jun  9  2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root  5267 Jun  9  2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root  7468 Jun  9  2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root  3278 Jun  9  2014 migrate_automount.pl
-rwxr-xr-x. 1 root root  2608 Jun  9  2014 migrate_base.pl

Step 6 - Finalmente, precisamos permitir o acesso ao serviço slapd para que ele possa atender às solicitações.

firewall-cmd --permanent --add-service=ldap 
firewall-cmd --reload

Configurar acesso de cliente LDAP

A configuração do acesso do cliente LDAP requer os seguintes pacotes no cliente: openldap, open-ldap clients e nss_ldap.

Configurar a autenticação LDAP para sistemas cliente é um pouco mais fácil.

Step 1 - Instale pacotes dependentes -

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

Step 2- Configure a autenticação LDAP com authconfig .

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - Reinicie o serviço nslcd.

systemctl restart  nslcd