Diferenças entre edições de "MariaDB + LDAP"

Fonte: TecPorto
Saltar para a navegação Saltar para a pesquisa
Linha 52: Linha 52:
 
Neste caso é necessário recorrer ao código fonte do PHP da mesma versão que o pacote.
 
Neste caso é necessário recorrer ao código fonte do PHP da mesma versão que o pacote.
  
TODO
+
TODO: obtenção do pacote, descompactação, navegação para a pasta correcta
  
 
Caso se esteja realmente a usar MariaDB, para compilar é preciso editar o Makefile gerado, '''apenas se não se tiver usado as opções do ./configure para gerir os caminhos de include'''! Os dois últimos caminhos
 
Caso se esteja realmente a usar MariaDB, para compilar é preciso editar o Makefile gerado, '''apenas se não se tiver usado as opções do ./configure para gerir os caminhos de include'''! Os dois últimos caminhos
Linha 61: Linha 61:
  
 
   -I/usr/include/mariadb/server -I/usr/include/mariadb/server/private
 
   -I/usr/include/mariadb/server -I/usr/include/mariadb/server/private
 +
 +
TODO: processo de compilação
 +
 +
Depois de compilado, o módulo de MySQL pode ser copiado para a pasta correcta onde o PHP o irá procurar, tipicamente /usr/lib/php/<Data>/ em que <Data> é a data da versão em uso. Pode-se confirmar qual a pasta a utilizar fazendo ls -l /usr/lib/php
 +
 +
TODO: comando de cópia

Revisão das 21h45min de 12 de outubro de 2021

Introdução

O suporte de LDAP para autenticação dos utilizadores de MariaDB (e MySQL) é sempre feito via PAM. O MariaDB (e o MySQL) não se liga directamente a um servidor de LDAP. Esse processo é sempre feito através do sistema PAM (Pluggable Authentication Modules), existente em praticamente todos os sistemas baseados em Linux e Unix.

Os passos aqui descritos presumem a configuração correcta, funcional e testada do sistema em questão como cliente do serviço LDAP com a base de dados que se pretende usar para autenticação.

Activação

A activação do suporte de LDAP depende de alguns passos que incluem a criação de um ficheiro de configuração específico para o PAM e a activação do suporte PAM no serviço.

Para carregar o plugin de autenticação via PAM, há dois métodos alternativos para o fazer:

  • Método 1: editar o ficheiro de configuração do MariaDB e, na zona [mysqld] acrescenta-se a linha abaixo:
 plugin_load_add = auth_pam
  • Método 2: registar o carregamento do plugin directamente a partir a CLI do MariaDB, emitindo o seguinte comando:
 INSTALL SONAME 'auth_pam.so';

Usando-se este método, pode-se confirmar o sucesso com o comando:

 SHOW PLUGINS;

O ficheiro a criar para o PAM deverá ser /etc/pam.d/mysqld e o seu conteúdo será:

 auth    required pam_ldap.so audit
 account required pam_ldap.so audit

Após estes passos criados, é possível adicionar ao MariaDB utilizadores autenticáveis via PAM com o comando abaixo (presuma-se que minion é nome do utilizador a adicionar):

 CREATE USER 'minion'@'localhost' IDENTIFIED WITH pam;

De notar que este método pode ser usado também para que, substituindo pam_ldap por pam_unix, se consiga autenticação de utilizadores do sistema (os presentes em /etc/passwd) em vez dos presentes no serviço LDAP.

Problemas comuns

Problemas com o PHP (nomeadamente phpMyAdmin)

O PHP pode dar problemas de autenticação com o pacote padrão do Ubuntu. Para resolver esse problema há duas alternativas:

Alternativa 1: autenticação clear text do MySQL/MariaDB

Esta é a forma mais fácil e potencialmente menos segura de resolver o problema. Não será crítico se os acessos ao MySQL/MariaDB forem todos localhost mas, caso não seja, recomenda-se que se tome algumas medidas de segurança adicionais como, por exemplo, só utilizar este método em redes internas cuja segurança física possa ser garantida para evitar ataques físicos de eavesdropping ou man-in-the-middle, ou usar túneis para reencaminhar ao tráfego da porta 3306 (através de SSH ou de uma VPN, por exemplo).

Para aplicar este método, deve-se editar o ficheiro de configuração do servidor MariaDB ou MySQL (tipicamente /etc/mysql/mysqld.cnf ou /etc/mysql/mariadb.conf.d/50-server.cnf) e, na secção [mysqld] acrescentar a seguinte linha:

 pam_use_cleartext_plugin = ON

Alternativa 2: Recompilação do módulo de MySQL do PHP

Neste caso é necessário recorrer ao código fonte do PHP da mesma versão que o pacote.

TODO: obtenção do pacote, descompactação, navegação para a pasta correcta

Caso se esteja realmente a usar MariaDB, para compilar é preciso editar o Makefile gerado, apenas se não se tiver usado as opções do ./configure para gerir os caminhos de include! Os dois últimos caminhos

 -I/usr/include/mariadb -I/usr/include/mariadb/mysql

devem ser substituídos por

 -I/usr/include/mariadb/server -I/usr/include/mariadb/server/private

TODO: processo de compilação

Depois de compilado, o módulo de MySQL pode ser copiado para a pasta correcta onde o PHP o irá procurar, tipicamente /usr/lib/php// em que é a data da versão em uso. Pode-se confirmar qual a pasta a utilizar fazendo ls -l /usr/lib/php

TODO: comando de cópia