Pesquisa de site

Como instalar e configurar o cliente de webmail RoundCube com usuários virtuais no Postfix - Parte 4


Nas Partes 1 a 3 desta série Postfix explicamos, passo a passo, como instalar e configurar um servidor de e-mail com usuários virtuais. Também mostramos como acessar uma dessas contas usando o Thunderbird como cliente de e-mail.

  1. Configurando Postfix Mail Server e Dovecot com MariaDB – Parte 1
  2. Configurar usuários de domínio virtual Postfix e Dovecot – Parte 2
  3. Instale e integre ClamAV e SpamAssassin ao Postfix Mail Server – Parte 3

Nesta era de conectividade, quando você provavelmente precisará acessar sua caixa de entrada de qualquer lugar (e não apenas de seu computador doméstico), softwares do lado do servidor conhecidos como clientes de webmail possibilitam a leitura e o envio de e-mails por meio de uma interface web.

Roundcube é um desses programas e, dadas as suas inúmeras funcionalidades (sobre as quais você pode ler mais no site do projeto), é o que escolhemos para usar neste tutorial.

Instale o Roundcube Webmail para Postfix

No CentOS 7 e em distribuições baseadas como RHEL e Fedora, instalar o Roundcube é tão fácil quanto fazer:

yum update && yum install roundcubemail

Nota: Tenha em mente que Roundcube está incluído no repositório EPEL, que já devemos ter habilitado conforme descrito na Parte 1.

No Debian 8 e seus derivados, como Ubuntu e Mint, você precisará habilitar os backports Jessie (web) primeiro:

echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list

Em seguida, instale o Roundcube da seguinte maneira:

aptitude update && aptitude install roundcube

Independentemente da distribuição que estamos usando, agora precisamos criar um banco de dados para armazenar a estrutura interna do Roundcube.

No Debian 8, o processo de instalação cuidará disso:

Escolha Sim quando for perguntado se deseja configurar o banco de dados Roundcube usando dbconfig-common:

Escolha mysql como tipo de banco de dados:

Forneça a senha do usuário root do MariaDB:

E escolha uma senha para o roundcube se registrar no servidor de banco de dados e clique em Ok:

Confirme a senha que você digitou na etapa anterior:

E em pouco tempo você terá um banco de dados chamado roundcube e suas tabelas correspondentes criadas automaticamente para você:

MariaDB [(none)]> USE roundcube;
MariaDB [(none)]> SHOW TABLES;

No CentOS 7, você precisará criar o banco de dados manualmente fazendo login no phpMyAdmin ou através da linha de comando. Para resumir, usaremos o segundo método proposto aqui:

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE RoundCube_db;

Em seguida, saia do prompt do MariaDB e execute o seguinte script SQL:

mysql -u root -p RoundCube_db < /usr/share/roundcubemail/SQL/mysql.initial.sql

Observe que no Debian você também pode executar essas etapas manualmente. Assim, você pode renomear seu banco de dados se desejar, em vez de nomeá-lo automaticamente como “roundcube” como visto antes.

Configurar Roundcube para Postfix

Para começar, você deve observar que a partir do RoundCube v1.0 em diante, as definições de configuração são incluídas em apenas um arquivo, ao contrário das versões anteriores, onde eram divididas entre dois arquivos.

Primeiro, localize o arquivo a seguir e faça uma cópia chamada config.inc.php no mesmo diretório. Use a opção -p para preservar o modo, a propriedade e o carimbo de data/hora original:

cp -p /etc/roundcubemail/defaults.inc.php /etc/roundcubemail/config.inc.php

Em seguida, certifique-se de que o Roundcube possa acessar o banco de dados que criamos anteriormente. Em db_dsnw, substitua usuário e senha por um nome de usuário e senha com permissões para acessar o RoundCube_db.

Por exemplo, você pode usar a mesma conta administrativa usada para fazer login no phpMyAdmin na Parte 1 ou pode apenas usar root se desejar.

$config['db_dsnw'] = 'mysql://user:password@localhost/RoundCube_db';

As configurações a seguir referem-se ao nome do host, portas, tipo de autenticação e assim por diante (elas são autoexplicativas, mas você pode encontrar mais detalhes lendo os comentários no arquivo de configuração):

$config['default_host'] = 'ssl://mail.linuxnewz.com';
$config['default_port'] = 143;
$config['smtp_server'] = 'tls://mail.linuxnewz.com';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';

Estas duas últimas configurações (product_name e useragent) referem-se ao cabeçalho na interface web e aos cabeçalhos dos e-mails enviados com as mensagens.

$config['product_name'] = 'Linuxnewz Webmail - Powered by Roundcube';
$config['useragent'] = 'Linuxnewz Webmail';

Para que o Roundcube use autenticação de usuário virtual para mensagens enviadas, precisamos ativar o plugin virtuser_query (que pode ser encontrado em /usr/share/roundcubemail/plugins):

$config['plugins'] = array('virtuser_query');
$config['virtuser_query'] = "SELECT Email FROM EmailServer_db.Users_tbl WHERE Email = '%u'";

Observe como a consulta SQL acima aponta para o banco de dados EmailServer_db que configuramos inicialmente na Parte 1, que é onde as informações sobre os usuários virtuais são armazenadas.

Finalmente, semelhante ao que fizemos na Parte 1 para poder acessar a interface web do phpMyAdmin usando um navegador web, vamos mergulhar no arquivo de configuração do Roundcube/Apache em:

vi /etc/httpd/conf.d/roundcubemail.conf # CentOS 7
nano /etc/roundcube/apache.conf # Debian 8

E coloque as seguintes linhas dentro das tags indicadas:

Debian 8:

<IfVersion >= 2.3> 
    Require ip AAA.BBB.CCC.DDD 
    Require all granted 
</IfVersion>

CentOS 7:

<IfModule mod_authz_core.c> 
    # Apache 2.4 
    Require ip AAA.BBB.CCC.DDD 
    Require all granted 
</IfModule>

Embora não seja estritamente obrigatório, é uma boa ideia alterar o alias do diretório Roundcube para se proteger de bots que visam /roundcube como uma porta conhecida para invadir seu sistema. Sinta-se à vontade para escolher um alias que atenda às suas necessidades (usaremos o webmail aqui):

Alias /webmail /usr/share/roundcubemail # CentOS 7
Alias /webmail /var/lib/roundcube # Debian 8

Salve as alterações, saia do arquivo de configuração e reinicie o Apache:

systemctl restart httpd # CentOS 7
systemctl restart apache2 # Debian 8

Agora você pode abrir um navegador da web e apontá-lo para https://mail.seudominio.com/webmail e deverá ver algo semelhante a:

Agora você pode fazer login com uma das contas que configuramos nos artigos anteriores e começar a enviar e receber e-mails usando o Roundcube de qualquer lugar!

Personalizando o Webmail Roundcube

Felizmente, a interface do Roundcube é bastante intuitiva e fácil de configurar. Neste ponto, você pode gastar de 15 a 30 minutos configurando o ambiente e se familiarizando com ele. Vá para Configurações para mais detalhes:

Observe que a imagem acima mostra os e-mails que recebemos nesta conta ([e-mail protegido]).

Você pode clicar em Escrever e começar a escrever um e-mail para um endereço de e-mail externo:

Em seguida, clique em Enviar e verifique o destino para ver se chegou corretamente:

Parabéns! Você configurou o Roundcube com sucesso para enviar e receber e-mails!

Resumo

Neste artigo explicamos como instalar e configurar o Roundcube como cliente web. Ao explorar a interface do Roundcube você verá como é fácil de usar, conforme descrito na ajuda do Webmail.

No entanto, não hesite em nos informar se tiver alguma dúvida ou preocupação – basta enviar-nos uma mensagem usando o formulário de comentários abaixo. Estamos ansiosos para ouvir de você!