fbpx

Postfix -Partie 7 Installez Roundcube Webmail sur Ubuntu 20.04 avec Apache

Débutant – Partie 7 Installez Roundcube Webmail sur Ubuntu 20.04 avec Apache

lms 15 4

Vue d'ensemble

Roundcube est un client de messagerie Web open source gratuit et complet écrit en PHP. Un webmail est un client de messagerie dans votre navigateur.

Au lieu de lire et d’envoyer des e-mails à partir d’un client de messagerie de bureau.

Ce que vous apprendrez

  • Télécharger Roundcube sur le site officiel
  • Installer les extensions PHP
  • Créer une base de données
  • Configurer un fichier pour Apache
  • Sécuriser la messagerie avec le chiffrement TLS
  • Modifier le DNS local
  • Configurer le fichier Roundcube
  • Activer le filtrage des mails
  • Supprimer les informations sensibles des en-têtes de courrier électronique
  • Activer le plugin de mot de passe dans Roundcube et voir d’autres
  • Créer un message d’absence dans la messagerie Roundcube
  • Augmenter la limite de taille du fichier de téléchargement dans PHP
  • Mettre à jour Roundcube
Sommaire
2
3
Tutoriels – Roundcube webmail

Nous allons installer un webmail Roundcube qui permet à vos utilisateurs de lire leurs mails via un navigateur.

Débutant

04 hrs 00 min

Mise à jour le: 19/03/2024

Pré-requis
Ubuntu serveur 20.04
Serveur MySQL MariaDB 
Serveur SMTP Postfix
IMAP

Caractéristiques de Roundcube

La fonctionnalité Roundcube comprend :

  • Carnet d’adresses
  • Gestion des dossiers
  • Recherche de messages
  • Filtre de messages
  • Vérification orthographique
  • Prise en charge MIME
  • PGP : le plugins dans roundcube est enigma
  • Intégration de Mailvelope
  • Les utilisateurs peuvent changer leurs mots de passe dans Roundcube.
  • Importer des e-mails au format MIME ou Mbox
  • E-mail renvoyé (rebond)
  • Prise en charge du cache Redis et Memcached
  • Prise en charge de SMTPUTF8 et GSSAPI
  • Une peau réactive appelée Elastic
  • Prise en charge d’OAuth2/XOauth (avec hooks de plugin)
  • Destinataires collectés et expéditeurs de confiance
  • Prise en charge complète d’Unicode avec la base de données MySQL
  • Prise en charge de l’extension IMAP LITERAL
  • Synchronisation de l’agenda plugin DAV avec un client de messagerie (Microsoft Outlook)

Étape 1 : Téléchargez Roundcube Webmail sur Ubuntu 20.04

Pour avoir les différentes versions de Roundcube aller sur le lien suivant :

https://github.com/roundcube/roundcubemail/releases

La version actuelle de Roundcube est la 1.6.6 pour ce tutoriel.

Connectez-vous à votre serveur Ubuntu.

Vous allez utiliser la commande wget pour télécharger Roundcube.

Commande :

sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz

Extraire l’archive tar.

Commande :

sudo tar -xvzf roundcubemail-1.6.6-complete.tar.gz

Renommer le fichier Roundcubemail-1.6.6 en roundcube

Commande :

mv Roundcubemail-1.6.6 roundcube

Vous déplacez le dossier roundcube dans le répertoire /var/www/.

Commande :

mv roundcube /var/www/

Accédez au répertoire roundcube.

Commande :

cd /var/www/roundcube

Définissez l’utilisateur du serveur Web (www-data) comme propriétaire des répertoires tmp et logs afin que le serveur Web puisse écrire dans ces deux répertoires.

Commande :

sudo chown -R www-data:www-data tmp/ logs/

Étape 2 : Installer les extensions PHP

Exécutez la commande suivante pour installer les extensions PHP requises.

Notre choix se porte sur la version 7.4 de PHP, car notre serveur était déjà dans cette version.

PHP-7.4 est entièrement pris en charge dans la version 1.6.6.

Commande :

sudo apt install software-properties-common

Nous allons ajouter dans le fichier apt/source.list les paquets pour PHP-8.1.

Commande :

sudo add-apt-repository ppa:ondrej/php

Vous faites la mise à jour des paquets.

Commande :

sudo apt update

Si vous utilisez PHP-8.1, utilisez la commande ci-dessous :

Commande :

sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-common php8.1-gd php8. 1-imap php8.1-mysql php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

Comme nous utilisons la version PHP7.4, les paquets suivants sont déjà installés :

  • php7.4-mysql
  • php7.4-xml
  • php7.4-bz2
  • php7.4-imap
  • php7.4-intl
  • php7.4-mbstring
  • php7.4-zip
p
Les différents paquets pour PHP7.4

php7.4 - langage de script côté serveur, inclus dans du HTML (méta-paquet)
php7.4-bcmath - module Bcmath pour PHP
php7.4-bz2 - module bzip2 pour PHP
php7.4-cgi - Langage de script intégré à HTML et exécuté côté serveur (binaire CGI)
php7.4-cli - interpréteur de ligne de commande pour le langage de script PHP
php7.4-common - documentation, exemples et module commun pour PHP
php7.4-curl - Module CURL pour PHP
php7.4-dba - DBA module for PHP
php7.4-dev - Fichiers pour le développement de modules PHP7.4
php7.4-enchant - Enchant module for PHP
php7.4-fpm - langage de script côté serveur, intégré à HTML (binaire FPM-CGI)
php7.4-gd - GD module for PHP
php7.4-gmp - GMP module for PHP
php7.4-imap - IMAP module for PHP
php7.4-interbase - Interbase module for PHP
php7.4-intl - Module d'internationalisation pour PHP
php7.4-json - JSON module for PHP
php7.4-ldap - LDAP module for PHP
php7.4-mbstring - MBSTRING module for PHP
php7.4-mysql - MySQL module for PHP
php7.4-odbc - ODBC module for PHP
php7.4-opcache - Zend OpCache module for PHP
php7.4-phpdbg - langage de script côté serveur, intégré à HTML (binaire PHPDBG)
php7.4-pgsql - PostgreSQL module for PHP
php7.4-pspell - pspell module for PHP
php7.4-readline - readline module for PHP
php7.4-snmp - SNMP module for PHP
php7.4-soap - SOAP module for PHP
php7.4-sybase - Sybase module for PHP
php7.4-sqlite3 - SQLite3 module for PHP
php7.4-tidy - tidy module for PHP
php7.4-xml - DOM, SimpleXML, XML, and XSL module for PHP
php7.4-xmlrpc - XMLRPC-EPI module for PHP
php7.4-xsl - module XSL factice pour PHP
php7.4-zip - Zip module for PHP

Il vous reste juste à installer les paquets suivants :

Commande :

sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php7.4-common php7.4-gd php7.4-curl php7.4-gmp php7.4-redis

Définir un fuseau horaire par défaut dans php.ini (exemples: UTC, Europe/Paris, ou voir le manuel PHP pour plus):


Commande :

sed -i -e "s/^;date.timezone =.*s/datetimezone = 'UTC' /" /etc/php5/apache2/php.ini

Étape 3 : Créer une base de données MariaDB et un utilisateur pour Roundcube

1. Connectez-vous au shell MariaDB en tant que root.

Commande :

sudo mysql -u root

2. Créez ensuite une nouvelle base de données pour Roundcube à l’aide de la commande suivante.
Ce tutoriel le nomme roundcubemail, vous pouvez utiliser le nom de votre choix pour la base de données.

Commande :

CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3. Ensuite, créez un nouvel utilisateur de base de données sur localhost à l’aide de la commande suivante.
Encore une fois, ce tutoriel le nomme roundcube, vous pouvez utiliser le nom de votre choix. Remplacez password par votre mot de passe préféré.

Commande :

CREATE USER roundcube@localhost IDENTIFIED BY 'roundcube_password';

4. Accordez ensuite toutes les autorisations de la nouvelle base de données au nouvel utilisateur afin que le webmail Roundcube puisse écrire dans la base de données plus tard.

Commande :

GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;

5. Videz la table des privilèges pour que les modifications prennent effet.

Commande :

flush privileges;

6. Quittez le shell MariaDB :

Commande :

exit;

7. Importez les tables initiales dans roundcube la base de données.

Commande :

sudo mysql roundcube < /var/www/roundcube/SQL/mysql.initial.sql

Étape 4 : Créer un hôte virtuel Apache

Si vous utilisez le serveur Web Apache, créez un hôte virtuel pour Roundcube.

Commande :

sudo nano /etc/apache2/sites-available/roundcube.conf

p
Note :

Si vous avez suivi mon tutoriel Postfix/Dovecot, un hôte virtuel existe déjà. Vous devez modifier le fichier suivant. (Supprimez le contenu existant.)

Commande :

sudo nano /etc/apache2/sites-available/roundcube.conf

Mettez le texte suivant dans le fichier.

Remplacez-le mail.domain.tld par votre vrai nom de domaine et n’oubliez pas de définir un enregistrement DNS A pour celui-ci.

Commande :


ServerName webmail.domain.tld
DocumentRoot /var/www/roundcube/

ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined


Options FollowSymLinks
AllowOverride All


Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Enregistrez et fermez le fichier.

Activez ensuite cet hôte virtuel avec :

Commande :

sudo a2ensite roundcube.conf

Rechargez Apache pour que les modifications prennent effet.

Commande :

sudo systemctl reload apache2

Étape 5 : Configurer le DNS chez votre registrar

Pour configurer le DNS chez votre registrar, vous choisissez le type A et le nom webmail. Ne pas oublier d’ajouter l’adresse IP de votre serveur.

Enregistrer et retourner sur votre serveur.

Roundcube webmail configurer A dns registrar

Vous devriez maintenant pouvoir voir l’assistant d’installation Web de Roundcube à l’adresse :

http://mail.domain.tld/installer.

Étape 6 : Activation de HTTPS

Rappel

Si vous avez suivi mon tutoriel Postfix/Dovecot et que vous installez maintenant Roundcube sur le même serveur, alors "Cerbot" vous dira probablement qu'un certificat pour mail.domain.tld existe déjà.

Vous pouvez donc choisir d'installer le certificat existant. Certificat TLS dans le fichier de configuration de votre serveur Web.

Il est fortement recommandé d’utiliser TLS pour chiffrer votre messagerie Web.

Nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt.

Exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur le serveur Ubuntu 20.04.

Commande :

sudo apt installer certbot

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
Si vous utilisez Apache, installez le plugin Certbot Apache.

Commande :

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

Commande :

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email letsencrypt@domain.tld -d webmail.domain.tld

Information :
  • --nginx: Utilisez le plugin nginx.
  • --apache : Utilisez le plugin Apache.
  • --agree-tos: Acceptez les conditions de service.
  • --redirect: Forcer le HTTPS par redirection 301.
  • --hsts : Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur a toujours utilisé TLS pour le domaine. Se défend contre le décapage SSL/TLS.
  • --staple-ocsp: Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat proposé par le serveur pendant TLS.

Le certificat devrait maintenant être obtenu et automatiquement installé.

Roundcube webmail certificat TLS

Étape 7 : Ajout d'une entrée DNS locale

Il est recommandé de modifier le /etc/hosts fichier sur le serveur de messagerie et d’ajouter l’entrée suivante, afin que Roundcube n’ait pas à interroger le DNS public, ce qui accélérera un peu le chargement de la page Web.

Commande :

127.0.0.1 localhost webmail.domain.tld

Étape 8 : configurer Roundcube

Accédez au répertoire de configuration de Roundcube.

Commande :

cd /var/www/roundcube/config/

Copiez l’exemple de fichier de configuration.

Commande :

sudo cp config.inc.php.sample config.inc.php

Modifiez le nouveau fichier.

Commande :

sudo nano config.inc.php

Recherchez la ligne suivante, qui indique à Roundcube comment se connecter à la base de données.

Commande :

$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcube';

Vous devez le remplacer pass par le vrai mot de passe Roundcube.
Si le mot de passe contient des caractères spéciaux, vous devez utiliser un codage en pourcentage.

Voici le mot de passe actuelle : To@2!Og8Zz1Aq@5!r!

! " $ % & ' ( ) * + , / : ; = ? @ [ }
%20 %21 " %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3C %3F %40 %5B %5D

Par exemple, si le mot de passe est : To@2!Og8Zz1Aq@5!r!
Alors la ligne ressemblera à ceci : To%402%21Og8Zz1Aq%405%21r%21

Trouvez ensuite les deux lignes suivantes.

Commande :

$config['imap_host'] = 'localhost:143';
$config['smtp_host'] = 'localhost:587';

Remplacez la valeur comme suit :

Commande :

$config['imap_host'] = 'tls://mail.domain.tld:143';
$config['smtp_host'] = 'tls://mail.domain.tld::587';

Trouvez la ligne suivante.

Commande :

$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

Remplacez la clé par défaut par des caractères aléatoires comme ci-dessous.

Commande :

$config['des_key'] = '34pusjcOnASi/pt9SH90//1KBeD=';

Ensuite, trouvez les lignes suivantes

Commande :

// Liste des plugins actifs (dans le répertoire plugins/)
$config['plugins'] = [
'archive',
'zipdownload',
];

Par défaut, seuls deux plugins sont activés.
Nous pouvons activer plus de plugins comme ci-dessous.
‘zipdownload’];

Commande :

// Liste des plugins actifs (dans le répertoire plugins/)

$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Enfin, nous pouvons activer le correcteur orthographique intégré correcteur orthographique intégré en ajoutant la ligne suivante à la fin de ce fichier.

Commande :

$config['enable_spellcheck'] = true;

Enregistrez et fermez le fichier.
Accédez à votre domaine Webmail et connectez-vous.

roundcube interface de connexion

Interface de messagerie Web Roundcube

Roundcube boite reception

Vous devez maintenant supprimer l’intégralité du dossier d’installation de la racine du document ou vous assurer que cette enable_installer option du config.inc.php fichier est désactivée.

Commande :

sudo rm /var/www/roundcube/installer/ -r

Ces fichiers peuvent exposer au public des données de configuration sensibles telles que les mots de passe du serveur et les clés de cryptage.
Assurez-vous que vous ne pouvez pas accéder à la page du programme d’installation à partir de votre navigateur.

Étape 9 : Configurer le filtre de messages Sieve

Vous pouvez créer des dossiers dans la messagerie Web Roundcube, puis créer des règles pour filtrer les e-mails dans différents dossiers.

Pour ce faire, vous devez installer le serveur ManageSieve avec la commande suivante.

Commande :

sudo apt install dovecot-sieve dovecot-managesieved

Par défaut, Postfix utilise son agent de livraison local (LDA) intégré pour déplacer les e-mails entrants vers la banque de messages (boîte de réception, envoyés, corbeille, courrier indésirable, etc.).

Nous pouvons le configurer pour utiliser Dovecot pour envoyer des e-mails, via le protocole LMTP, qui est une version simplifiée de SMTP. LMTP permet un système de messagerie hautement évolutif et fiable et il est requis si vous souhaitez utiliser le plugin sieve pour filtrer les messages entrants vers différents dossiers.

Installez le serveur LMTP Dovecot.

Commande :

sudo apt install dovecot-lmtpd

Modifiez le fichier de configuration principal de Dovecot.

Commande :

sudo nano /etc/dovecot/dovecot.conf

Ajoutez lmtp et sieve aux protocoles pris en charge.

Commande :

protocols = imap lmtp sieve

Enregistrez et fermez le fichier.

Modifiez ensuite le fichier Dovecot 10-master.conf.

Commande :

sudo nano /etc/dovecot/conf.d/10-master.conf

Modifiez la définition du service lmtp comme suit.

Commande :

service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix }}

Ensuite, modifiez le fichier de configuration principal de Postfix.

Commande :

sudo nano /etc/postfix/main.cf

Ajoutez les lignes suivantes à la fin du fichier. La première ligne indique à Postfix de transmettre les e-mails au magasin de messages local via le serveur LMTP dovecot.

La deuxième ligne désactive SMTPUTF8 dans Postfix, car Dovecot-LMTP ne prend pas en charge cette extension de messagerie.

Commande :

mailbox_transport = lmtp:unix:private/dovecot-lmtp

smtputf8_enable = no

Enregistrez et fermez le fichier.

Ouvrez le fichier/etc/dovecot/conf.d/15-lda.conf.

Commande :

sudo nano /etc/dovecot/conf.d/15-lda.conf

Faites défiler jusqu’à la fin du fichier, décommentez la mail_plugins ligne et ajoutez le plugin sieve à l’agent de livraison local (LDA).

Commande :

protocol lda {

# Liste de plugins séparés par des espaces à charger (la valeur par défaut est global mail_plugins).

mail_plugins = $mail_plugins sieve

}

Enregistrez et fermez le fichier.

Si vous pouvez trouver le fichier 20-lmtp.conf dans le répertoire /etc/dovecot/conf.d/.

Vous devez également activer le plugin sieve dans ce fichier comme ci-dessous.

Commande :

protocol lmtp { mail_plugins = quota sieve}

Modifiez le fichier /etc/dovecot/conf.d/10-mail.conf.

Commande :

sudo nano /etc/dovecot/conf.d/10-mail.conf

Les scripts Sieve sont stockés dans le répertoire personnel de chaque utilisateur.

Si vous avez suivi mon didacticiel PostfixAdmin et utilisez des domaines de boîtes aux lettres virtuelles, vous devez alors activer les utilisateurs virtuels en ajoutant la ligne suivante mail_home dans le fichier, car les utilisateurs virtuels n’ont pas de répertoire personnel par défaut.

Commande :

mail_home = /var/vmail/%d/%n

Enregistrez et fermez le fichier.

Enfin, redémarrez Postfix et Dovecot.

Commande :

sudo systemctl restart postfix dovecot

ous pouvez maintenant accéder à la messagerie Web Roundcube, ouvrir un e-mail, cliquer sur le bouton plus et sélectionner, créer un filtre de message.

Par exemple, je crée un filtre qui déplace chaque e-mail envoyé depuis domain1.tld vers le dossier domain.tld.

Roundcube filtre de message

Si vous n’avez pas cette option create filter, c’est probablement parce que vous n’avez pas activé le plugin managesieve. Modifiez le config.inc.php fichier.

Commande :

sudo nano /var/www/roundcube/config/config.inc.php

Enregistrez et fermez le fichier.

Notez que si vous déplacez un ensemble de filtres tamis d’un ancien serveur de messagerie vers votre nouveau serveur de messagerie, vous devez accéder à Paramètres -> Filtres , puis cliquer sur Actions et activer l’ensemble de filtres, sinon le serveur LMTP Dovecot n’exécutera pas le filtre tamis.

A la fin de ce fichier, vous trouverez une liste des plugins actifs. ajoutez le managesieve plugin dans le tableau. L’ordre des plugins n’a pas d’importance.

Commande :

// ---------------------------------- // PLUGINS // --------- ------------------------- // Liste des plugins actifs (dans le répertoire plugins/) $config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'database_attachments', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Enregistrez et fermez le fichier.

Notez que si vous déplacez un ensemble de filtres tamis d’un ancien serveur de messagerie vers votre nouveau serveur de messagerie, vous devez accéder à Paramètres -> Filtres , puis cliquer sur Actions et activer l’ensemble de filtres, sinon le serveur LMTP Dovecot n’exécutera pas le filtre tamis.

Étape 10 : Suppression des informations sensibles des en-têtes de courrier électronique

Par défaut, Roundcube ajoutera un « en-tête d’e-mail » User-Agent, indiquant que vous utilisez la messagerie Web Roundcube et le numéro de version.
Vous pouvez demander à Postfix de l’ignorer afin que le destinataire ne puisse pas le voir.
Exécutez la commande suivante pour créer un fichier de vérification d’en-tête.

Commande :

sudo nano /etc/postfix/smtp_header_checks

Mettez les lignes suivantes dans le fichier.

Commande :

/^User-Agent.*Roundcube Webmail/ IGNORE

Enregistrez et fermez le fichier.
Modifiez ensuite le fichier de configuration principal de Postfix.

Commande :

sudo nano /etc/postfix/main.cf

Ajoutez la ligne suivante à la fin du fichier.

Commande :

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

Enregistrez et fermez le fichier.
Exécutez ensuite la commande suivante pour reconstruire la table de hachage.

Commande :

sudo postmap /etc/postfix/smtp_header_checks

Rechargez Postfix pour que la modification prenne effet.

Commande :

sudo systemctl restart postfix

Désormais, Postfix n’inclura plus User-Agent : Roundcube Webmail les en-têtes lors de l’envoi d’e-mails sortants.

Étape 11 : Configurer le plugin de mot de passe dans Roundcube

Roundcube comprend un plugin de mot de passe qui permet aux utilisateurs de modifier leurs mots de passe depuis l’interface de messagerie Web

Modifiez le fichier config.inc.php.

Commande :

sudo nano /var/www/roundcube/config/config.inc.php

Assurez-vous que le plugin password est dans la liste des plugins à la fin de ce fichier. L’ordre des plugins n’a pas d’importance.

Commande :

$config['plugins'] = array('acl', 'additional_message_headers', 'password', .....);

Enregistrez et fermez le fichier.
Cependant, nous devons configurer ce plugin avant qu’il ne fonctionne.
Exécutez la commande suivante pour copier le fichier de configuration du plug-in de mot de passe distribué dans un nouveau fichier.

Commande :

sudo cp /var/www/roundcube/plugins/password/config.inc.php.dist /var/www/roundcube/plugins/password/config.inc.php

Modifiez le fichier de configuration du plugin de mot de passe.

Commande :

sudo nano /var/www/roundcube/plugins/password/config.inc.php

Recherchez la ligne suivante :

Commande :

$config['password_db_dsn'] = '';

Le plugin de mot de passe indique de se connecter à la base de données postfixadmin.
Si vous ne vous souvenez pas du mot de passe de votre base de données postfixadmin, vous pouvez le trouver dans le fichier /etc/dovecot/dovecot-sql.conf.ext.
Si votre mot de passe PostfixAdmin contient un guillemet simple, vous pouvez utiliser une barre oblique inverse (\’) to escape it.
Recherchez ensuite la ligne suivante.

Commande :

$config['password_query'] = 'SELECT update_passwd(%c, %u)';

Remplacez-le par ce qui suit.

Commande :

$config['password_query'] = 'UPDATE mailbox SET password=%P,modified=NOW() WHERE username=%u';

Je recommande d’activer un vérificateur de force de mot de passe pour empêcher les utilisateurs de définir des mots de passe faibles.
Allez au début de ce fichier, vous pouvez trouver la ligne suivante.

Commande :

$config['password_strength_driver'] = null;

Nous pouvons utiliser le pilote de force du mot de passe zxcvbn, alors remplacez-le par :

Commande :

$config['password_strength_driver'] = 'zxcvbn';

Ajoutez la ligne suivante dans ce fichier pour autoriser uniquement les mots de passe forts.

Commande :

$config['password_zxcvbn_min_score'] = 5;

Remarque :

Le paramètre $config['password_minimum_score'] ne fonctionne pas avec le pilote zxcvbn, alors laissez-le tranquille.

Vous pouvez également définir une longueur minimale pour le mot de passe. Trouvez la ligne suivante.

Commande :

$config['password_minimum_length'] = 0;

Remplacez-le par :

Commande :

$config['password_minimum_length'] = 8;

Rappelez-vous que nous avons utilisé le schéma de mot de passe ARGON2I dans le didacticiel PostfixAdmin.
Nous devons donc également configurer le plugin de mot de passe pour utiliser ARGON2I.

Recherchez les lignes suivantes dans le fichier.

Commande :

$config['password_algorithm'] = 'clear';

Par défaut, le mot de passe sera stocké sous forme de texte clair, modifiez la valeur comme suit pour utiliser l’algorithme de mot de passe intégré de Dovecot.

Commande :

$config['password_algorithm'] = 'dovecot';

Recherchez ensuite la ligne suivante, qui indique où se trouve le générateur de hachage de mot de passe de Dovecot.

Commande :

$config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.x

Remplacez-le par ce qui suit.

Commande :

$config['password_dovecotpw'] = '/usr/bin/doveadm pw -r 5';

Recherchez ensuite la ligne suivante, qui indique quel schéma de mot de passe sera utilisé.

Commande :

$config['password_dovecotpw_method'] = 'CRAM-MD5';

Remplacez-le par :

Commande :

$config['password_dovecotpw_method'] = 'ARGON2I';

Trouvez la ligne suivante.

Commande :

$config['password_dovecotpw_with_method'] = false;

Remplacez false par true.
Ceci ajoutera un préfixe {ARGON2I} au mot de passe haché, afin que vous reconnaissiez quel schéma de mot de passe est utilisé.

Commande :

$config['password_dovecotpw_with_method'] = true;

Enregistrez et fermez le fichier.

Étant donné que ce fichier contient le mot de passe de la base de données, nous devons autoriser uniquement l’utilisateur www-data à lire et à écrire dans ce fichier.

Commande :

sudo chown www-data:www-data /var/www/roundcube/plugins/password/config.inc.php
sudo chmod 600 /var/www/roundcube/plugins/password/config.inc.php

Les utilisateurs devraient désormais pouvoir modifier leurs mots de passe dans l’interface de messagerie Web Roundcube.

Roundcube plugin change password

Étape 12 : Comment configurer les messages d'absence du bureau

Nous pouvons utiliser le filtre tamis pour créer des messages de vacances/absence du bureau.

Accédez à Paramètres Roundcube -> Filtres.

Cliquez ensuite sur le bouton “create” pour créer un filtre.

  • Donnez à ce fichier un nom comme « absent du bureau ».
  • Les nouveaux filtres ne sont pas désactivés, vous pouvez donc laisser le bouton tranquille.
  • Dans le champ Portée, sélectionnez tous les messages.
  • Sélectionnez Répondre avec un message dans les paramètres Actions et saisissez le message qui sera automatiquement envoyé.
  • Entrez 1 dans la fréquence d’envoi des messages afin que la réponse automatique ne soit envoyée qu’une fois par jour pour chaque expéditeur. Si vous définissez cette valeur sur 7, la réponse automatique sera envoyée une fois tous les 7 jours pour chaque expéditeur.
  • Laissez les autres champs de texte vides.
  • Cliquez sur le bouton Enregistrer et vous avez terminé.
Roundcube message absence

Lorsque vous êtes de retour au bureau, vous pouvez basculer le bouton « Filtre désactivé » et cliquer sur le bouton Enregistrer pour désactiver ce filtre.

Étape 13 : Augmenter la limite de taille du fichier de téléchargement

Si vous utilisez PHP-FPM pour exécuter des scripts PHP, les fichiers tels que les images et les fichiers PDF téléchargés sur Roundcube ne peuvent pas dépasser 2 Mo.

Pour augmenter la taille limite de téléchargement, modifiez le fichier de configuration PHP.

Commande :

sudo nano /etc/php/7.4/fpm/php.ini

Trouvez la ligne suivante (ligne 846).

Commande :

upload_max_filesize = 2M

Modifiez la valeur comme ci-dessous.

information :

Notez que cette valeur ne doit pas être supérieure à la taille limite des pièces jointes définie par le serveur SMTP Postfix.

Commande :

upload_max_filesize = 50M

Recherchez ensuite la ligne suivante (ligne 694).

Commande :

post_max_size = 8M

Modifiez la taille maximale des données POST que PHP acceptera.

Commande :

post_max_size = 50M

Enregistrez et fermez le fichier.
Vous pouvez également exécuter les deux commandes suivantes pour modifier la valeur sans ouvrir manuellement le fichier.

Commande :

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php/7.4/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php/7.4/fpm/php.ini

Redémarrez ensuite PHP-FPM.

Commande :

sudo systemctl restart php7.4-fpm

Apache 2 définit également une limite de taille de fichier de téléchargement.

La taille maximale par défaut du fichier de téléchargement définie par Apache 2 est de 1 Mo.

Si vous utilisez Apache 2, modifiez le fichier de configuration Apache.

Commande :

sudo nano /etc/Apache2/site-enable/webmail.domain.tld.conf

Ajoutez la ligne suivante dans l’hôte virtuel SSL.

Commande :


LimitRequestBody 5242880

Enregistrez et fermez le fichier. Rechargez ensuite Apache 2 pour que les modifications prennent effet.
sudo systemctl restart Apache2

Il existe 3 plugins dans Roundcube pour le téléchargement de pièces jointes/fichiers :
• base de données_pièces jointes
• filesystem_attachments
• attachements_redondants

Roundcube ne peut utiliser qu’un seul plugin pour les pièces jointes/téléchargements de fichiers.
J’ai trouvé que le plugin database_attachment peut être sujet aux erreurs et vous causer des problèmes.

Pour le désactiver, modifiez le fichier de configuration Roundcube.

Commande :

sudo nano /var/www/roundcube/config/config.inc.php

Faites défiler jusqu’à la fin de ce fichier.

Vous verrez une liste des plugins actifs.

Supprimer database_attachments” de la liste.

Notez que vous devez activer au moins un autre plugin de pièce jointe, par exemple filesystem_attachments.

Commande :

// ----------------------------------
// PLUGINS
// --------- -------------------------
// Liste des plugins actifs (dans le répertoire plugins/)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Enregistrez et fermez le fichier.

Accès à tous les cours

  • Partie 9 : Bloquer les spams avec Postfix
  • Partie 10 : Bloquer les spams avec SpamAssassin
  • Partie 11 : Configurer Amavis et ClamAV sur un serveur de messagerie Ubuntu
  • Partie 12 : Sécuriser le serveur de messagerie contre le piratage avec un serveur VPN auto-hébergé
  • Partie 13 : Comment contourner les listes noires d’emails
  • Partie 14 : (optionnel) Activer et configurer Postscreen dans Postfix pour bloquer les spambots
  • Partie 15 : Protection automatique de l’IP et du domaine pour votre serveur de messagerie
Support

FAQ

FAQ

FAQ

Si vous rencontrez des erreurs, vous pouvez consulter les journaux d’erreurs du serveur Web sur
/var/log/apache2/roundcube_error.log (si vous utilisez Apache), également les journaux d’erreurs Roundcube dans
/var/www/roundcube/logs/ le répertoire.

Échec de la connexion au serveur de stockage

Si vous voyez l’erreur Échec de la connexion au serveur de stockage lorsque vous essayez de vous connecter à RoundCube, c’est probablement parce que

  • Le serveur Dovecot ne fonctionne pas.

    Vous pouvez redémarrer Dovecot avec sudo systemctl restart dovecot et vérifier son état avec systemctl status dovecot.

  • Vous utilisez un certificat TLS auto-signé. Roundcube nécessite un certificat TLS valide émis par une autorité de certification de confiance telle que Let’s Encrypt.
  • Votre certificat TLS a expiré.

    Vous pouvez renouveler le certificat TLS Let’s Encrypt avec sudo certbot renew, puis redémarrer Postfix et Dovecot (sudo systemctl restart postfix dovecot).

Vous pouvez également essayer d’ajouter une entrée DNS personnalisée dans /etc/hosts le fichier comme décrit à l’étape 8 sur le serveur Roundcube, afin que Roundcube puisse résoudre correctement le nom d’hôte du serveur de messagerie.

Impossible de charger le message depuis le serveur

Si vous voyez l’erreur « Erreur interne : impossible de charger le message depuis le serveur », c’est probablement parce que vous essayez d’ouvrir un e-mail supprimé (URL invalide).

Essayez d’accéder au domaine racine de la messagerie (mail.domain.tld) pour voir si cela fonctionne.

Le filtre de messages Sieve ne fonctionne pas ?

Si vous avez suivi l’étape 8 pour configurer le filtre tamis à la lettre, mais que vous ne parvenez toujours pas à le faire fonctionner, vous pouvez activer le débogage dans Dovecot pour découvrir ce qui ne va pas.

sudo nano /etc/dovecot/dovecot.conf

Ajoutez la ligne suivante à la fin de ce fichier pour activer le débogage dans Dovecot.

mail_debug=yes

Enregistrez et fermez le fichier. Redémarrez ensuite Dovecot.

sudo systemctl restart dovecot

Ensuite, envoyez un e-mail test à l’adresse e-mail de votre domaine et ouvrez le fichier journal de messagerie.

sudo nano /var/log/mail.log

Vous pouvez trouver des informations de débogage pour le filtre de messages Sieve. Par exemple, j’ai constaté que Dovecot n’était pas en mesure d’exécuter mon script Sieve.

Jan 10 11:35:24 mail dovecot: lmtp(alain@domain.tld) Debug: sieve: Aborted running script `/var/vmail/domain.tld/alain/.dovecot.svbin’Il s’avère que mon filtre Sieve comporte trop de règles et que certaines d’entre elles sont en conflit les unes avec les autres. Je supprime ces règles contradictoires et cela fonctionne à nouveau.

Échec de la recherche temporaire (Code : 451)

Si vous rencontrez cette erreur lorsque vous essayez d’envoyer un e-mail dans Roundcube, il s’agit probablement d’un problème avec votre configuration Postfix. Par exemple, certaines personnes peuvent avoir l’erreur suivante dans le fichier /var/log/mail.log.

warning: connect to pgsql server localhost: connection to server at “localhost” (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user “postfixadmin”?connection to server at “localhost” (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user “postfixadmin”?Cela signifie que votre authentification par mot de passe pour la base de données Postfixadmin ne fonctionne pas.

Comment mettre à niveau Roundcube

C’est très simple. Par exemple, voici comment mettre à niveau vers Roundcube 1.5.3 après sa sortie.

Téléchargez la dernière version de Roundcube dans votre répertoire personnel.

wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz

Extrayez l’archive.

tar -xzvf roundcubemail-1.6.6-complete.tar.gz

Changez le propriétaire en www-data.

sudo chown www-data:www-data roundcubemail- 1.6.6 / -R

Exécutez ensuite le script d’installation.

sudo roundcubemail- 1.6.6 /bin/installto.sh /var/www/roundcube/Une fois cela fait, connectez-vous au webmail Roundcube et cliquez sur le bouton À propos pour vérifier quelle version de Roundcube vous utilisez.