Progetto

Generale

Profilo

Roundcube-2fa » Cronologia » Versione 1

Simone Piccardi, 08-11-2021 13:05

1 1 Simone Piccardi
h1. Abilitare la 2FA su Roundcube
2
3
Un requisito sempre più richiesto per aumentare la sicurezza delle applicazione web è quello di abilitare un sistema di 2FA (2 Factor Authentication) per gli accessi. Nel caso di Roundcube questo può essere ottenuto utilizzando una apposita estensione @twofactor_gauthenticator@. Non essendo questa pacchettizzata per Debian dovrà essere scaricata direttamente dal repository di sviluppo, e dovendo convivere con l'installazione di sistema utilizzeremo come directory di installazione @/usr/local/share/roundcube/plugins@ facendo poi riferimento al codice con un link simbolico, pertanto si esegua:
4
5
<pre>
6
mkdir /usr/local/share/roundcube/plugins -p
7
cd /usr/local/share/roundcube/plugins
8
git clone https://github.com/alexandregz/twofactor_gauthenticator.git
9
cd twofactor_gauthenticator/
10
git checkout 1.3.9-version
11
cd /var/lib/roundcube/plugins/
12
ln -s /usr/local/share/roundcube/plugins/twofactor_gauthenticator twofactor_gauthenticator
13
</pre>
14
15
e si aggiunga alla lista dei plugin in @/etc/roundcube/config.inc.php@:
16
17
<pre>
18
$config['plugins'] = array(
19
...
20
'twofactor_gauthenticator',
21
);
22
</pre>
23
24
Si tenga presente che una volta attivato per un utente l'uso della 2FA questo non potrà tornare indietro senza collegarsi, ed anche se esiste la possibilità di salvare il QR code ed i codici di accesso di emergenza, qualora questi non fossero disponibili l'unica possibilità di tornare indietro sarebbe quella di cambiare l'impostazione a mano (o recuperare i dati) sul database. Nel caso sia necessario farlo le operazioni sono analoghe alle seguenti (si assume l'uso di MariaDB):
25
26
<pre>
27
MariaDB [(none)]> use roundcube
28
MariaDB [roundcube]> select preferences from users where username like "%username%";
29
.... -------+
30
| a:4:{s:6:"layout";s:7:"desktop";s:17:"message_threading";a:1:{s:5:"INBOX";b:1;}s:11:"client_hash";s:32:"2c4ad98596430d8ec9d719d0698f0f6c";s:24:"twofactor_gauthenticator";a:3:{s:6:"secret";s:16:"WCBZ4ORVXB6OKGDP";s:8:"activate";b:1;s:14:"recovery_codes";a:4:{i:0;s:10:"L3FVVT4CCM";i:1;s:10:"VTFVLZEGUX";i:2;s:10:"V23JITINMW";i:3;s:10:"E3MZV34VXB";}}} |
31
+--------- ...
32
MariaDB [roundcube]>  update users set preferences='a:4:{s:6:"layout";s:7:"desktop";s:17:"message_threading";a:1:{s:5:"INBOX";b:1;}s:11:"client_hash";s:32:"2c4ad98596430d8ec9d719d0698f0f6c";s:24:"twofactor_gauthenticator";a:3:{s:6:"secret";s:16:"WCBZ4ORVXB6OKGDP";s:8:"activate";b:0;s:14:"recovery_codes";a:4:{i:0;s:10:"L3FVVT4CCM";i:1;s:10:"VTFVLZEGUX";i:2;s:10:"V23JITINMW";i:3;s:10:"E3MZV34VXB";}}}
33
</pre>
34
35
in cui cioè nella stringa delle preferenze si cambia, nella parte riguardante @twofactor_gauthenticator@, la stringa @s:8:"activate";b:1@ in @s:8:"activate";b:0@.
36
37
Qualora si voglia rendere obbligatorio per tutti l'uso della 2FA, occorrerà aggiungere a @/etc/roundcube/config.inc.php@ l'ulteriore configurazione:
38
39
<pre>
40
// Added for twofactor_gauthenticator
41
$config['force_enrollment_users'] = true;
42
</pre>