Cómo instalar y configurar el cliente de correo web RoundCube con usuarios virtuales en Postfix - Parte 4


En las Partes 1 a 3 de esta serie de Postfix explicamos, paso a paso, cómo instalar y configurar un servidor de correo electrónico con usuarios virtuales. También le mostramos cómo acceder a una de esas cuentas usando Thunderbird como cliente de correo electrónico.

  1. Configuración del servidor de correo Postfix y Dovecot con MariaDB - Parte 1
  2. Configurar usuarios de dominio virtual de Postfix y Dovecot - Parte 2
  3. Instalar e integrar ClamAV y SpamAssassin en Postfix Mail Server - Parte 3

En esta era de conectividad en la que es probable que necesite acceder a su bandeja de entrada desde cualquier lugar (y no solo desde la computadora de su hogar), el software del lado del servidor conocido como clientes de correo web le permite leer y enviar correos electrónicos a través de una interfaz web.

Roundcube es uno de esos programas y, dadas sus muchas funciones (sobre las que puede leer más en el sitio web del proyecto), es el que hemos elegido utilizar en este tutorial.

Instalar Roundcube Webmail para Postfix

En CentOS 7 y distribuciones basadas como RHEL y Fedora, instalar Roundcube es tan fácil como hacer:

# yum update && yum install roundcubemail

Nota: Tenga en cuenta que Roundcube está incluido en el repositorio de EPEL, que ya debemos haber habilitado como se describe en la Parte 1.

En Debian 8 y sus derivados, como Ubuntu y Mint, primero deberá habilitar los backports de Jessie (web):

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

Luego instale Roundcube de la siguiente manera:

# aptitude update && aptitude install roundcube

Independientemente de la distribución que estemos usando, ahora necesitamos crear una base de datos para almacenar la estructura interna de Roundcube.

En Debian 8, el proceso de instalación se encargará de esto:

Elija Sí cuando se le pregunte si desea configurar la base de datos de Roundcube usando dbconfig-common:

Elija mysql como tipo de base de datos:

Proporcione la contraseña para el usuario root de MariaDB:

Y elija una contraseña para que roundcube se registre en el servidor de la base de datos, luego haga clic en Aceptar:

Confirme la contraseña que ingresó durante el paso anterior:

Y en poco tiempo, tendrá una base de datos llamada roundcube y sus tablas correspondientes creadas automáticamente para usted:

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

En CentOS 7, deberá crear la base de datos manualmente iniciando sesión en phpMyAdmin o mediante la línea de comandos. Por brevedad, usaremos el segundo método propuesto aquí:

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

Luego salga del indicador MariaDB y ejecute el siguiente script SQL:

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

Tenga en cuenta que en Debian también puede realizar estos pasos manualmente. Por lo tanto, puede cambiar el nombre de su base de datos si lo desea en lugar de llamarla automáticamente "roundcube" como se vio antes.

Configurar Roundcube para Postfix

Para comenzar, debe tener en cuenta que a partir de RoundCube v1.0 en adelante, los ajustes de configuración se incluyen en un solo archivo, a diferencia de las versiones anteriores en las que se dividían entre dos archivos.

Primero, ubique el siguiente archivo y haga una copia llamada config.inc.php en el mismo directorio. Utilice la opción -p para conservar el modo, la propiedad y la marca de tiempo original:

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

A continuación, asegúrese de que Roundcube pueda acceder a la base de datos que creamos anteriormente. En db_dsnw , reemplace usuario y contraseña con un nombre de usuario y contraseña con permisos para acceder a RoundCube_db.

Por ejemplo, puede usar la misma cuenta administrativa que utilizó para iniciar sesión en phpMyAdmin en la Parte 1, o simplemente puede usar root si lo desea.

$config['db_dsnw'] = 'mysql://user:[email protected]/RoundCube_db';

Las siguientes configuraciones se refieren al nombre de host, puertos, tipo de autenticación, etc. (se explican por sí mismas, pero puede encontrar más detalles leyendo los comentarios en el archivo de configuración):

$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 dos últimas configuraciones (product_name y useragent) se refieren al encabezado en la interfaz web y a los encabezados de correo electrónico enviados con los mensajes.

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

Para que Roundcube use la autenticación de usuario virtual para el correo saliente, necesitamos activar el complemento virtuser_query (que se puede encontrar en/usr/share/roundcubemail/plugins):

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

Observe cómo la consulta SQL anterior apunta a la base de datos EmailServer_db que configuramos inicialmente en la Parte 1, que es donde se almacena la información sobre los usuarios virtuales.

Finalmente, de manera similar a lo que hicimos en la Parte 1 para poder acceder a la interfaz web de phpMyAdmin mediante un navegador web, profundicemos en el archivo de configuración de Roundcube/Apache en:

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

Y coloque las siguientes líneas dentro de las etiquetas indicadas:

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

Aunque no es estrictamente necesario, es una buena idea cambiar el alias del directorio Roundcube para protegerse de los bots que apuntan a /roundcube como una puerta conocida para entrar en su sistema. Siéntase libre de elegir un alias que se adapte a sus necesidades (iremos con webmail aquí):

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

Guarde los cambios, salga del archivo de configuración y reinicie Apache:

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

Ahora puede abrir un navegador web y apuntarlo a https://mail.yourdomain.com/webmail y debería ver algo similar a:

¡Ahora puede iniciar sesión con una de las cuentas que configuramos en los artículos anteriores y comenzar a enviar y recibir correos electrónicos usando Roundcube desde cualquier lugar!

Personalizar el correo web de Roundcube

Afortunadamente, la interfaz de Roundcube es bastante intuitiva y fácil de configurar. En este punto, podría dedicar entre 15 y 30 minutos a configurar el entorno y familiarizarse con él. Vaya a Configuración para obtener más detalles:

Tenga en cuenta que la imagen de arriba muestra los correos electrónicos que hemos recibido en esta cuenta ([correo electrónico protegido]).

Puede hacer clic en Redactar y comenzar a escribir un correo electrónico en una dirección de correo electrónico externa:

Luego presione Enviar y verifique el destino para ver si llegó correctamente:

¡Felicidades! ¡Ha configurado correctamente Roundcube para enviar y recibir correos electrónicos!

Resumen

En este artículo hemos explicado cómo instalar y configurar Roundcube como cliente web. A medida que explora la interfaz de Roundcube, verá lo fácil que es de usar, como se describe en la ayuda de Webmail.

Sin embargo, no dude en hacernos saber si tiene alguna pregunta o inquietud, simplemente envíenos una nota utilizando el formulario de comentarios a continuación. ¡Esperamos con interés escuchar de usted!