Roundcube es una de las soluciones de código abierto más conocidas para administrar un servicio de correo electrónico confiable y personalizable a través de un servicio web.
En este tutorial se encuentra toda la información para instalar y administrar un servicio de correo web con Roundcube en CentOS 7. Como está basado en PHP, Roundcube requiere la instalación de un servidor web como NGINX o Apache y se basa en una base de datos similar a MySQL, como MariaDB.
Primero, conéctese a su servidor a través de una conexión SSH. Si aún no lo ha hecho, siguiendo nuestra guía, se recomienda conectarse de forma segura con SSH. En caso de un servidor local, vaya al siguiente paso y abra la terminal de su servidor.
Instalación de NGINX y PHP
Proceda instalando una instancia de NGINX con soporte para PHP y MySQL:
$ sudo yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick
Al final de la instalación de todos los paquetes, inicie NGINX y habilite su inicio automático en el sistema:
$ sudo systemctl start nginx$ sudo systemctl enable nginx
El uso de Roundcube requiere la variación de dos parámetros dentro del archivo de configuración de PHP presente en /etc/php.ini:
# Impostazione della nostra timezone
date.timezone = "Europe/Rome"
cgi.fix_pathinfo=0
Guarde el archivo recién modificado, inicie y habilite el servicio PHP-FPM:
$ sudo systemctl start php-fpm$ sudo systemctl enable php-fpm
Instalación de MariaDB
Para funcionar correctamente, Roundcube necesita la base de datos MariaDB, que se puede instalar con el siguiente comando:
$ sudo yum install mariadb-server
Una vez completada la instalación, inicie el servicio:
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
Proceda con la seguridad de MariaDB ejecutando un script incluido en MariaDB para aumentar la seguridad y limitar el acceso a sus bases de datos:
Inicie el script de utilidad proporcionado por MariaDb "mysql_secure_installation" y responda todas las preguntas:
$ sudo mysql_secure_installation
Primero, se le preguntará si desea habilitar el sistema de validación de contraseña. Si habilita este sistema, cuando establezca una contraseña para un usuario, se evaluará. Si la contraseña no respeta los requisitos mínimos de seguridad, se rechaza con un mensaje de error.
Luego, se le preguntará si desea cambiar la contraseña de root a una de su preferencia. Si habilita el sistema de validación de contraseña, deberá ingresar una contraseña que respete los criterios de seguridad.
Se recomienda seguir algunas de las mejores prácticas para crear una contraseña segura. Esto incluye:
El uso de mayúsculas y minúsculas
El uso de letras y números
El uso de caracteres no alfanuméricos como @ # $% ˆ &!
El uso de contraseñas distintas a las utilizadas anteriormente
Finalmente, elija si desea eliminar usuarios anónimos, probar bases de datos y si desea deshabilitar el inicio de sesión remoto con el usuario root. Para un nivel adecuado de seguridad, se recomienda confirmar todos estos cambios.
En este punto, confirme la actualización de la tabla mostrada para aplicar los nuevos criterios de seguridad.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Después de reiniciar el servicio, se puede crear una base de datos para Roundcube y un nuevo usuario (cambiando la contraseña):
$ mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'mf0c3mhx';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
Instalación de Roundcube
Para descargar la última versión de Roundcube necesitará wget. Si no está instalado en su sistema, hágalo con el siguiente comando:
$ sudo yum install wget
De lo contrario, continúe descargando y extrayendo el paquete de github:
$ wget -c https://github.com/roundcube/roundcubemail/releases/download/1.3.7/roundcubemail-1.3.7-complete.tar.gz
$ tar xzf roundcubemail-1.3.7-complete.tar.gz
Luego mueva todo al directorio NGINX:
$ sudo mv roundcubemail-1.3.7 /var/www/html/roundcubemail
$ sudo cd /var/www/html/roundcubemail/
El paquete Roundcube contiene un archivo sql que debe importarse a la base de datos recién creada con la estructura requerida:
$ mysql -u root -p roundcubemail < SQL/mysql.initial.sql
Durante el proceso de importación, se le pedirá la contraseña raíz de la base de datos ingresada durante la instalación de MariaDB.
Una vez completada la configuración de la base de datos, ìprepare el servidor virtual NGINX para el dominio mail.domain.com. Primero, asegúrese de que el propietario de la carpeta html sea NGINX:
$ sudo chown -R nginx:nginx /var/www/html/roundcubemail
Ahora cree y edite el archivo de host virtual/etc/nginx/conf.d/mail.example.com.conf de la siguiente manera:
server {
listen 80;
server_name mail.domain.com;
root /var/www/html/roundcubemail;
index index.php index.html;
#i# Logging
access_log /var/log/nginx/mail.domain.com_access_log;
error_log /var/log/nginx/mail.domain.com_error_log;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(config|temp|logs)/ {
deny all;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Antes de guardar todos los cambios, recuerde cambiar el dominio 'domain.com' a su dominio.
En caso de errores de permisos, modifique la configuración de PHP-FPM presente en /etc/php-fpm.d/www.conf cambiando estos parámetros:
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Además, asegúrese de que el propietario del directorio de "sesión" de PHP sea NGINX:
$ sudo chown -R nginx:nginx /var/lib/php/session/
En este punto, Roundcube está listo para configurarse desde la interfaz web.
Configuración de Roundcube a través de la interfaz web
Para continuar con la instalación, a través de un navegador web, vaya a:http://mail.domain.com/installer/
En esta primera fase, el instalador de Roundcube muestra un resumen de los requisitos para el correcto funcionamiento del sistema. Haga clic en el botón "SIGUIENTE" para continuar.
En esta segunda fase hay que introducir una serie de parámetros de funcionamiento. Deje todo sin cambios, excepto el nombre del producto, donde ingrese su nombre de dominio o un apodo de su elección.
Es importante cambiar los datos de acceso al servidor sql con los ingresados durante la fase de instalación. Cuando termine, haga clic en "SIGUIENTE" para continuar.
Una vez completada la segunda fase, pruebe los parámetros IMAP/SMTP de su servidor para verificar que Roundcube puede enviar/recibir correo.
Una vez terminado, elimine todos los archivos necesarios para la instalación presentes en la carpeta /var/www/html/roundcubemail/installer ejecutando el comando:
$ sudo rm -rf /var/www/html/roundcubemail/installer
Si desea modificar o cambiar los parámetros ingresados durante la fase de configuración, siempre es posible modificar el archivo en el directorio /var/www/html/roundcubemail/config/config.inc.php.
Acceder al correo web
Nuestra instancia de Roudcube está lista para usar en la URL http://mail.domain.com/ . Luego, inicie sesión con los detalles de inicio de sesión de un buzón configurado con Dovecot.