Alterar local onde os dados do LDAP são armazenados

1

Estou executando uma versão 2.4.40 do servidor openLDAP no CentOS 7. O LDAP será configurado usando a opção conf on-line (olc). Graças a esta pergunta , eu saiba que os arquivos de banco de dados do slapd estão em /var/lib/ldap .

Estou tentando executar um servidor openLDAP em uma caixa Linux como partição OS somente leitura e outra partição para dados persistentes. Eu serei capaz de instalar e configurar o openLDAP na partição do sistema operacional, mas perderá o acesso a ele depois de configurá-lo.

Pergunta: É possível alterar o local em que o LDAP lê / grava dados de / var / lib / ldap para algum lugar na partição de dados persistentes?

    
por hededo 26.04.2017 / 22:10

3 respostas

1

Eu costumava mover o banco de dados padrão do openldap após cada nova configuração.

As etapas que faço quando quero mover um banco de dados:

  • Pare o slapd
  • slapcat do conteúdo da ramificação cn=config em um arquivo LDIF
  • Copie o diretório /var/lib/ldap para onde você desejar
  • Verifique se o usuário openldap possui o novo diretório e todos os arquivos dentro
  • Edite o LDIF exportado anteriormente para modificar o olcDbDirectory para o novo local
  • Importe o LDIF slapadd -F /etc/ldap/slapd.d -b cn=config -l /path/to/file/file.ldif (Certifique-se de que o /etc/ldap/slapd.d esteja vazio antes de fazer isso)
  • Verifique se /etc/ldap/slapd.d e todo o seu conteúdo pertence a openldap

  • Edite a configuração necessária para permitir que o Slapd use este novo diretório de banco de dados

Por exemplo, com apparmor , edite o arquivo /etc/apparmor.d/usr.sbin.slapd e adicione as seguintes linhas

/path/to/new/db/ r,
/path/to/new/db/** rwk,
  • Iniciar slapd

Geralmente isso funciona. É também como eu faço backup da configuração de minhas instâncias do openldap.

    
por 11.05.2017 / 14:40
1

Eu leio sua pergunta em duas partes:

  1. Você deseja que o sistema operacional seja somente leitura, preservando o acesso de gravação aos dados do LDAP
  2. Como uma solução para o número 1, você propõe armazenar os dados LDAP em um local diferente de /var/lib/ldap

Embora eu suspeite que o # 2 seja possível, não tenho experiência direta suficiente com o OpenLDAP para lidar com isso diretamente. O que posso fazer é sugerir uma solução alternativa para o nº 1. É trivial montar uma paridade de disco de diferença em /var/lib/ldap , através do comando mount e através de fstab . Isso deve efetivamente atingir sua meta, independentemente de o OpenLDAP lidar com isso nativamente. Você também pode substituir a pasta /var/lib/ldap por um link simbólico para o local desejado. Novamente, isso ignora o OpenLDAP e qualquer suporte que esteja ou não incorporado a esse projeto.

Finalmente, você também deve pensar em preservar o acesso de gravação para determinadas áreas de log. As técnicas no parágrafo acima também podem funcionar para mover locais de arquivos de log.

    
por 26.04.2017 / 22:17
0

O Openldap não parece suportar a movimentação de um banco de dados, banco de dados, arquivo após sua criação. O Openldap atualmente não suporta a exclusão de arquivos DB.

É possível criar um novo arquivo DB e definir seu atributo olcDbDirectory para um caminho em outra partição.

dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /partition/db/new-db-file
olcSuffix: dc=example,dc=net

Informações encontradas na seção 6.1.1.4.5 Adicionar / excluir bancos de dados usando o OLC

    
por 02.05.2017 / 18:08