Configuração básica do openldap usando a configuração slapd.d

14

Estou tentando configurar um servidor openldap de teste, sem ter trabalhado com o openldap antes. Estou usando o pacote openldap-servers padrão em uma máquina baseada em redhat (usando Oracle Linux). Eu instalei os pacotes e iniciei o servidor.

Agora não tenho idéia de como realmente fazer o servidor fazer algo útil; Não consigo navegar até ele usando o luma ('Não existe esse objeto' ao tentar acessar a entrada de nível superior), os documentos do openldap são obtusos sobre como você realmente coloca um servidor em uma confissão de trabalho básica e todas as informações on-line é para o arquivo slapd.conf antigo, e não para o novo slapd.d e cn = config.

Como faço para que uma instalação openldap empacotada com baunilha funcione onde eu possa navegar até o dn raiz no luma?

thecoop
fonte

Respostas:

20

Eu sinto sua dor.

Tente isso (ele foi testado no Scientific Linux 6.5, portanto também deve funcionar no OL):

  • Instalar servidores OpenLDAP: yum install openldap-servers openldap-clients)
  • start slapd: service slapd start(e talvez chkconfig slapd on)
  • Crie senhas para cn=confige com o usuário administrador LDAP normal slappasswd. Observe a saída disso.
  • Crie um arquivo LDIF com o seguinte conteúdo:
dn: olcDatabase = {0} config, cn = config
changetype: modificar
add: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn: olcDatabase = {2} bdb, cn = config
changetype: modificar
add: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
substituir: olcRootDN
olcRootDN: cn = admin, dc = seu, dc = base, dc = com
-
substituir: olcSuffix
olcSuffix: dc = seu, dc = base, dc = com
  • Os valores para olcRootPWdevem ser substituídos pela saída slappaswdanotada anteriormente.
  • Naturalmente, olcSuffixe olcRootDNdeve ser adaptado ao seu novo DN base.
  • Alimente tudo isso ao servidor LDAP com o seguinte comando:

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

Depois disso, você poderá se conectar a ambos cn=confige dc=your,dc=base,dc=comvia LDAP.

Sven
fonte
7
Obrigado, isso é como um pesadelo para iniciantes. Há configuração, mas nas primeiras linhas de slap.d / * - não editar, enquanto todos howto / Introdução / guias dizer sobre "config aberta em seu editor favorito"
fghj
9

Antes de iniciar o servidor OpenLDAP, é necessário configurar algumas coisas primeiro.

Configuração básica

Você precisa configurar um usuário raiz e uma senha, além de definir seu DN base. Em slapd.conf, procure as linhas seguintes e defina-as com os valores desejados.

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

Normalmente, o seu DN base (definido como suffixno arquivo) são os componentes do seu nome de domínio, separados por vírgulas e prefixados por dc=. Então, serverfault.compode se tornar dc=serverfault,dc=com. Você rootdndeve estar com esse sufixo.

Você também precisa alterar a linha que define a senha root. Você pode configurá-lo para um valor de texto sem formatação ou usar slappasswdpara criar um hash. Você precisa colocar o valor de texto sem formatação ou o hash slappasswdem uma linha que se parece com isso:

rootpw myultrasecurepassword

Esquemas

É uma boa idéia, neste ponto, começar a pensar nos esquemas que você deseja usar. Um esquema define os atributos que um objeto pode ter, portanto, é necessário incluir os esquemas que contêm os atributos necessários. Esses esquemas estão incluídos na parte superior de slapd.conf, e os aqui são geralmente os esquemas básicos absolutos que você precisará:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

Esses caminhos são os usados ​​no Arch Linux, portanto, pode ser necessário ajustá-los para se ajustarem ao Oracle Linux.

Sobre slapd.confvsslapd.d

O OpenLDAP mudou da configuração offline (concluída em slapd.conf) para a configuração online, armazenando dados em uma cn=configárvore especial encontrada em slapd.d. A modificação dos ldifarquivos slapd.dé um processo doloroso, no entanto, é muito mais fácil editar slapd.confcomo acima, depois converter para o novo slapd.dformato.

Primeiro, remova tudo slapd.d. Em seguida, execute o seguinte comando, ajustando os caminhos para o Oracle Linux:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

Em seguida, basta definir o proprietário para o usuário LDAP e o grupo nesse diretório recursivamente, e você deve estar pronto para começar. Isso precisa ser feito toda vez que você edita slapd.conf- lembre-se de parar o servidor OpenLDAP antes de fazê-lo!

Execução inicial

Antes de poder usar o diretório, é necessário criar o DN base (e o usuário raiz). Crie um .ldifarquivo, contendo linhas semelhantes à seguinte:

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example

dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root

Agora inicie o servidor OpenLDAP. Só precisamos enviar essas informações para o diretório LDAP:

ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif

Obviamente, altere o DN raiz e o nome do arquivo ldif para corresponder ao que você possui.

Agora você deve ter um diretório LDAP funcionando e pronto para ser preenchido!


O wiki do Arch Linux é uma excelente fonte de informações sobre este tópico - consulte https://wiki.archlinux.org/index.php/OpenLDAP e https://wiki.archlinux.org/index.php/LDAP_Authentication, se desejar saber mais.

Xenopático
fonte
A maior parte disso já foi feita pelo gerenciador de pacotes e o gerenciamento contínuo da configuração via slapd.confe slaptestenquanto o servidor está parado supera o objetivo da configuração online.
Sven
2
Para uma configuração inicial, slapd.conffunciona muito bem e é certamente mais intuitivo do que editar slapd.ddiretamente. Eu não sei quanto do diretório é feito pelo gerenciador de pacotes no Oracle Linux, mas se o OP não pôde acessar o DN base, então ele não pode ter sido o suficiente
Xenopathic
1
A resposta aceite tem a informação que eu precisava, mas as informações sobre a criação dos objetos iniciais foi útil também
thecoop