OpenLDAP-2.6.4

Introdução ao OpenLDAP

O pacote "OpenLDAP" fornece uma implementação de fonte aberto do "Lightweight Directory Access Protocol".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "OpenLDAP"

Recomendadas

Opcionais

GnuTLS-3.8.0, Pth-2.0.7, unixODBC-2.3.11, MariaDB-10.6.12 ou PostgreSQL-15.2 ou MySQL, OpenSLP, WiredTiger e Base de Dados Berkeley-5.3.28 (para "slapd", porém descontinuado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openldap

Instalação do OpenLDAP

[Nota]

Nota

Se você precisar instalar somente os binários "ldap*" do lado cliente, páginas de manual, bibliotecas e arquivos de cabeçalho correspondentes (referidos como instalação client-only), [então] emita estes comandos, em vez dos seguintes (nenhuma suíte de teste disponível):

patch -Np1 -i ../openldap-2.6.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  \
            --enable-dynamic  \
            --enable-versioning=yes  \
            --disable-debug   \
            --disable-slapd &&

make depend &&
make

Em seguida, como o(a) usuário(a) "root":

make install

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "slapd" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 83 ldap &&
useradd  -c "Proprietário(a) do Processo de Segundo Plano OpenLDAP" \
         -d /var/lib/openldap -u 83 \
         -g ldap -s /bin/false ldap

Instale o "OpenLDAP" executando os seguintes comandos:

patch -Np1 -i ../openldap-2.6.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr        \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --libexecdir=/usr/lib \
            --disable-static      \
            --enable-versioning=yes \
            --disable-debug       \
            --with-tls=openssl    \
            --with-cyrus-sasl     \
            --without-systemd     \
            --enable-dynamic      \
            --enable-crypt        \
            --enable-spasswd      \
            --enable-slapd        \
            --enable-modules      \
            --enable-rlookups     \
            --enable-backends=mod \
            --disable-sql         \
            --disable-wt          \
            --enable-overlays=mod &&

make depend &&
make

Os testes parecem ser frágeis. Erros possivelmente causem os testes abortar antes de finalizar, aparentemente devido a problemas de temporização. Os testes duram cerca de sessenta e cinco (65) minutos e são independentes do processador. Para testar os resultados, emita: "make test".

Agora, como o(a) usuário(a) "root":

make install &&

sed -e "s/\.la/.so/" -i /etc/openldap/slapd.{conf,ldif}{,.default} &&

install -v -dm700 -o ldap -g ldap /var/lib/openldap    &&

install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d &&
chmod   -v    640     /etc/openldap/slapd.{conf,ldif}   &&
chown   -v  root:ldap /etc/openldap/slapd.{conf,ldif}   &&

install -v -dm755 /usr/share/doc/openldap-2.6.4 &&
cp      -vfr      doc/{drafts,rfc,guide} \
                  /usr/share/doc/openldap-2.6.4

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-debug: Essa chave desabilita o código de depuração no "OpenLDAP".

--enable-dynamic: Essa chave força as bibliotecas do "OpenLDAP" a serem vinculadas dinamicamente aos aplicativos executáveis.

--enable-versioning: Essa chave habilita o versionamento de símbolos nas bibliotecas do "OpenLDAP". Sem isso, alguns aplicativos podem gerar um aviso relativo a versões ausentes de símbolos.

--enable-crypt: Essa chave habilita o uso de senhas do "crypt(3)".

--enable-spasswd: Essa chave habilita a verificação de senha do "SASL".

--enable-modules: Essa chave habilita o suporte a módulo dinâmico.

--enable-rlookups: Essa chave habilita pesquisas reversas de nomes de dispositivos clientes.

--enable-backends: Essa chave habilita todas as estruturas de retaguarda disponíveis.

--enable-overlays: Essa chave habilita todas as sobreposições disponíveis.

--disable-sql: Essa chave desabilita explicitamente a estrutura "SQL" de retaguarda. Omita essa chave se um servidor "SQL" estiver instalado e você for usar uma estrutura "SQL" de retaguarda.

--disable-wt: Essa chave desabilita explicitamente a estrutura "WiredTiger" de retaguarda. Omita essa chave se o "WiredTiger" estiver instalado e você for usar uma estrutura "WiredTiger" de retaguarda.

--libexecdir=/usr/lib: Essa chave controla onde o diretório "/usr/lib/openldap" está instalado. Tudo nesse diretório é uma biblioteca, de forma que ele pertence a "/usr/lib" em vez de "/usr/libexec".

--enable-slp: Essa chave habilita o suporte a "SLPv2". Use-a se você tiver instalado o "OpenSLP".

[Nota]

Nota

Você pode executar "./configure --help" para ver se existe outra chave que você possa passar para o comando "configure" para habilitar outras opções ou pacotes de dependência.

"install ...", "chown ..." e "chmod ...": Ter arquivos de configuração do "slapd" e bases de dados "ldap" em "/var/lib/openldap" legíveis por qualquer pessoa é um PROBLEMA DE SEGURANÇA, especialmente porque um arquivo armazena a senha do(a) administrador(a) em TEXTO SIMPLES. É por isso que o modo 640 e a titularidade de propriedade "root:ldap" foi usado. O proprietário é o(a) "root", de forma que somente o(a) "root" consegue modificar o arquivo, e o grupo é o "ldap", de forma que o grupo que titulariza o processo de segundo plano "slapd" consiga ler, mas não modificar o arquivo em caso de uma brecha de segurança.

Configurando o OpenLDAP

Arquivos de Configuração

  • Para o cliente do "LDAP": "/etc/openldap/ldap.conf" e "~/.ldaprc"

  • Para o servidor do "LDAP", dois mecanismos de configuração são usados: um arquivo legado de configuração "/etc/openldap/slapd.conf" e o sistema recomendado "slapd-config", usando uma base de dados "LDIF" armazenada em "/etc/openldap/slapd.d".

Informação de Configuração

Configurar os servidores "slapd" pode ser complexo. Proteger o diretório do "LDAP", especialmente se você estiver armazenando dados não públicos, como bases de dados de senhas, também pode ser uma tarefa desafiadora. Para a finalidade de configurar o "OpenLDAP", você precisará modificar ou o arquivo "/etc/openldap/slapd.conf" (método antigo) ou o arquivo "/etc/openldap/slapd.ldif" e, em seguida, usar o "ldapadd" para criar a base de dados de configuração do "LDAP" em "/etc/openldap/slapd.d" (recomendado pela documentação do "OpenLDAP").

[Atenção]

Atenção

As instruções acima instalam uma estrutura vazia do "LDAP" e um arquivo "/etc/openldap/slapd.conf" padrão, que são adequados para testar a construção e outros pacotes que usem o "LDAP". Não os use em um servidor de produção.

Recursos para te ajudar com tópicos como escolha de configuração de diretório, definições de estrutura de retaguarda e base de dados, configurações de controle de acesso, execução como um(a) usuário(a) diferente de "root" e configuração de um ambiente "chroot" incluem:

Unidade do systemd

Para automatizar a inicialização do servidor do "LDAP" na inicialização do sistema, instale a unidade "slapd.service" inclusa no pacote "" "blfs-systemd-units-20220720" usando o seguinte comando:

make install-slapd
[Nota]

Nota

Você precisará modificar o "/etc/default/slapd" para incluir os parâmetros necessários para a tua configuração específica. Veja-se a página de manual do "slapd" para informações de parâmetros.

Testando a Configuração

Inicie o servidor do "LDAP" usando o "systemctl":

systemctl start slapd

Verifique o acesso ao servidor do "LDAP" com o seguinte comando:

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

O resultado esperado é:

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=my-domain,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Conteúdo

Aplicativos Instalados: ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapurl, ldapvc, ldapwhoami, slapacl, slapadd, slapauth, slapcat, slapd, slapdn, slapindex, slapmodify, slappasswd, slapschema e slaptest
Bibliotecas Instaladas: liblber.so, libldap.so e diversas sob "/usr/lib/openldap"
Diretórios Instalados: /etc/openldap, /{usr,var}/lib/openldap e /usr/share/doc/openldap-2.6.4

Descrições Curtas

ldapadd

abre uma conexão com um servidor do "LDAP", vincula e adiciona entradas

ldapcompare

abre uma conexão com um servidor do "LDAP", vincula e realiza uma comparação usando parâmetros especificados

ldapdelete

abre uma conexão com um servidor do "LDAP", vincula e deleta uma ou mais entradas

ldapexop

emite a operação estendida do "LDAP" especificada por "oid" ou uma das palavras-chave especiais" whoami", "cancel" ou "refresh"

ldapmodify

abre uma conexão com um servidor do "LDAP", vincula e modifica entradas

ldapmodrdn

abre uma conexão com um servidor do "LDAP", vincula e modifica o "RDN" das entradas

ldappasswd

é uma ferramenta usada para configurar a senha de um(a) usuário(a) do "LDAP"

ldapsearch

abre uma conexão com um servidor do "LDAP", vincula e realiza uma pesquisa usando parâmetros especificados

ldapurl

é um comando que permite ou compor ou decompor "URIs" do "LDAP"

ldapvc

verifica credenciais de "LDAP"

ldapwhoami

abre uma conexão com um servidor do "LDAP", vincula e exibe informações "whoami"

slapacl

é usado para verificar o comportamento do "slapd" verificando o acesso aos dados do diretório de acordo com as diretivas da lista de controle de acesso definidas na configuração dele

slapadd

é usado para adicionar entradas especificadas no "LDAP Directory Interchange Format" ("LDIF") a uma base de dados do "LDAP"

slapauth

é usado para verificar o comportamento do "slapd" no mapeamento de identidades para fins de autenticação e autorização, conforme especificado no "slapd.conf"

slapcat

é usado para gerar uma saída "LDIF" do "LDAP" baseada no conteúdo de uma base de dados do "slapd"

slapd

é o servidor autônomo do "LDAP"

slapdn

verifica uma lista de "DNs" representados por sequências de caracteres baseadas na sintaxe do esquema

slapindex

é usado para regenerar índices do "slapd" baseados no conteúdo atual de uma base de dados

slapmodify

modifica entradas em uma base de dados do "slapd"

slappasswd

é um utilitário de senha "OpenLDAP"

slapschema

é usado para verificar a conformidade do esquema do conteúdo de uma base de dados do "slapd"

slaptest

verifica a sanidade do arquivo "slapd.conf"

liblber.so

é um conjunto de rotinas de Regras Leves de Codificação Básicas. Essas rotinas são usadas pelas rotinas da biblioteca do "LDAP" para codificar e decodificar elementos do protocolo "LDAP" usando as Regras Básicas de Codificação (ligeiramente simplificadas) definidas pelo "LDAP". Elas normalmente não são usadas diretamente por um programa aplicativo do "LDAP", exceto no manuseio de controles e operações estendidas

libldap.so

suporta os aplicativos do "LDAP" e fornece funcionalidade para outros aplicativos que interajam com o "LDAP"