Modifique openLDAP cn = config sem executar o slapd

2

Estou tentando configurar um cluster OpenLDAP (PoC) Multi-Master. Em algum lugar eu criei a configuração incorreta e agora o slapd não será iniciado. Sendo que o cn=config / olc config é marcado com CRC32, ele não aceitará alterações manuais.

Então, como faço alterações de configuração sem o daemon em execução?

Existe slapadd , mas preciso modificar, não adicionar ... certo? Eu sinto que posso estar perdendo algo óbvio.

Se for importante, acho que um ou ambos olcModuleLoad e olcServerID estão errados.

Running openldap-2.4.42 no Ubuntu 16.04.

Atualizar
Eu estava errado sobre as edições não serem aceitas. A configuração estava sendo rejeitada por um motivo diferente (nenhuma correspondência de serverID / URL foi encontrada), o erro de soma de verificação foi registrado, mas não impede que o daemon seja iniciado.

Consegui editar manualmente arquivos ldif em /etc/ldap/slap.d/cn=config e iniciar o servidor. (Embora eu ainda não tenha conseguido a replicação multimestre funcionando).

    
por mjb2kmn 20.07.2017 / 16:02

1 resposta

1

Eu sei que você basicamente resolveu seu problema, mas eu pensei em adicionar meus próprios passos para fazer configurações slapd off-line, se alguém mais se deparar com isso. Isto é da minha própria documentação para sistemas baseados em Debian:

Às vezes, é necessário editar manualmente um banco de dados cn=config style (se você não conseguir entrar no banco de dados usando a conta raiz, por exemplo), mas um banco de dados cn=config style nunca deve ser editado manualmente. Para corrigir problemas diretamente nos próprios arquivos, você precisa converter o banco de dados para o formato ldif, fazer as alterações e restaurar o banco de dados. Isso é feito usando as ferramentas de tapa.

Comece interrompendo o serviço slapd. Recomenda-se fazer uma cópia do diretório slapd e todo o seu conteúdo apenas no caso de algo dar errado.

$ systemctl stop slapd
$ cp -a /etc/ldap/slapd.d /var/backups/slapd.d-offline-$(date +%s)

Agora faça o backup do banco de dados slapd que você deseja alterar. As ferramentas de slap devem ser usadas para backup e restauração. O Slapcat pode ser usado para converter um banco de dados de cn=config style em um arquivo ldif. Para fazer backup do banco de dados de configuração, exporte-o para um arquivo ldif usando o slapcat.

$ slapcat -n0 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-config-$(date +%s).ldif

A opção -n especifica em qual banco de dados você deve fazer o backup. O banco de dados de configuração é sempre 0.

Para fazer backup de um banco de dados diferente, basta substituir a opção dbnum pelo número correto do banco de dados. Se você tiver apenas um banco de dados, provavelmente será "1".

$ slapcat -n1 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-acme-$(date +%s).ldif

Depois de ter feito o backup do banco de dados atual, você precisa excluir o diretório slapd sob a pasta ldap e criar um novo.

$ rm -rf /etc/ldap/slapd.d
$ mkdir /etc/ldap/slapd.d

Agora você pode fazer suas alterações no arquivo ldif que você criou com a ferramenta slapcat com um editor de texto. Tenha cuidado com qualquer edição, pois erros de digitação, sintaxe inválida e outros problemas farão com que uma nova importação do arquivo ldif falhe. Depois que todas as alterações forem concluídas, importe seu banco de dados para o novo diretório slapd.

A conversão de um backup ldif de seu banco de dados para cn=config é feita com a ferramenta slapadd. A ferramenta slapadd, como a ferramenta slapcat, requer um número de banco de dados. 0 é sempre o banco de dados de configuração.

$ slapadd -n0 -F /etc/ldap/slapd.d -l /var/backups/slapd.d-config-<timestamp>.ldif

Substitua <timestamp> pelo banco de dados que você deseja restaurar.

Para restaurar seu banco de dados em vez do banco de dados de configuração, basta substituir a opção dbnum pelo número correto do banco de dados. Se você tiver apenas um banco de dados, provavelmente será "1".

Certifique-se de alterar a propriedade e as permissões de todos os novos arquivos.

$ chown -R openldap:openldap /etc/ldap/slapd.d

Agora inicie o back slapd.

$ systemctl start slapd
    
por 25.07.2017 / 20:49

Tags