Tutorial > Gestire la posta con Roundcube e CentOS 7

Gestire la posta con Roundcube e CentOS 7

Pubblicato il: 08 ottobre 2019

CentOS Mail Roundcube

Roundcube è una tra le soluzioni open source più note per gestire un servizio di posta elettronica affidabile e personalizzabile attraverso un web service.

Nel tutorial trovi tutte le informazioni per installare e gestire un servizio di webmail con Roundcube su CentOS 7. Essendo basato su PHP, Roundcube necessita l’installazione di un web server come NGINX o Apache e si appoggia su un database MySQL-like come MariaDB.

Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installazione di NGINX e PHP

Procedi installando un’istanza di NGINX con supporto di PHP e 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 

Una volta completata l’installazione di tutti i pacchetti puoi iniziare avviando NGINX e abilitandolo all’avvio automatico sul sistema:

$ sudo systemctl start nginx$ sudo systemctl enable nginx

L’utilizzo di Roundcube necessita la variazione di due parametri all’interno del file di configurazione di PHP presente in /etc/php.ini:

# Impostazione della nostra timezone

date.timezone = "Europe/Rome"
cgi.fix_pathinfo=0

Salviamo il file appena modificato, avviamo e abilitiamo il servizio PHP-FPM:

$ sudo systemctl start php-fpm$ sudo systemctl enable php-fpm 

Installazione di MariaDB

Per poter funzionare correttamente Roundcube ha bisogno del database MariaDB, installabile con il seguente comando:

$ sudo yum install mariadb-server

A installazione completata, avvia il servizio:

$ sudo systemctl start mariadb

$ sudo systemctl enable mariadb

Procedi con la messa in sicurezza di MariaDB eseguendo uno script incluso con MariaDB che aumenterà la sicurezza e limiterà l'accesso ai tuoi database:

Avvia lo script di utility fornito da MariaDb “mysql_secure_installation” e rispondi a tutte le domande che ti verranno poste:

$ sudo mysql_secure_installation

Per prima cosa ti verrà chiesto se vuoi abilitare il sistema di validazione delle password. Se abiliti questo sistema, quando imposterai una password per un utente questa sarà valutata e se non rispetterà i criteri minimi di sicurezza verrà rifiutata con un errore.

In seguito ti verrà chiesto se vuoi cambiare la password di root con una di tua preferenza. Se abiliti il sistema di validazione delle password dovrai inserire una password che rispetti i criteri di sicurezza.

Ti consigliamo di seguire alcune best practices per la creazione di una password sicura, tra cui:

  • Utilizzare sia maiuscole che minuscole

  • Utilizzare sia lettere che numeri

  • Utilizzare caratteri non alfanumerici come @#$%ˆ&!

  • Utilizzare password diverse da altre precedentemente utilizzate

Infine dovrai scegliere se rimuovere gli utenti anonimi, i database di test e se vorrai disabilitare il login remoto con l'utente root. Consigliamo di confermare tutte queste modifiche per avere un livello di sicurezza accettabile.

A questo punto conferma l'aggiornamento della tabella dei permessi per applicare i nuovi criteri di sicurezza.

Enter current password for root (enter for none):

OK, successfully used password, moving on...
                Setting the root password ensures that nobody can log into the 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!

Dopo che il servizio si sarà riavviato puoi creare un database per Roundcube e un nuovo utente per lo stesso (cambiando la password):

$ 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

Installazione di Roundcube

Per poter scaricare l’ultima versione di Roundcube avrai bisogno di wget. Se non è installato nel sistema puoi farlo con il seguente comando:

$ sudo yum install wget

Altrimenti puoi proseguire scaricando ed estraendo il pacchetto da github:

Sposta quindi il tutto nella directory di NGINX: 

$ sudo mv roundcubemail-1.3.7 /var/www/html/roundcubemail

$ sudo cd /var/www/html/roundcubemail/

Il pacchetto Roundcube contiene all’interno un file sql da importare nel database appena creato con la struttura richiesta:

$ mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Durante l’import ti verrà richiesta la password di root del database inserita durante l’installazione di MariaDB.

Completata la configurazione del database puoi proseguire preparando il server virtuale di NGINX per il dominio mail.domain.com. Per prima cosa assicurati che il proprietario della cartella html sia quello di NGINX:

$ sudo chown -R nginx:nginx /var/www/html/roundcubemail

Crea e modifica ora il file dell’host virtuale /etc/nginx/conf.d/mail.example.com.conf come segue :

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;

        }

}

Ricordati di variare il dominio domain.com con quello in tuo possesso prima di salvare le modifiche.

Qualora si dovessero presentare alcuni errori di permessi, modifica la configurazione di PHP-FPM presente in /etc/php-fpm.d/www.conf alterando questi parametri:

user = nginx

group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx

listen.group = nginx

listen.mode = 0660

Inoltre assicurati che il proprietario della directory "session" di PHP sia NGINX:

$ sudo chown -R nginx:nginx /var/lib/php/session/

A questo punto Roundcube è pronto per essere configurato dall’interfaccia web.

Configurazione di Roundcube tramite interfaccia web

Per continuare l’installazione, attraverso un browser web visita l’indirizzo: http://mail.domain.com/installer/ 

image7.png

image3.png

In questa prima fase, l’installer di Roundcube ti mostra un resoconto dei requisiti per far funzionare correttamente il sistema. Clicca sul tasto “NEXT” per proseguire.

 

image5.png

In questa seconda fase dovrai inserire una serie di parametri di funzionamento. Possiamo lasciare tutto invariato tranne il product_name dove dovrai inserire il nome del tuo dominio oppure un soprannome a tua scelta.

image1.png

É importante modificare i dati di accesso al server sql con quelli inseriti in fase di installazione. Quando hai completato, clicca “NEXT” per proseguire.

image4.png

Una volta completata la seconda fase, puoi testare i parametri IMAP / SMTP del tuo server per verificare che Roundcube riesca a spedire / ricevere posta. 

Una volta terminato, devi eliminare tutti i file necessari per l’installazione presenti nella cartella /var/www/html/roundcubemail/installer eseguendo il comando:

$ sudo rm -rf /var/www/html/roundcubemail/installer

Qualora dovessi modificare o variare i parametri inseriti in fase di configurazione potrai sempre modificare il file presente nella directory /var/www/html/roundcubemail/config/config.inc.php

Accesso alla Webmail

La nostra istanza Roudcube è pronta all’uso all’URL http://mail.domain.com/. Puoi quindi accedere utilizzando i dati di accesso di una casella di posta configurata con Dovecot.

image2.png

image6.png