SquirrelMail
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 :
Pour mettre en marche un service (exemple avec apache) :
Pour faire en sorte qu'à chaque démarrage de votre poste, le service Apache fonctionne :
Il faut notamment veiller à bien lancer le service imap, dépendant de xinetd :
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 :
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 :
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) :
chgrp apache /var/squirrel/session
chown apache /var/squirrel/session
chmod 730 /var/squirrel/session
Redémarrer le serveur Apache :
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 :
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 :
15 23 * * * /root/rm_attachement.sh
le fichier rm_attachement.sh
, executable (chmod +x rm_attachement.sh
), contient les lignes suivantes :
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 :
Puis créer chaque utilisateur par l'instruction suivante :
Enfin définir le mot de passe pour chaque compte nouvellement créé :
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
:
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é
Copyright
Copyright © 15/01/2004, Laurent DUBETTIER-GRENIER
![]() ![]() ![]() ![]() |
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/ |