serveur_hebergement:serveur_mail:partie_6_roundcube

Ceci est une ancienne révision du document !


Partie 6 : Roundcube

A rédiger

Roundcube est un webmail, permettant donc d'accéder à vos mail et de pouvoir

3) Installation de RoundCube

Pour installer Roundcube, lancez la commande aptitude install roundcube roundcube-plugins. Une fenêtre va apparaître vous demandant si vous voulez configurer la base de donnée pour Roundcube. Répondez oui, puis choisissez “mysql” sur la fenêtre d’après et indiquez le mot de passe de l’administrateur MySQL. Il vous sera ensuite demandé un mot de passe de connexion à la base de donnée pour Roundcube. Soit vous en choisissez un, soit vous laissez vide pour qu’un mot de passe soit créé aléatoirement. Perso j’ai pris le second choix. 4) Configuration Apache

On va maintenant devoir configurer Apache pour pouvoir accéder à l’interface web de Roundcube. Ouvrez le fichier /etc/roundcube/apache.conf. Décommentez la ligne Alias /roundcube /var/lib/roundcube (supprimez le # devant la ligne). Cette ligne va permettre d’accéder à l’interface web de Roundcube en tapant votrenomdomaine/roundcube. Pour ma part j’ai modifié la ligne de redirection en remplaçant /roundcube par /webmail car je trouve plus intuitif d’accéder au webmail en tapant nomdomaine/webmail. Mais ce n’est absolument pas obligatoire.

 

Il ne reste plus qu’à redémarrer Apache avec la commande systemctl restart apache2.service.

Si vous vous rendez à l’adresse nomdedomaine/roundcube ou adresseip/roundcube si votre serveur n’a pas de nom de domaine rattaché (si vous avez comme moi remplacé /roundcube par /webmail il faut bien évidemment mettre webmail au lieu de roundcube dans l’adresse), l’interface web Roundcube va s’afficher. 5) Configuration Roundcube

Après avoir configurer Apache, on va configurer Roundcube. Ouvrez le fichier /etc/roundcube/config.inc.php . Si toutes vos adresses mail utilisent le même nom de domaine, par exemple toto.fr, ça va être chiant de rentrer à chaque fois dans le champ Server de Roundcube le nom de domaine toto.fr afin de se connecter. Pour remédier à ça, remplacez la ligne $config['default_host'] = ''; par $config['default_host'] = 'toto.fr';

C’est tout pour la configuration de Roundcube. Maintenant que nous pouvons accéder à nos mail via Roundcube, on va voir comment alimenter la base de donnée du filtre bayésien de Spamassassin via Roundcube. 6) Plugin markasjunk2

On va utiliser le plugin markasjunk2. Ce plugin permet de marquer des mails en spam ou ham manuellement en utilisant sa-learn et ainsi améliorer la base de donnée du filtre bayésien. Etant donnée que sur Debian 8 et 9 la version de Roundcube est respectivement la 1.1.5 et 1.2.3, nous allons prendre la version 1.10 du plugin (pour les versions plus récente il faut Roundcube 1.3).

Allez dans le répertoire /usr/share/roundcube/plugins et lancez la commande wget https://github.com/JohnDoh/Roundcube-Plugin-Mark-as-Junk-2/archive/1.10.zip. Puis lancez la commande unzip 1.10.zip . Enfin, lancez la commande mv Roundcube-Plugin-Mark-as-Junk-2-1.10/ markasjunk2 pour renommer le dossier.

Lancez la commande ln -s /usr/share/roundcube/plugins/markasjunk2 /var/lib/roundcube/plugins/markasjunk2 afin de créer un lien symbolique nécessaire à RoundCube.

On va maintenant activer le plugin. Ouvrez le fichier /etc/roundcube/config.inc.php et dans la partie

[pastacode lang=”bash” manual=”%24config%5B’plugins’%5D%20%3D%20array(%0A’archive’%2C%0A’zipdownload’%2C%0A)%3B” message=”” highlight=”” provider=”manual”/]

rajoutez “markasjunk2″. Vous devez avoir ceci après modification :

[pastacode lang=”bash” manual=”%24config%5B’plugins’%5D%20%3D%20array(%0A’archive’%2C%0A’zipdownload’%2C%0A’markasjunk2’%2C%0A)%3B” message=”” highlight=”” provider=”manual”/]

Passons à la configuration du plugin. Allez dans le répertoire /usr/share/roundcube/plugins/markasjunk2 . Lancez la commande mv config.inc.php.dist config.inc.php pour renommer le fichier de config puis ouvrez-le. C’est là qu’on va configurer le plugin pour qu’il utilise sa-learn, l’outil de Spamassassin servant à améliorer la base de donnée du filtre antispam. Vous allez devoir modifier plusieurs lignes :

  Remplacez la ligne $config['markasjunk2_learning_driver'] = null; par $config['markasjunk2_learning_driver'] = cmd_learn; pour activer le lancement de commande.
  Remplacez la ligne $config['markasjunk2_debug'] = false; par $config['markasjunk2_debug'] = true; . Cette modification est optionnelle mais c’est conseillé d’activer le mode debug pour pouvoir vérifier que le plugin fonctionne correctement avec Spamassassin
  Remplacez la ligne $config['markasjunk2_move_spam'] = false; par $config['markasjunk2_move_spam'] = true; . Cette modif aussi est optionnelle. Passer cette ligne à “true” permet de marquer les mail en tant que spam quand on les déplace du courrier entrant vers le dossier spam. Je trouve ça pratique.
  Remplacer la ligne $config['markasjunk2_move_ham'] = false; par $config['markasjunk2_move_ham'] = true; . Idem que la ligne précédente mais quand on déplace un mail du dossier spam vers le dossier courrier entrant.
  Remplacer la ligne $config['markasjunk2_spam_cmd'] = null; par[pastacode lang=”bash” manual=”%24config%5B’markasjunk2_spam_cmd’%5D%20%3D%20’sa-learn%20-D%20learn%2Cbayes%20-u%20amavis%20–dbpath%20%2Fvar%2Flib%2Famavis%2F.spamassassin%2F%20–cf%3D%5C’bayes_path%20%2Fvar%2Flib%2Famavis%2F.spamassassin%2Fbayes%5C’%20–prefspath%3D%2Fvar%2Flib%2Famavis%2F.spamassassin%2Fuser_prefs%20–spam%20%25f%20%3E%3E%20%2Fvar%2Fwww%2Flogs%2Fsa-learn.log%202%3E%261’%3B” message=”” highlight=”” provider=”manual”/]
  J’expliquerai cette ligne plus tard.
  Remplacer la ligne $config['markasjunk2_ham_cmd'] = null; par[pastacode lang=”bash” manual=”%24config%5B’markasjunk2_ham_cmd’%5D%20%3D%20’sa-learn%20-D%20learn%2Cbayes%20-u%20amavis%20–dbpath%20%2Fvar%2Flib%2Famavis%2F.spamassassin%2F%20–cf%3D%5C’bayes_path%20%2Fvar%2Flib%2Famavis%2F.spamassassin%2Fbayes%5C’%20–prefspath%3D%2Fvar%2Flib%2Famavis%2F.spamassassin%2Fuser_prefs%20–ham%20%25f%20%3E%3E%20%2Fvar%2Fwww%2Flogs%2Fsa-learn.log%202%3E%261’%3B” message=”” highlight=”” provider=”manual”/]
  J’expliquerai cette ligne plus tard également.

C’est tout pour ce fichier.

Maintenant lancer la commande mkdir /var/www/logs puis chown -R www-data:www-data /var/www/logs. La première commande sert à créer le dossier logs dans le répertoire /var/www et la seconde à rendre l’utilisateur www-data, qui exécute toutes les application web comme Roundcube, propriétaire de ce dossier. Pourquoi créer ce dossier ? C’est lier aux deux lignes que je n’ai pas expliquées. Passons donc aux explications.

$config['markasjunk2_spam_cmd'] et $config['markasjunk2_ham_cmd'] permettent d’indiquer quelle commande lancer quand on marque un mail, respectivement, en tant que spam et en tant que ham. Voyons comment elles sont composées :

  sa-learn correspond au binaire à exécuter. Comme dit précédemment, sa-learn est un outil de Spamassassin qui permet d’apprendre au filtre bayésien quels mails sont des spams et lesquels n’en sont pas
  -D learn,bayes : -D active le mode debug de sa-learn et learn,bayes indique quelle partie on veut en mode debug. J’ai seulement activé la partie apprentissage et les messages liés au filtre bayésien.
  -u amavis sert à indiquer qu’on veut lancer cette commande avec le profil de l’utilisateur amavis (c’est lui qui détient la base de donnée anti-spam)
  --dbpath /var/lib/amavis/.spamassassin/ indique dans quel répertoire se trouve la base de donnée anti-spam
  --cf=\'bayes_path /var/lib/amavis/.spamassassin/bayes\' indique où se trouve le filtre bayésien qui sert à tester les mails
  --prefspath=/var/lib/amavis/.spamassassin/user_prefs indique où se trouve le fichier de préférence à utiliser
  --spam %f et ---ham %f servent à marquer le mail sélectionné en tant que spam ou ham
  enfin, >> /var/www/logs/sa-learn.log 2>&1 sert à écrire les logs du mode debug dans le fichier /var/www/logs/sa-learn/log. C’est pour ça que je vous ai fait créer ce répertoire et l’ai rendu accessible à l’utilisateur www-data.

Si vous vous rendez sur Roundcube et vous connectez, vous remarquerez un bouton Pourriel si vous êtes dans les courriers entrants et Not junk si vous êtes dans le dossier spam. Il vous suffit de sélectionner un mail puis de cliquer sur ce bouton pour apprendre au filtre anti-spam que ce mail doit être considéré comme un spam ou comme un ham, selon le dossier dans lequel vous vous trouvez. Après avoir effectué cette action, vous trouverez dans le fichier /var/www/logs/sa-learn.log les logs liés à sa-learn avec à la fin un message comme celui-ci Learned tokens from 1 message(s) (1 message(s) examined) vous indiquant si le message a bien était examiné et si sa-learn a amélioré son algo avec ce mail. 7) Méthode Thunderbird

Maintenant que la première méthode est traitée, passons à la seconde. Avant de vous lancez dans cette méthode, il faut que vous ayez un serveur mail imap d’activé et configuré. Si vous avez suivi le tuto sur ISPConfig, vous devriez avoir tout ce qu’il faut d’installé. Il faudra penser à ouvrir les port imap (143 ou 993 suivant si vous utilisez le ssl ou non).

Sur votre gestionnaire de mail (Thunderbird ou autre), rajouter votre compte email en utilisant l’imap et non le pop3. Une fois le compte créé, via Thunderbird créez les dossiers Spam_sa-learn et Ham_sa-learn à la racine de votre compte mail. Vous pouvez changez les noms si vous le souhaitez. Vous devriez avoir ceci :

Sur votre serveur, rendez vous dans le répertoire /var/vmail/nomdedomaine/utilisateurmail/Maildir. Si l’adresse mail rajoutée sur Thunderbird était toto@memodugeek.info, le répertoire où aller serait /var/vmail/memodugeek.info/toto/Maildir. En tapant la commande ls -lah, vous verrez que deux dossier sont présents, .Spam_sa-learn et .Ham_sa-learn. Ces deux dossiers vont nous permettre d’indiquer à sa-learn que les mails contenus dans .Spam_sa-learn sont des ham qui aurait dû être classés en spam et que les mails contenus dans .Ham_sa-learn sont des spam qui aurait dû être classés en ham.

Tout d’abord il faut que l’utilisateur amavis, qui gère le filtrage des mail en utilisant Spamassassin, puisse avoir accès à ces dossiers. Pour commencer, on va mettre l’utilisateur amavis dans le groupe de vmail, le propriétaire du répertoire /var/vmail ainsi que de ses sous-dossier. Pour ce faire, tapez la commande addgroup amavis vmail.

Ensuite, on va modifier les droits du répertoire /var/vmail. De base, ce répertoire est accessible en lecture/écriture pour le propriétaire (vmail) et en lecture seule pour les utilisateurs faisant parti du groupe vmail. On va modifier ça pour que les utilisateurs membre du groupe vmail (donc amavis) puisse écrire dans ce répertoire, avec la commande chmod 775 -R /var/vmail/. On va également modifier les droits des deux dossiers que nous avons créés pour que tous les utilisateurs puissent écrire dedans. Toujours en étant dans le répertoire /var/vmail/nomdedomaine/utilisateurmail/Maildir tapez la commande chmod 777 -R .Spam_sa_learn/ .Ham_sa_learn/

Maintenant que ceci est fait, on va modifier le cron de l’utilisateur amavis. Le cron permet de planifier des tâches. Il permet par exemple de lancer une commande ou un script tous les jours à 17h45 (un exemple parmi d’autres). Tapez la commande sudo -u amavis crontab -e et choisissez nano si on vous pose la question. Rajoutez les lignes suivantes :

[pastacode lang=”bash” manual=”00%2000%20*%20*%20*%20if%20%5B%20%22%24(ls%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Spam_sa-learn%2Fcur%2F)%22%20%5D%3B%20then%20sa-learn%20-D%20learn%2Cbayes%20–spam%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Spam_sa-learn%2Fcur%2F%20%3E%3E%20%2Fvar%2Fwww%2Flogs%2Fsa-learn.log%202%3E%261%20%26%26%20rm%20-R%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Spam_sa-learn%2Fcur%2F*%3B%20fi%0A01%2000%20*%20*%20*%20if%20%5B%20%22%24(ls%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Ham_sa-learn%2Fcur%2F)%22%20%5D%3B%20then%20sa-learn%20-D%20learn%2Cbayes%20–ham%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Ham_sa-learn%2Fcur%2F%20%3E%3E%20%2Fvar%2Fwww%2Flogs%2Fsa-learn.log%202%3E%261%20%26%26%20rm%20-R%20%2Fvar%2Fvmail%2Fmemodugeek.info%2Ftoto%2FMaildir%2F.Ham_sa-learn%2Fcur%2F*%3B%20fi” message=”” highlight=”” provider=”manual”/]

Il faudra évidemment remplacer memodugeek.info et toto par votre nom de domaine et votre utilisateur mail.

Si vous n’avez pas suivi la méthode utilisant Roundcube, il vous faut lancer la commande mkdir /var/www/logs puis chown -R www-data:www-data /var/www/logs. La première commande sert à créer le dossier logs dans le répertoire /var/www et la seconde à mettre l’utilisateur www-data, qui exécute toutes les application web comme Roundcube, propriétaire de ce dossier. Ensuite, lancez la commande sudo -u www-data touch /var/www/logs/sa-learn.log pour créer le fichier de log.

Ensuite, lancez la commande chmod 777 -R /var/www/logs/* afin que les fichiers de logs soient accessibles à tous les utilisateurs. Cette dernière commande doit être lancée même si vous avez suivi la méthode Roundcube.

Expliquons un peu ces lignes :

  00 00 * * * et 01 00 * * * signifient que ces lignes vont être exécutées tous les jours à 00:00 et 00:01
  if [ "$(ls /var/vmail/memodugeek.info/toto/Maildir/.Spam_sa-learn/cur/)" ]; then est une condition pour que le reste de la commande s’exécute. Cette condition est que le répertoire /var/vmail/memodugeek.info/toto/Maildir/.Spam_sa-learn/cur/ ne soit pas vide. Ca évitera les remontées de message d’erreur suite à la tentative de supprimer le contenu d’un répertoire vide.
  sa-learn correspond au binaire à exécuter. Comme dit précédemment, sa-learn est un outil de Spamassassin qui permet d’apprendre au filtre bayésien quels mails sont des spams et lesquels n’en sont pas
  -D learn,bayes : -D active le mode debug de sa-learn et learn,bayes indique quelle partie on veut en mode debug. J’ai seulement activé la partie apprentissage et les messages liés au filtre bayésien.
  --spam var/vmail/memodugeek.info/toto/Maildir/.Spam_sa-learn/cur/ indique que sa-learn va scanner les mails contenus dans le dossier .Spam_sa-learn (qui sont en fait stockés dans le sous-dossier cur) et rajouter dans sa base de donnée que ses mails doivent être considérés comme du spam.
  --ham var/vmail/memodugeek.info/toto/Maildir/.Ham_sa-learn/cur/ indique que sa-learn va scanner les mails contenus dans le dossier .Ham_sa-learn (qui sont en fait stockés dans le sous-dossier cur) et rajouter dans sa base de donnée que ses mails doivent être considérés comme des mail légitimes (ham)
  >> /var/www/logs/sa-learn.log 2>&1 sert à écrire les logs du mode debug dans le fichier /var/www/logs/sa-learn/log. C’est pour ça que je vous ai fait créer ce répertoire.
  && rm -R /var/vmail/memodugeek.info/toto/Maildir/.Ham_sa-learn/cur/* (et la seconde avec .Spam_sa-learn) supprime les mails contenu dans les deux dossiers une fois qu’ils ont été analysés par sa-learn.
  fi indique la fin de la condition.

Si vous recevez un spam qui n’a pas été classé en spam, déplacez-le dans le dossier Spam_sa-learn et à minuit, il sera analysé par sa-learn afin de lui apprendre que ce mail est un spam et il sera ensuite supprimé. Si vous recevez un mail légitime qui a été classé en spam, déplacez-le dans le dossier Ham_sa-learn et à minuit une, il sera analysé par sa-learn afin de lui apprendre que ce mail n’est pas un spam et il sera ensuite supprimé. ATTENTION : si c’est un mail important que vous souhaitez conserver, mettez une copie du mail dans le dossier Ham_sa-learn, sinon vous perdrez ce mail !!!

Si vous avez plusieurs adresses mails, il vous suffit de réutiliser la même méthode. Dans le crontab, décalez les heures de lancement de commande d’une minute chaque fois que vous rajoutez des lignes.

Vous pourriez laisser un commentaire si vous étiez connecté.
  • serveur_hebergement/serveur_mail/partie_6_roundcube.1673603520.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)