Comment sécuriser Roundcube sur Ubuntu 16.04

introduction

Le courrier électronique étant un élément crucial de la communication moderne, il est important de garder à l’esprit la sécurité pour tous les éléments de votre pipeline de courrier électronique. Roundcube est un client de messagerie Web doté de fonctions de sécurité renforcées et d’options de personnalisation étendues à partir de son référentiel de plug-ins. Cet article explique comment sécuriser davantage une installation Roundcube existante de base.

Si vous avez utilisé SSL lors de la configuration de votre https://www.digitalocean.com/community/tutorials/how-to-install-your-own-webmail-client-with-roundcube-on-ubuntu-16-04#imap-settings [IMAP] et STMP dans la configuration initiale de Roundcube, la connexion de Roundcube à votre serveur de messagerie est déjà sécurisée. Toutefois, la connexion de votre navigateur à Roundcube n’est pas établie et vos courriers électroniques eux-mêmes sont envoyés en clair. Votre compte Roundcube lui-même est également protégé uniquement par un mot de passe.

Dans ce tutoriel, vous allez sécuriser ces trois parties du pipeline de messagerie en:

  • Ajout de SSL à Apache avec Let’s Encrypt.

  • Ajout de two-factor authentication à votre compte Roundcube avec un plugin Roundcube.

  • Utilisation de GPG pour signer et chiffrer un courrier électronique avec un plugin Roundcube.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Pour en savoir plus sur l’authentification multifactorielle, consultez l’introduction de https://www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-16 -04 [Comment configurer l’authentification multifacteur pour SSH sur Ubuntu 16.04]. Pour en savoir plus sur GPG, consultez Comment utiliser GPG pour chiffrer et signer des messages.

Étape 1 - Ajout de SSL pour sécuriser l’accès à Roundcube

À l’heure actuelle, si vous visitez votre installation Roundcube en utilisant le nom de domaine de votre serveur dans votre navigateur, vous serez connecté via HTTP au lieu de HTTPS. Pour sécuriser entièrement la chaîne de communication de votre navigateur à votre serveur de messagerie, cette connexion à Roundcube doit utiliser SSL / TLS.

Un moyen simple de le faire consiste à utiliser des certificats SSL gratuits de Let’s Encrypt. Roundcube est installé au-dessus de la pile LAMP. Vous pouvez donc suivre https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16. -04 [Comment sécuriser Apache avec Let’s Encrypt sur Ubuntu 16.04] pour une présentation détaillée de la configuration. Voici un bref résumé:

Commencez par installer le client Let’s Encrypt.

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Ensuite, récupérez votre certificat SSL et vérifiez que le renouvellement automatique fonctionne. Remplacez ++ par votre domaine et utilisez des indicateurs supplémentaires + -d + pour tous les sous-domaines ou alias.

sudo certbot --apache -d
sudo certbot renew --dry-run

Lors de la configuration interactive (après avoir entré + sudo certbot --apache -d +), lorsque vous êtes invité à choisir une configuration de base ou sécurisée, veillez à choisir * secure *. Cela garantira que tout le trafic HTTP est redirigé vers HTTPS.

Vous disposez maintenant d’une connexion sécurisée de votre ordinateur à votre installation Roundcube, qui établit à son tour une connexion sécurisée vers votre serveur de messagerie IMAP / SMTP. Il reste encore quelques choses à faire pour améliorer la sécurité de vos communications par courrier électronique, mais elles nécessitent des plug-ins.

L’étape suivante utilise un plugin pour renforcer la sécurité d’un compte Roundcube en ajoutant une authentification à deux facteurs.

Étape 2 - Installation du plug-in d’authentification à deux facteurs

Alors que le projet Roundcube travaille sur la fonctionnalité d’interface graphique pour les plugins, tous les plugins doivent être installés via la ligne de commande. Il y a deux façons de faire ça:

  • * Installation manuelle *, qui était la première méthode disponible. Cela implique de télécharger le plugin (qui est généralement un fichier + .zip + ou dans un référentiel Git), puis de l’activer en modifiant le fichier de configuration de Roundcube + / var / www / roundcube / config / config.inc.ph + .

  • * Installation semi-automatique *, méthode la plus moderne. Ceci répond sur le gestionnaire de paquets PHP, Composer, pour installer les plugins que vous spécifiez dans son fichier de configuration.

Certains plugins recommandent une méthode d’installation plutôt qu’une autre. Le plug-in 2FA fonctionne avec les deux méthodes et ne fait pas de recommandation. Dans ce cas, nous allons utiliser l’installation semi-automatique pour sa facilité d’utilisation.

Composer est contrôlé par un fichier + composer.json stocké dans` + $ R_HOME / composer.json`. Activer Composer en créant ce fichier de configuration. Roundcube est livré avec un fichier de configuration de base appelé + composer.json-dist +, nous allons donc commencer par une copie de celui-ci.

cd /var/www/roundcube
sudo cp composer.json-dist composer.json

Quelques plugins principaux étant déjà spécifiés dans ce fichier par défaut, exécutez ensuite Composer pour les installer et terminer sa configuration initiale. Assurez-vous d’exécuter Composer à partir du répertoire + / var / www / roundcube +.

sudo composer install

Ensuite, pour ajouter le plugin 2FA, nous devons l’ajouter au fichier + composer.json.

La syntaxe d’une ligne de plugin est " / ":" ". Donc, pour le plugin 2FA, la ligne que vous allez ajouter est " / ":" ".

Ouvrez le fichier + composer.json à éditer avec` + nano + `ou votre éditeur de texte favori.

sudo nano /var/www/roundcube/composer.json

Recherchez le bloc require, qui commence par " require ": {. Chaque ligne entre les accolades (+ {+ et +} +) est une ligne de plugin. Toutes les lignes de plug-in du bloc doivent se terminer par une virgule, à l’exception de la toute dernière entrée.

Ajoutez la ligne de plug-in 2FA à la fin du bloc et assurez-vous d’ajouter une virgule à la ligne précédente.

/var/www/roundcube/composer.json

. . .
"require": {
   "php": ">=5.4.0",
   "pear/pear-core-minimal": "~1.10.1",
   "pear/net_socket": "~1.2.1",
   "pear/auth_sasl": "~1.1.0",
   "pear/net_idna2": "~0.2.0",
   "pear/mail_mime": "~1.10.0",
   "pear/net_smtp": "~1.7.1",
   "pear/crypt_gpg": "~1.6.2",
   "pear/net_sieve": "~1.4.0",
   "roundcube/plugin-installer": "~0.1.6",
   "endroid/qr-code": "~1.6.5"

},
. . .

Enregistrez et fermez le fichier, puis exécutez tell Composer pour mettre à jour les informations de son package afin d’installer le nouveau plugin.

sudo composer update

Lorsque Composer vous demande si vous souhaitez activer le plug-in, entrez + Y + pour continuer. Une fois installé, déconnectez-vous de Roundcube et reconnectez-vous pour activer le plug-in.

Maintenant que le plugin est installé, nous devons utiliser pour configurer 2FA sur notre compte via l’interface graphique de Roundcube.

Étape 3 - Activer 2FA sur votre compte

Pour commencer, connectez-vous à Roundcube en utilisant l’adresse IP de votre serveur ou votre domaine dans votre navigateur. Cliquez sur le bouton * Paramètres * dans le coin droit, puis sur * Authentification à 2 facteurs * dans le volet de navigation de gauche.

image: https: //assets.digitalocean.com/articles/roundcube-security/QlcwvKy.png [Page des paramètres d’authentification de Roundcube à 2 facteurs]

Dans la section des options d’authentification à 2 facteurs, cochez la case * Activer *, puis cliquez sur * Créer un secret *.

Cliquez ensuite sur * Afficher les codes de récupération * et stockez les quatre codes de récupération affichés dans un endroit sûr. Vous utiliserez ces codes pour vous connecter si vous ne pouvez pas générer de jeton (par exemple, si vous perdez votre téléphone).

Enfin, cliquez sur le bouton * Enregistrer *.

Cela active 2FA, mais vous devez maintenant ajouter le secret à votre application compatible TOTP, telle que Google Authenticator. Cliquez sur le bouton * Afficher le code QR * qui apparaît après avoir enregistré votre secret et scannez le code avec votre application. Si l’analyse ne fonctionne pas, vous pouvez également entrer le secret manuellement.

image: https: //assets.digitalocean.com/articles/roundcube-security/vrraKDc.png [code QR d’authentification Roundcube à 2 facteurs]

Enfin, une fois que votre application génère des codes, assurez-vous que cela fonctionne en entrant un code dans le champ en regard du bouton * Vérifier le code *, puis cliquez sur ce bouton. Si cela fonctionne, vous verrez une fenêtre avec le code * Code OK *, et vous pouvez cliquer sur le bouton * OK * en bas pour fermer cette fenêtre. En cas de problème, essayez de ré-ajouter le secret à votre application.

La dernière étape de la sécurisation de vos communications numériques consiste à chiffrer les messages que vous envoyez par courrier électronique. Nous ferons cela à l’étape suivante en utilisant un plugin appelé Enigma.

Étape 4 - Activer le courrier électronique crypté avec GPG

Le plug-in Enigma ajoute la prise en charge de l’affichage et de l’envoi d’e-mails cryptés signés. Si vous avez suivi https://www.digitalocean.com/community/tutorials/how-to-install-your-own-webmail-client-with-roundcube-on-ubuntu-16-04, cliquez sur le tutoriel précédent d’installation de Roundcube. ], le plugin Enigma est déjà activé sur votre installation. Sinon, vous pouvez suivre la même procédure que vous avez utilisée pour le plug-in 2FA à l’étape 2 pour ajouter le plug-in Enigma maintenant.

Pour commencer, nous devons activer certaines options de chiffrement par défaut. Connectez-vous à Roundcube et cliquez sur le bouton * Paramètres * dans le coin supérieur droit. À partir de là, cliquez sur * Préférences * puis * Cryptage * dans la liste * Section *.

image: https: //assets.digitalocean.com/articles/roundcube-security/kNwyyTr.png [Définir les paramètres de cryptage]

Il y a 7 paramètres de cryptage dans la liste * Options principales *. Activer tous les 7 donnera le maximum de sécurité, mais cela implique un compromis en termes de convivialité.

Voici chacune des options du menu * Options principales * et nos suggestions (nécessaires, recommandées ou facultatives) pour chacune d’elles, mais vous devez choisir les paramètres qui conviennent à votre cas d’utilisation:

  • * Activer le cryptage et la signature des messages *: Nécessaire. Cela vous permet de signer et de chiffrer les messages.

  • * Activer la vérification des signatures de message * Recommandé. Si quelqu’un vous envoie un courrier électronique signé, ce paramètre permet à Roundcube d’essayer de vérifier l’expéditeur à l’aide de son adresse électronique et de sa clé.

  • * Activer le décryptage des messages *: Recommandé. Si quelqu’un vous envoie un courrier électronique chiffré, ce paramètre permet à Roundcube d’utiliser vos clés GPG pour le déchiffrer.

  • * Signer tous les messages par défaut *: facultatif. Tous les messages que vous envoyez sont signés, même si la personne à laquelle vous les envoyez n’est pas prise en charge par GPG. S’ils ne le font pas, ils verront un bloc de caractères au bas de l’e-mail. Vous pouvez également activer cette option lors de la rédaction d’un courrier électronique.

  • * Crypter tous les messages par défaut *: facultatif. Ceci crypte chaque email que vous envoyez, en supposant que vous ayez la clé publique de la personne à qui vous envoyez un email. Vous pouvez également activer cette option lors de la rédaction d’un courrier électronique.

  • * Joindre ma clé publique PGP par défaut *: facultatif. Cela ajoute votre clé publique GPG en tant que pièce jointe à chaque email que vous envoyez. Si le destinataire est pris en charge par GPG, son client de messagerie verra la clé et l’installera dans son trousseau afin qu’il puisse ensuite vous envoyer un courrier chiffré.

  • * Conserver les mots de passe de clé privée pour * définit la durée pendant laquelle Roundcube se souvient de la phrase secrète que vous entrez lors du chiffrement ou du déchiffrement d’un courrier électronique. Vous n’avez donc pas à la saisir à chaque fois.

Une fois que vous avez choisi vos paramètres, cliquez sur * Enregistrer. * Ensuite, cliquez sur * Identités * dans la colonne * Paramètres *.

image: https: //assets.digitalocean.com/articles/roundcube-security/ESIwBCI.png [Identité de mise à jour]

Le paramètre par défaut est une identité unique avec l’adresse e-mail avec laquelle vous vous êtes inscrit. Cliquez sur l’email et remplissez le champ * Nom complet *. Vous pouvez éventuellement remplir les autres champs, comme * Organisation *. Lorsque vous avez terminé, cliquez sur le bouton * Enregistrer *.

La dernière partie de la configuration crée une clé. Cliquez sur * Clés PGP * dans la navigation de gauche.

Si vous avez déjà une clé GPG, vous pouvez cliquer sur * Importer * en haut à droite et importer votre clé secrète, puis cliquez à nouveau dessus pour importer votre clé publique.

Si vous ne possédez pas de clé GPG ou si vous souhaitez en créer une nouvelle, cliquez sur le bouton plus (* + *) au bas de la colonne * Clés PGP *. À partir de là, choisissez l’identité pour laquelle vous souhaitez créer la clé, puis sélectionnez la force de la clé (plus la taille de la clé est grande, plus il est difficile de casser le cryptage, mais plus le cryptage est lent). Enfin, choisissez un mot de passe fort et cliquez sur * Enregistrer *.

Lorsque vous recevez un e-mail signé vérifié, Roundcube affiche une notification verte * Signature certifiée de * en haut:

image: https: //assets.digitalocean.com/articles/roundcube-security/HOjm9fV.png [Email signé]

Lorsque vous recevez et déchiffrez un e-mail chiffré, Roundcube affiche une notification * Message déchiffré *:

image: https: //assets.digitalocean.com/articles/roundcube-security/CAN7RYZ.png [Email déchiffré]

Pour utiliser le cryptage GPG dans vos messages, composez un nouvel email en cliquant sur l’icône * Mail * en haut à gauche, puis sur * Compose *. Cliquez sur l’icône * Cryptage * pour voir les options de cryptage disponibles. Celles-ci dépendent de ce que vous avez choisi dans les paramètres de cryptage. Si vous avez suivi nos recommandations, vous devriez voir * Signer numériquement ce message *, * Crypter ce message * et * Joindre ma clé publique *. Lorsque vous envoyez un courrier électronique, cochez les options de cryptage souhaitées.

Conclusion

En ajoutant SSL, l’authentification à deux facteurs et le cryptage GPG, votre pipeline de messagerie est considérablement plus sécurisé. À partir de là, vous pouvez continuer à développer et à personnaliser Roundcube en explorant le référentiel de plug-ins Roundcube.