Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Reseau-message-squirelmail

SquirrelMail

par Laurent Dubettier-Grenier

Installer une interface graphique de messagerie SquirrelMail

Introduction

Vous souhaitez installer votre propre serveur de mail au sein de votre entreprise, équipé d'une interface web permettant à vos collaborateurs d'accéder et de gérer leur courrier électronique à distance ? C'est ce que rend possible SquirrelMail. Rapide et stable, facile à installer, extensible par plugins à volonté, il vous permettra de créer votre propre webmail.

Un webmail est une interface web permettant la lecture de votre courrier électronique. Vous avez certainement déjà utilisé ce type d'interface, si votre adresse électronique est hébergée par La Poste, par exemple. L'intérêt ? Pouvoir accéder de n'importe où à vos messages (chez vous, au travail, dans un cybercafé...). SquirrelMail n'est pas le seul webmail disponible : IMP, basé sur le projet Horde est une autre possibilité, très puissante, utilisée entre autres pour le webmail de Free. Mais SquirrelMail est beaucoup plus simple à installer, configurer et étendre que IMP. Il est de plus soutenu par une large communauté francophone.

L'objet de cet article et d'expliquer la procédure d'installation et de configuration d'une interface graphique de messagerie basée sur SquirrelMail, sur un serveur Linux Mandrake 9.2, au sein d'un réseau local d'entreprise. Le hostname du serveur est mail.exemple.net, son adresse IP 192.168.0.1. Pour configurer correctement ce qui suit, il faut être connecté au serveur en tant qu'administrateur (root). Cet article ne gère pas tous les éventuels problèmes de sécurité liés à la mise en place de ce service.

Installation

Pour installer SquirrelMail, il faut un serveur Linux, sur lequel sont installés, entre autres : Apache2, Apache2-mod_php, php-ini, Apache2-mod_ssl, imap, postfix, perl, xinetd, ispell. L'installation de Perl permet de configurer ultra-rapidement squirrelMail grâce à une interface développé dans ce langage, et ispell permet le fonctionnement correct du correcteur orthographique squirrelspell intégré. MySQL n'est pas requis, sauf pour certains plugins. Enfin pour un fonctionnement correct, les navigateurs des postes qui utiliseront votre webmail doivent accepter les cookies.

Vous devez avoir les services httpd, postfix, xinetd, imap activés.
Pour visionner les services fonctionnant :

# chkconfig --list | less

Pour mettre en marche un service (exemple avec apache) :

# service httpd start

Pour faire en sorte qu'à chaque démarrage de votre poste, le service Apache fonctionne :

chkconfig apache on

Il faut notamment veiller à bien lancer le service imap, dépendant de xinetd :

# chkconfig imap on
service xinetd restart.

Php

Premièrement, vérifier que PHP est installé et fonctionne correctement en créant un fichier de test dans le répertoire /var/www/html :
vi phpinfo.php
Insérer les instructions php suivantes dans ce fichier :

<?
phpinfo();
 ?>

Puis tester le fonctionnement de php :

# lynx http://127.0.0.1/phpinfo.php

Vous devez obtenir une page donnant les caractéristiques complète de votre installation de PHP et de ces modules additionnels. Si cela fonctionne correctement, vous pouvez effacer le fichier phpinfo.php.

Il faut ensuite configurer /etc/php.ini, notamment :

session.use_cookies = 1
file_uploads = On (pour autoriser les fichiers attachés)
upload_max_filesize = 2M (règle la taille maxi des fichiers attachés)
register_globals=off (il est placé par défaut sur On par la distribution Mandrake)
expose_php = Off (sécurité : n'expose pas le fait que votre serveur héberge PHP)

Le paramètre session.save_path doit pointer vers un répertoire lisible uniquement par le serveur web (/var/squirrel/session par exemple) :

mkdir -p /var/squirrel/session
chgrp apache /var/squirrel/session
chown apache /var/squirrel/session
chmod 730 /var/squirrel/session

Redémarrer le serveur Apache :

service httpd restart

SquirrelMail

Pour installer SquirrelMail, il faut télécharger la dernière version (squirrelmail-1.4.2.tar.gz : 2.74 Mo), la décompresser dans un répertoire lisible par le serveur web (/var/www/html/ par exemple), changer le nom du répertoire (mv squirrelmail-1.4.2 squirrelmail), créer les deux répertoires de stockage des données et des fichiers joints :

mkdir -p /var/squirrel/data
chown apache /var/squirrel/data
chgrp apache /var/squirrel/data
mkdir -p /var/squirrel/attachement
chgrp apache /var/squirrel/attachement
chmod 730 /var/squirrel/attachement

Ceci cause un problème : si quelqu'un prépare un mail avec pièce jointe, mais interromps son action avant de l'expédier, les pièces jointes resteront éternellement dans le répertoire /var/squirrel/attachement. Il faut donc prévoir une tâche cron qui supprime l'ensemble des fichiers de ce répertoire à intervalle régulier, en espérant que personne n'est en train d'envoyer une pièce jointe au même moment... Voici un exemple permettant de supprimer tous les jours à 23H15 le contenu du répertoire /var/squirrel/attachement :
éditer le fichier crontab et ajouter la ligne :

# crontab -e
15 23 * * * /root/rm_attachement.sh

le fichier rm_attachement.sh, executable (chmod +x rm_attachement.sh), contient les lignes suivantes :

cd /var/squirrel/attachement
rm -f *

Puis il faut alors configurer squirrelmail soit manuellement en renommant le fichier config_default.php en config.php (répertoire /var/www/html/squirrelmail/config) puis en l'éditant pour modifier ses paramètres, soit, beaucoup plus convivial, en utilisant le petit script perl conf.pl situé dans ce même répertoire (nécessite que le paquetage perl soit installé). Pour le lancer : ./conf.pl (point slash conf.pl). Un menu comportant 9 options apparaît, qui permet de configurer complètement SquirrelMail. Quelques modifications à effectuer :

  • Organization Preferences / Default Language : remplacer en_US par fr_FR
  • Server Settings / Domain : exemple.net
  • General Options / Data Directory : /var/squirrel/data
  • General Options / Attachment Directory : /var/squirrel/attachement
  • Themes : pour choisir celui qui vous plaît !
  • Plugins : pour installer un plugins, parmi ceux disponibles (Available Plugins)
  • S sauve ces modifications, Q quitte l'application de configuration.

Puis, à partir d'un navigateur sur un poste distant, se rendre à l'url http://192.168.0.1/squirrelmail/ ou http://mail.exemple.net/squirrelmail
si vous avez un serveur DNS correctement configuré. L'interface de squirrelmail apparaît.

Remarque : Si vous n'avez pas de serveur DNS, avec un poste Windows distant, il faut configurer le fichier hosts situé dans le répertoire C:\WINNT\SYSTEM32\DRIVERS\ETC , et rajouter la ligne : 192.168.0.1 mail.exemple.net. Sur un poste Linux distant, il faut rajouter la même ligne dans le fichier /etc/hosts.

Plugins

Une fois que tout est installé et en état de fonctionnement, vous aurez peut-être envie d'étendre les fonctionnalités de votre interface graphique de messagerie. Pour cela, il faut installer un ou plusieurs plugins, et le choix est vaste... Il en existe plus de 170 différents ! Par défaut, 16 plugins sont déjà installés (mais non activé !) :

  • Abook_take : pour récupérer facilement l'adresse de l'expéditeur d'un mail dans votre carnet d'adresse.
  • Administrator : pour administrer à distance la configuration de SquirrelMail.
  • Bug_report : pour reporter facilement un bug à l'équipe de développement.
  • Calendar : un calendrier simple.
  • Delete_move_next : pour effacer et déplacer facilement vos mails.
  • Filters : pour filtrer vos mails (antispam)
  • Fortune : pour insérer une devise dans vos mails.
  • Info : pour dépanner le serveur IMAP (ne pas activer en usage normal !)
  • Listcommands : ajoute une ligne à tout mail en provenance d'une mailing-list, permettant notamment de se dés-inscrire ou de visionner les archives de la mailing-list.
  • Mail_fetch : pour récupérer vos mails sur un serveur pop.
  • Message_details : pour accéder à la source du mail reçu.
  • Newmail : ajoute une musique vous signalant un nouveau message reçu.
  • Sent_subfolders : pour gérer les sous répertoires.
  • Spamcop : pour rapidement signaler à spamcop.net un spammeur.
  • Squirrelspell : un dictionnaire basé sur ispell.
  • Translate : Envoi votre message vers un serveur de traduction en une autre langue.

Pour installer un plugin c'est plus ou moins simple : certains requièrent l'installation de paquetages supplémentaires pour fonctionner (serveur de base de données MySQL, par exemple), d'autres s'installent en quelques instants. Par exemple, le plugin nommé "Show Username and IP" permet d'afficher l'adresse IP et le nom d'utilisateur de la personne connectée au webmail. Pour l'installer, il suffit de télécharger le paquetage (show_user_and_ip-2.2.3.tar), de le copier dans le répertoire plugins (/var/www/html/squirrelmail/plugins), de le décompresser (tar xvf show_user_and_ip-2.2.3.tar) et de l'activer par l'intermédiaire de l'interface conf.pl (rubrique plugins). On peut difficilement faire plus simple !

Utilisateurs

Seul les utilisateurs ayant un compte sur votre serveur de mail auront la possibilité d'utiliser SquirrelMail. Pour créer un compte uniquement destiné à la messagerie, sans possibilité de connections sur votre serveur, il faut d'abord créer un groupe d'utilisateur dédié à l'utilisation de SquirrelMail :

groupadd squirrelmail

Puis créer chaque utilisateur par l'instruction suivante :

useradd -c "nom_utilisateur ou commentaire" -s /bin/false -g squirrelmail nom_utilisateur

Enfin définir le mot de passe pour chaque compte nouvellement créé :

passwd nom_utilisateur

Pour tester le fonctionnement, essayer d'envoyer des mails à un autre compte et à vous même. Utiliser d'abord une adresse mail du type utilisateur@mail.exemple.net.

Postfix

Pour utiliser une adresse du type utilisateur@exemple.net, il faut configurer Postfix. Sinon, lorsque machin@mail.exemple.net envoie un mail à truc@mail.exemple.net, l'adresse de réponse est machin@exemple.net. Si truc essaie de répondre à machin, Postfix ne peut envoyer la réponse. Pour que cela fonctionne correctement, il faut rajouter (ou décommenter) les lignes suivantes du fichiers /etc/postfix/main.cf :

myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, $mydomain

Conclusion

Et voilà, grâce à SquirrelMail, en quelques dizaines de minutes, vous avez maintenant un serveur de mail équipé d'une interface de type webmail complète ! Il n'y a plus maintenant qu'à convaincre votre hiérarchie à acheter le serveur nécessaire à son installation, et à expliquer à vos collaborateurs comment utiliser l'interface de SquirrelMail...



@ Retour à la rubrique Réseau et sécurité

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Laurent DUBETTIER-GRENIER le 15/01/2004.

Copyright

Copyright © 15/01/2004, Laurent Dubettier-Grenier

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Affichages

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA