GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo administrar Buzones con RoundCube en CentOS 7

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.


Linux
  1. Cómo administrar la contraseña de la cuenta en Linux

  2. Cómo instalar Roundcube Webmail en CentOS 8

  3. Cómo reemplazar MySQL con MariaDB en CentOS 6

  4. ¿Cómo instalar MySQL en CentOS 7.x?

  5. ¿Cómo comprobar la contraseña con Linux?

Cómo instalar la herramienta dotProject en CentOS 7

Cómo configurar MariaDB Galera Cluster con HAproxy en CentOS 7

Cómo administrar paquetes en CentOS con YUM

Cómo administrar contraseñas de Linux con el comando pass

Cómo configurar la replicación maestro-esclavo de MariaDB en CentOS 7

Cómo administrar bases de datos en MariaDB en Ubuntu 18.04