Questo tutorial spiega come installare RoundCube con Apache Web Server, protetto tramite Let’s Encrypt SSL e su una distribuzione Linux Ubuntu 18.04 LTS.
RoundCube prevede alcune interessanti caratteristiche quali il supporto MIME, l’integrazione con LDAP, supporto multilingua, l’uso di un SMTP esterno, etc.
Se voleste approfondirne le caratteristiche, potete far riferimento alla pagina wikipedia di RoundCube.
– Prerequisiti –
- Un server con un’installazione LAMP Stack;
- Un utente non root con privilegi sudo;
- Let’s Encrypt e le relative componenti installate.
– Configurazione Timezone –
Apriamo la nostra sessione shell e digitiamo il seguente comando:
sudo nano /etc/php/7.2/apache2/php.ini
Premiamo Invio.
Premiamo Ctrl+W, digitiamo date.timezone e premiamo Invio.
Rimuoviamo il ‘;’ e dopo l’uguale digitiamo Europe/Berlin come mostrato nell’esempio a seguire:
Premiamo Ctrl + X, poi Y e infine Invio per salvare.
– Download di RoundCube –
Posizioniamoci nella directory temporanea:
cd /tmp/
Premiamo Invio.
Verifichiamo qual è l’ultima versione di RoundCube disponibile da GitHub, clicchiamo sul link dell’ultima versione e scorrendo la pagina, troveremo l’elenco degli asset.
Copiamo il link la cui descrizione riporta -complete.tar.gz:
e digitiamo da shell il seguente comando incollando il link precedentemente copiato:
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.5/roundcubemail-1.4.5-complete.tar.gz
Premiamo Invio.
Al termine del download estraiamo il contenuto del file compresso con il comando:
tar -xvzf roundcubemail-1.4.5-complete.tar.gz
Premiamo Invio.
Spostiamo il contenuto estratto, nella main root di Apache in una cartella che chiameremo roundcube:
sudo mv roundcubemail-1.4.5 /var/www/html/roundcube
Premiamo Invio.
Forniamo quindi i relativi permessi per la directory roundcube:
sudo chown -R www-data:www-data /var/www/html/roundcube
Premiamo Invio.
sudo chmod -R 775 /var/www/html/roundcube
Premiamo Invio.
– Configuriamo Apache per RoundCube –
Dobbiamo a questo punto creare un Virtual Host per RoundCube, creando il relativo file di configurazione tramite l’editor nano e con il comando:
sudo nano /etc/apache2/sites-available/roundcube.conf
Premiamo Invio.
Copiamo nell’editor aperto il seguente testo, sostituendo il ServerName, il ServerAdmin, Document Root e Directory con i parametri relativi il nostro dominio:
<VirtualHost *:80>
ServerName mennella.blog
ServerAdmin webmaster@mennella.blog
DocumentRoot /var/www/html/roundcube
ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined
<Directory /var/www/html/roundcube>
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Premiamo Ctrl + X, poi Y e infine Invio per salvare il file.
Abilitiamo quindi il file di configurazione del nuovo Virtual Host roundcube e riavviamo il server Apache:
sudo a2ensite roundcube
Premiamo Invio.
sudo systemctl restart apache2
Premiamo Invio.
– Richiesta certificato SSL con Let’s Encrypt –
Adesso dobbiamo rendere richiedere un certificato SSL digitando il seguente comando nella nostra shell:
sudo certbot –apache
Premere Invio.
Considerando che Let’s Encrypt era fra i prerequisiti di installazione, dovrebbe apparire l’elenco dei Virtual Host configurati, se più di uno, o di quello appena creato
Effettuiamo la selezione digitando il numero del/dei Virtual Host e premiamo Invio:
Nel passaggio successivo verrà richiesto se effettuare un redirect delle richieste in http verso https. Selezioniamo l’opzione 2 (https) e premiamo Invio:
Se non si verificano errori, otterremo il messaggio di successo e il suggerimento di verificare l’attendibilità del certificato SSL appena installato, tramite l’url di SSLLABS:
– Creiamo un DB in MySQL –
Prima di illustrare i passaggi per la configurazione di RoundCube, dobbiamo creare il relativo DB in MySQL e un utente specifico con cui accedervi.
Dalla shell digitiamo il comando a seguire per passare al prompt di MySQL:
sudo mysql -p -u root
Premiamo Invio.
Ora dal prompt di MySQL digitiamo il seguente comando per creare il nostro database, che nell’esempio si chiamerà roundcubemail:
CREATE DATABASE roundcubemail CHARACTER SET utf8 COLLATE utf8_general_ci;
Premiamo invio.
Inviamo ora i comandi per creare un utente che abbia pieni privilegi per operare sul nuovo DB appena creato. Nell’esempio useremo l’utente e la password di esempio roundcube :
CREATE USER ’roundcube’@’%’ IDENTIFIED BY ’roundcube’;
Premiamo invio.
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY ’roundcube’;
Premiamo invio.
Salviamo i cambiamenti apportati ed usciamo da MySQL:
FLUSH PRIVILEGES;
Premiamo invio.
Exit;
Premiamo invio.
– Configurazione della WebMail –
Avviamo ora la configurazione della webmail di RoundCube, digitando nel browser l’indirizzo del nostro dominio (Virtual Host), seguito dal percorso /roundcube/installer:
Se non ci sono errori, dovremmo ottenere una sequenza di OK come nell’immagine precedente.
Cliccando Next, passiamo alla schermata di configurazione.
Nella sessione General Configuration, modifichiamo il solo valore product_name di The name of your service, riportando il nome che poi apparirà richiamando la pagina iniziale di autenticazione della webmail.
Lasciamo i successivi parametri predefiniti fino ad arrivare alla sezione “database”, nella quale inseriremo i prametri di autenticazione del nostro DB (nell’esempio MySQL):
La sezione successiva è quella relativa alle impostazioni IMAP e SMTP per il servizio email a cui dovremo fare riferimento. Nell’esempio a seguire riporteremo esempi di configurazione per Aruba e per Gmail, sebbene è doverso dire che per Gmail, se è attiva l’autenticazione a più fattori per la protezione dell’account, la configurazione potrebbe non funzionare.
Nel campo default_host di The IMAP host(s) chosen to perform the log-in riportiamo per:
- Aruba = imaps.aruba.it
- Gmail = imap.gmail.com
Nel campo default_port di TCP port used for IMAP connections, riportiamo il valore 993 in entrambi i casi.
Lasciamo gli altri parametri di default e passiamo alla sessione successiva relativa la configurazione del SMTP.
Nel campo smtp_server di Use this host for sending mails, riportiamo per:
- Aruba = smtps.aruba.it
- Gmail = smtp.gmail.com
Nel campo smtp_port di SMTP port (default 587), riportiamo il valore 587 in entrami i casi.
Ora scorriamo la pagina di configurazione fino ad arrivare alla sezione Plugins e selezioniamo le opzioni attachment_reminder, emoticons e enigma.
Nota: La sezione Plugins è opzionale e può anche non essere modificata come indicato.
Clicchiamo ora su Create Config, tasto posto nella parte inferiore della pagina, al fine di generare il file di configurazione. Otterremo il messaggio come da immagine a seguire:
Cliccando sul tasto CONTINUE si passerà all’ultimo passaggio di configurazione, Test config, dove verrà mostrato l’esito della configurazione, mostrando eventuali errori o azioni aggiuntive da intraprendere:
Nell’immagine sopra evidenziata tutti i controlli sono contrassegnati come OK, ma se è la prima volta che eseguite il wizard di configurazione, dovreste riscontrare un NOT OK alla voce DB Schema con richiesta di inizializzazione database:
Clicchiamo quindi su Initialize database come proposto, al fine di ottenere l’OK anche per il DB Schema.
La configurazione è terminata! Se digitiamo nel browser il percorso con l’installazione di RoundCube, dovremmo ottenere la pagina di login della webmail:
Provando ad inserire i parametri di autenticazione, secondo quanto previsto da Aruba o Gmail, dovreste essere in grado di accedere alla vostra casella di posta elettronica.
Resta da effettuare ora un ultimo passaggio e cancellare la cartella installer presente in /var/www/html/roundcube o là dove avete configurato il vostro Virtual Host:
sudo rm -rf installer
Nel caso fosse necessario modificare la configurazione di RoundCube, editiamo tramite l’editor nano il file di configurazione confing.inc.php, contenuto nella cartella config del percorso di installazione della webmail.
Ad ogni modo consigliamo, prima di apportare modifiche a suddetto file, di effettuare sempre una copia di backup tramite il comando: