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

Fonte: TecPorto
Saltar para a navegação Saltar para a pesquisa
Linha 29: Linha 29:
  
 
   CREATE USER 'minion'@'localhost' IDENTIFIED WITH pam;
 
   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 comuns =

Revisão das 21h40min 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.

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

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