login
Fri 22 of Nov, 2019 (21:53 UTC)

[root@madeira.eng.br ~]#

Linux - It is now safe to turn on your computer

atualizar cache imprimir

Integrando plugin change_sqlpass ao squirrelmail e Qmail + VpopMail+Mysql

Criada por: Frederico Madeira, última modificação em: Sun 22 of May, 2011 (18:33 UTC)
O plugin change_sqlpass é a atualização mais recente do change_mysqlpass. Ele permite a troca da senha de usuários que possuam suas contas armazenadas em bancos de dados.
No caso a ser demonstrado, estamos utilizando uma instalação do Qmail integrado com Vpopmail armazenando os dados dos usuários no banco de dados Mysql.

INSTALAÇÃO

Programas que foram instalados:
Mysql-server-5.0.77-4.el5_6.6
Squirrelmail-1.4.8-5.el5.centos.10
Vpopmail-5.4.32

Plugins necessários ao Squirrelmail:
change_sqlpass 3.3-1.2
compatibility 2.0.4

Estamos assumindo que todos já estão instalados em seu sistema

REQUISITOS

Para que o plugin change_sqlpass funcione, é necessário que senha instalado os seguintes pacotes:

yum install php-pear  php-pear-DB  php-mysql
pear install DB


Sem o php-mysql, recebi o erro abaixo:

Could not make database connection 
e no debug do pear DB Error: extension not found Standard Code: -25 DBMS


CONFIGURAÇÕES

Após instalar o plugin change_sqlpass, é necessário fazer alguma configurações de forma a ajustar as querys com as tabelas utilizadas pelo Vpopmail no mysql. É necessário ajustar o padrão de criptografia utilizado pelo Vpopmail, que no caso é o md5crypt.

Entre no diretório do plugin change_sqlpass e edita o arquivo config.php e ajuste as seguintes configurações conforme modelo abaixo:

cd /usr/share/squirrelmail/plugins/change_sqlpass/
cp config.php.sample config.php
vi config.php


$csp_dsn = 'mysql://vpopmail_user:vpop_password@localhost/vpopmail';

$lookup_password_query = 'SELECT count(*) FROM vpopmail WHERE pw_name = "%2" AND pw_domain = "%3" AND pw_passwd = %4';

$password_update_queries = array(
               'UPDATE vpopmail SET pw_passwd = %4 WHERE pw_name = "%2" and pw_domain = "%3"',
                                   );

$force_change_password_check_query = '';

$password_encryption = 'MD5CRYPT';

$csp_salt_static = '';

$csp_salt_query = 'SELECT SUBSTRING(pw_passwd,4,9) FROM vpopmail WHERE pw_name = "%2" and pw_domain="%3"';


Onde:
%1 na query será substituído pelo nome de usuário completo, incluindo o domínio, ex: "jose@example.com"
%2 na consulta será substituído apenas pelo nome do usuário, sem o @ e domínio,ex: "jose"
%3 na consulta será substituído apenas pelo nome do domínio, sem o @ e domínio,ex: "example.com"

Vamos editar o arquivo functions,php e inserir o conteúdo abaixo a fim de adicionar a biblioteca que dá suporte ao md5crypt. No meu arquivo, inseri na linha 15.

include_once(SM_PATH . 'functions/display_messages.php');
include_once(SM_PATH . 'plugins/change_sqlpass/md5crypt.php'); 


Entre na pasta config do squirrelmail e ative o plugin:

./conf.pl
selecione a opção de plugins - #8
adicione o change_sqlpass plugin selecionando o número do mesmo
save e exit


Após isso seus usuários já devem ser capazes de ver a opção change password no menu de opções do squirrelmail.
Lembre que após a troca da senha, eles devem fazer o logoff e entrar novamente com a nova senha.

Comentários