Gcolpart.com by reg

Configurer un serveur mail


News
Merci de me faire part de vos critiques, suggestions, questions ou remerciements sur howto@gcolpart.com

Attention, cette documentation est publiée dans l'espoir d'être utile mais SANS AUCUNE GARANTIE. Si vous désirez avoir un support professionnel, adressez vous à un professionnel des logiciels libres comme Evolix par exemple ;)

Les bases

Un serveur mail est un démon écoutant sur le port 25.

Envoyer un mail par telnet

$ telnet serveur 25
Trying 192.168.54.89...
Connected to serveur.
Escape character is '^]'.
220 serveur.dgcolpart ESMTP Postfix (Debian/GNU)
HELO serveur
250 serveur.dgcolpart
MAIL From: <test@domain.com>
250 Ok
RCPT To: <plouf@bingo.com>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Telnet est un super client mail ;)
.
250 Ok: queued as F20037DCAA
QUIT
221 Bye
Connection closed by foreign host.
Voir RFC 2821 : SIMPLE MAIL TRANSFER PROTOCOL
Bien sûr il vaut mieux ajouter des entêtes et souvent des règles sur les serveurs vous empêchent d'envoyer des mails anonymement.
Vous pouvez aussi vous amusez avec un serveur pop en faisant:
telnet serveur 110
user nom_utilisateur
pass mot_de_passe
Puis les commandes stat, retr n, dele n, last, list [n], rset, top n 1, noop, quit.
Un client mail comme Kmail, Mutt, Mozilla mail ou Outlook fait à peu près cela en un peu plus joli :)

Installation de postfix et configuration de base

En root, faire:
apt-get install postfix
Postfix est un MTA (mail transport agent): un serveur qui envoie et recoie les mail
-Postfix est donc capable d'envoyer un mail.
Pour cela, il suffit de configurer correctement votre MUA (mail user agent) client mail (kmail, mozilla mail, outlook, mutt ...) en indiquant dans la configuration appelée souvent "sending mail" la méthode: SMTP, le serveur: 192.168.1.1 (ou autre!) et le port: 25 (par défaut).
Pour envoyer un mail à l'extérieur, faites:
mail ext@erieur.com -s test [ENTREE]
test d'envoi [ENTREE]
. [ENTREE]
Cc: [ENTREE]
Et voilà, votre mail devrait être parti à ext@erieur.com
Attention, si vous n'avez pas d'IP fixe ni d'enregistrement MX, votre mail risque d'être rejeté par le serveur mail distant et vous recevrez un mail de MAILER-DEAMON vous disant "I'm sorry to have to inform you that the message returned below could not be delivred to one or more destinations". Mais si votre postfix est bien configuré, une majorité de serveurs mail accepteront vos courriels. Certains domaines comme aol.com ou netscape.net rejetteront peut-être vos messages si vous n'avez pas d'IP fixe, mais vous pouvez toujours configurer postfix pour qu'il utilise le serveur smtp de votre FAI.

-Mais surtout Postfix reçoit les mails.
Votre serveur mail est par exemple situé sur la machine 192.168.1.1 en local et roudoudou.dyndns.org sur internet.
Vous avez des utilisateurs UNIX nommés user1, user2, ...
Vous devez avoir (ou créer) un fichier d'alias /etc/aliases : ce fichier (si la conf de postfix l'utilise) permet de rediriger les mails d'un utilisateur UNIX vers un autre utilisateur UNIX. Par exemple, vous pouvez mettre ces lignes:
root: user1
user2 : user1
Ainsi, les mails envoyés à root@roudoudou.dyndns.org, user2@roudoudou.dyndns.org arriveront à user1@roudoudou.dyndns.org
Apparemment, on peut rediriger des mails sans que l'utilisateur soit un utilisateur UNIX. On peut donc se créer des adresses mail telles que boss@roudoudou.dyndns.org ou encore waza@roudoudou.dyndns.org sans boss ou waza soient des utilisatuers UNIX !

Vous devez aussi avoir (ou créer) un fichier /etc/mailname contenant:
roudoudou.dyndns.org
Les mails à destination de user1@roudoudou.dyndns.org vont donc être stockés (provisoirement si vous installez procmail) dans /var/spool/mail/user1 qui est un lien symbolique vers /var/mail/user1

Voici un fichier de configuration minimal de postfix est /etc/postfix/main.cf On n'oublie pas de "recharger" postfix:
/etc/init.d/postfix reload
Votre postfix doit etre opérationnel et vous pouvez déjà le tester en tapant:
mail user1 -s sujet [ENTREE]
voici le contenu de mon mail [ENTREE]
. [ENTREE]
Cc: [ENTREE]
Ensuite, user1 doit se loguer. Il faut se loguer réellement, par exemple faire:
su -user1
Et vous verrez apparaitre:
You have new mail
Et si vous tapez simplement
mail
Vous avez une petite interface vous permettant de lire vos mails
L'interface ressemble a cela:
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/user1": 5 messages 1 new 5 unread
 U  1 user2  Wed Apr  2 03:25   27/744   sujet
Cette commande lit les mails stockés dans le fichier /var/mail/user1
Une fois que vous les avez lus, ils seront stockés dans la "boite de réception" /home/user/mbox si vous quittez l'interface par:
quit
Mais si vous quittez par:
exit
les mails resteront dans /var/mail/user1 comme si vous n'avez pas lu vos messages
Vous pouvez éditer ces deux fichiers et voir clairement ce qu'est un mail (entetes, corps). Un nouveau mail n'est finalement que des lignes ajoutées en fin de ces fichiers !

Nous allons maintenant mettre des restrictions sur les clients et posteurs, grâce au fichier main.cf

Configuration avancée de Postfix

Postfix est à la fois simple et extrêmement puissant.
Le site officiel postfix.org traduit en francais sur http://x.guimard.free.fr/postfix vous permettra d'apprécier et de tester toutes ses fonctionnalités.
Je voudrais ici m'attacher à quelques fonctionnalités intéressantes: le scan des mail avec un anti-virus, la restriction de votre serveur aux hotes connus pour empecher les spammeurs de l'utiliser notamment et anfin le rejet direct des spams.
Voici mon fichier de configuration plus poussé et commenter mon main.cf et mon master.cf
Pour éviter les spams, une liste noire est mise en permance à jour sur: http://basic.wirehub.nl/spamlist-extended.txt J'utilise un script qui vas chercher cette liste puis la place en tant que /etc/postfix/access
Le script est diponible ici. Pour utiliser ce script, n'oubliez pas de faire:
#chmod +x spam
#./spam
Cela prend un petit moment car il faut le temps de générer la base de données access.db
Ce script nécessite d'avoir l'utilitaire wget d'installé.
Je vous conseille de faire tourner ce script à intervalles régulier grâce à cron. Par exemple pour le faire tourner tous les matins à 4h, faites:
#crontab -e
Puis ajouter cette ligne:
0 4 * * * root /chemin_du_script/spam
Et le tour est joué!
Merci à ptitlouis pour cette idée.

Installer un anti-virus pour protéger les pauvres petits PC sous Windows


Clamav, un antivirus sous Linux.
Si vous êtes sous debian stable, vous devez ajouter les sources de Debian unstable dans votre sources.list:
deb-src http://ftp.fr.debian.org/debian unstable main non-free contrib
Ensuite, faire en root:
apt-get update
Puis si nécessaire:
apt-get install dpkg-dev
Ce qui installera notamment make patch et binutils.
Ce qui installe des outils supplémentaires pour manipuler les paquets Debian.
Et installer les paquets suivants pour clamav:
debconf-utils debhelper defoma dialog file gs gs-common gsfonts html2text libc6-dev libfreetype6 libgimpprint1 libkpathsea3 libpaperg libxaw7 tetex-base tetex-bin tetex-extra texinfo xfree86-common xlibs zlib1g-dev libbz2-dev libmilter-dev cpp cpp-2.95 gcc gcc-2.95
Si debconf vous demande quel type de papier utiliser, répondez a4 par exemple mais ce n'est pas important.
Ensuite on récupère les sources des paquets, on les recompile puis on installe:
# apt-get -b source ucf
# apt-get -b source clamav
# dpkg -i ucf*.deb libclamav1*.deb clamav*.deb clamav-base*.deb clamav-freshclam*.deb
Debconf vous demande: voulez-vous utiliser un script qui mettra a jour la base d'antivirus ? Répondre oui.
Voilà votre antivirus installé, vous pouvez maintenant vérifier qu'un fichier est "sain" par la commande:
Installer éventuellement clamav-deamon .deb pour avoir un deamon clamav.. clamscan fichier
Installons maintenant amavis, une interface entre votre antivirus et postfix :
Le site officiel d'amavis : http://www.amavis.org/
Nous allons d'abord tester la version amavis-0.3.12. Récupérons les sources. Ne pas oublier:
#apt-get install wget
#mkdir /var/compil
#wget http://www.amavis.org/dist/perl/amavis-0.3.12.tar.gz .
#tar zxvf amavis-0.3.12.tar.gz
#cd amavis-0.3.12
Voir le README et README.postfix pour voir les instructions...
Voici la liste des paquets qu'il faut impérativement installer avant d'installer amavis:
libio-stringy-perl libmailtools-perl libmime-base64-perl libnet-perl libtimedate-perl libunix-syslog-perl libconvert-uulib-perl libconvert-tnef-perl libcompress-zlib-perl libarchive-tar-perl libarchive-zip-perl bzip2 libbz2-1.0 lha unarj unrar unzip zoo
Et récupérer le paquet arc_521-1_i386.deb, par exemple ici
dpkg -i arc_521-1_i386.deb
Ajouter un utilisateur amavis:
#addgroup amavis
#adduser --disabled-password --home /var/amavis --ingroup amavis amavis
Puis on passe aux choses sérieuses:
./configure --enable-postfix --with-amavis-user=amavis
** Configuration summary for amavis 0.3.12 "2003-03-07": Install amavis as: ${exec_prefix}/sbin/amavis Configured for use with: postfix Configuration type: SMTP Use virus scanner(s): Clam Antivirus Scanner runs as: amavis Logging to syslog: yes Run-time directory: /var/amavis Quarantine directory: /var/virusmails Max. recursion depth: 20 Max. archive nesting depth: 3 Max. number of extracted files: 500 Add X-Virus-Scanned header: yes Display AMaViS credits: no Warn sender: yes Reports sent to: virusalert Reports sent by: postmaster
Ensuite:
make
make install
Bien vérifier que les répertoires /var/amavis et /var/virusmails appartiennent à amavis:
chown -R amavis.amavis /var/virusmails
chown -R amavis.amavis /var/amavis
Inclure cette ligne dans le main.cf:
content_filter = vscan:
Puis dans le master.cf:
vscan unix - n n - 10 pipe user=amavis argv=/usr/sbin/amavis ${sender} ${recipient}
localhost:10025  inet  n  -  n  -  -   smtpd -o content_filter=
Ensuite:
/etc/init.d/postfix restart
L'heure du test a sonné, vérifiez qu'il n'y a pas d'erreur après le redémarrage dans /var/log/mail.info puis envoyez un mail à un utilisateur quelconque en attachant un fichier virus.txt comprenant cette ligne qui est un faux virus:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Si tout se passe bien, l'utilisateur qui a envoyé le mail devrait recevoir un mail VIRUS IN YOUR MAIL de postmaster et virusalert recevra un mail VIRUS FROM user@domain.com de postmaster contenant les entetes du message infecté.
Pour un mail infecté envoyé de reg@gcolpart.dyndns.org à mguenou@192.168.1.1, les logs de /var/log/mail.info sont ici
A noter que si un mail est "sain", un champ est rajouté dans les entêtes:
X-Virus-Scanned: by AMaViS 0.3.12

Testons maitenant amavisd, une version d'amavis en deamon:
#mkdir /var/compil
#cd /var/compil
#wget http://www.amavis.org/dist/perl/amavisd-0.1.tar.gz .
#tar zxvf amavisd-0.1.tar.gz
#cd amavisd-0.1
Voir le README et README.postfix pour voir les instructions...
Voici la liste des paquets qu'il faut impérativement installer avant d'installer amavis:
binutils cpp cpp-2.95 gcc gcc-2.95 libc6-dev unrar unzip libarchive-tar-perl libarchive-zip-perl libcompress-zlib-perl libconvert-tnef-perl libconvert-uulib-perl libio-stringy-perl libmailtools-perl libmime-base64-perl libmime-perl libnet-perl libtimedate-perl libunix-syslog-perl bzip2 lha unarj zoo
Ensuite:
#./configure --enable-postfix --with-amavis-user=amavis
** Configuration summary for amavisd 0.1 "2003-03-11":

  Install amavis daemon as:   ${exec_prefix}/sbin/amavisd
  Install amavis client as:   ${exec_prefix}/sbin/amavis
  Daemon config file:         /etc/amavisd.conf
  Path to socket:             /var/amavis/amavisd.sock
  Configured for use with:    postfix
  Configuration type:         SMTP
  Use virus scanner(s):       Clam Antivirus
  Scanner runs as:            amavis
  Logging to syslog:          yes
  Run-time directory:         /var/amavis
  Warn sender:                yes
  Warn recipient(s):          no
  Notify admin:               yes
Puis on l'installe:
#make
Ajouter à /etc/postfix/main.cf:
content_filter = vscan:
Et ajouter à /etc/postfix/master.cf:
vscan unix - n n - 10 pipe user=amavis argv=/usr/sbin/amavis ${sender} ${recipient}
localhost:10025  inet  n  -  n  -  -   smtpd -o content_filter=
Faire attention à bien mettre ces lignes tout au début de la ligne (pas d'espace).
Les mails sont scannés et renvoyer vers le port 10025. Un telnet vers le port 10025 doit répondre comme un serveur Postfix (mais un nmap ne le découvrira pas)
Pour lancer le deamon, lancer le en tant qu'utilisteur amavis puis redémarrer postfix:
#su - amavis
$/usr/sbin/amavisd
$exit
#/etc/init.d/postfix restart

Testons maintenant amavisd-new:
#mkdir /var/compil
#cd /var/compil
#wget http://www.ijs.si/software/amavisd/amavisd-new-20030616-p4.tar.gz .
#tar zxvf amavisd-new-20030616-p4.tar.gz
#cd amavisd-new-20030616
Il faut lire très attentivement la procédure d'installation située dans le fichier INSTALL.
#mkdir /var/amavis /var/virusmails
#adduser --disabled-password --home /var/amavis --ingroup amavis amavis
#chown amavis /var/amavis /var/virusmails
#cp amavisd /usr/local/sbin/
#chown root /usr/local/sbin/amavisd
#chmod 755  /usr/local/sbin/amavisd
#cp amavisd.conf /etc/
#chown root /etc/amavisd.conf
#chmod 644  /etc/amavisd.conf
De plus, il faut installer notamment les paquets suivants:
libtime-hires-perl libdigest-md5-perl libmd5-perl spamassassin Et le paquet libnet-server-perl qui n'est pas en stable, il faut donc l'installer à la main:
Mettre les sources d'unstable dans son sources.list et faire
#apt-get -b -d source libnet-server-perl
#tar zxvf libnet-server-perl_0.85.orig.tar.gz
#cd Net-Server-0.85
#perl Makefile.PL
#make
#make test
#make install
Le paquet libnet-perl de stable ne convient donc faire:
#apt-get -b  source libnet-perl
#dpkg -i libnet-perl_1.12-1_all.deb
Il faut éditer le La commande
#/usr/local/sbin/amavisd debug
permet de s'assurer que cela fonctionne. Un telnet sur le port 10024 nous le démontrera. Il faut ensuite rajouter dans le /etc/postfix/main.cf:
content_filter = smtp-amavis:[127.0.0.1]:10024
Et dans le /etc/postfix/master.cf:
smtp-amavis unix -      -       y     -       2  smtp
    -o smtp_data_done_timeout=1200
    -o disable_dns_lookups=yes

127.0.0.1:10025 inet n  -       y     -       -  smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
Ensuite on démarre amavisd-new par la commande:
#/usr/local/sbin/amavisd
Et on redémarre postfix (attention, amavisd-new doit démarrer avant postfix):
#/etc/init.d/postfix restart
On s'assurera que tout va bien dans les logs notamment /var/log/mail.log
Une fois cela fait il faut faire un script de démarrage en s'assurant qu'il part bien avant Postfix et le tour est joué.
Je vous propose ce script amavisd-new à mettre dans son /etc/init.d/ puis:
#chmod +x /etc/init.d/amavisd-new
update-rc.d amavisd-new defaults
Attention, clamav n'est pas un primary scanner et donc vous verrez apparaître:
WARN: all primary virus scanners failed, considering backups
dans vos logs. Cela ne pose pas de problème particulier mais c'est parce que clamav n'est considéré que comme un antivirus de secours. Pour éviter cela, il faut installer un primary scanner. clamd, le daemon de clamav peut faire office de primary scanner. Pour cela, après avoir installé clamav-daemon, il faudra décommenter les lignes correspondantes dans votre amavisd.conf mais aussi crée un fichier /var/amavis/clamd appartenant à amavis.


fetchmail


Fetchmail est facultatif et sert à récupérer vos mails sur vos comptes pop par exemple pop.votre_fai.fr
On crée un fichier /etc/fetcmailrc qui définira les comptes à rapatrier.
Attention, les mails ne sont pas effacé sur le compte pop grâce à l'option keep (attention la ligne defaults no fetchall est bizarrement indispensable pour ne pas effacer les mails sur le serveur pop), pour les supprimer il suffira de remplacer keep par fetchall.
En temps normal, fetchmail récupère le courrier sur le serveur distant et l'adresse au serveur de courrier local, sur le port 25 (SMTP).
Cette méthode fonctionne car on a configuré le serveur de courrier Postfix sur notre machine, mais est relativement lourde car une fois passé à postfix, le courrier finira par passer dans les mains de procmail.
On peut éviter un saut supplémentaire en faisant passer le courrier directement de fetchmail à procmail.
Pour cela, il suffit d'ajouter l'option suivante dans le fichier de configuration:
mda "/usr/bin/procmail -Y -d %T"
Cela économise un peu vos ressources mais attention les mails ainsi récupérés ne passeront pas dans postfix et ne seront donc pas soumis aux filtres éventuels de postfix (antivirus, listes noires, etc..). Quand on sait que ce sont ces mails qui viennent des FAI, il est peu prudent de faire cela.
Finalement, on n'oublie pas de "recharger" fetchmail:
/etc/init.d/fetchmail reload


procmail


Procmail est un MDA (mail delivery agent): un programme qui se charge de distibuer les mails sur le réseau local.
Le rôle de procmail est de redistribuer le mail localement, c'est-à-dire qu'il les "ramasse" dans /var/mail/user et les "re distribue" là ou vous voulez: dans /home/user/mbox et d'autres boites si vous le voulez.
La configuration générale de procmail se trouvera dans le fichier /etc/procmailrc
Je vous recommande d'avoir des règles pour utiliser spamassassin, mais pour rejetter les mails sans sujets, les documents attachés aux formats Microsoft Office et même HTML. Je vous livre mon fichier de configuration générale de procmail /etc/procmailrc qui évite de recevoir les mails en double (surtout utile pour les mailing-list, renvoie des messages à l'envoyeur pour les messages indésirables et permet à l'utilisateur de trier ses mailing-list sans passer par ces règles.
Chaque utilisateur peut trier ses mailing-list dans son ~user/.procmailingslist et trier ensuite ses messages dans son ~user/.procmailrc
Je vous livre mon .procmailingslist et mon .procmailrc
On créera un fichier /etc/procmailrc qui définira où stocker les mails des users UNIX : ici ~/mbox
Il faut donc créer les boîtes à lettres des utilisateurs UNIX recevant leur courrier:
cd ~
touch mbox
touch emergency-inbox
mkdir mail
touch mail/blague
Des règles pour rediriger, filtrer,.. peuvent être écrites grâce à procmail.
Exemple pour rediriger les mails dont les sujets commencent par [blague] dans la boite aux lettres mail/blague:
:0:
* ^Subject:.*\[blague\]
mail/blague
Chaque utilisateur peu également s'ajouter ses propres règles dans le fichier ~/.procmailrc

Une commande pour envoyer des stats de procmail par mail à un utilisateur user et purger le fichier de configuration est:
/usr/bin/mailstat /var/log/procmail.log | mail -s "mailstats `date -I`" user
On pourra placer cette ligne dans le crontab (directement ou en script dans /etc/cron.weekly )

spamassassin

Un spam est un mail non désiré souvent à caractère publicitaire (pour gagner de l'argent, pour vendre des produits, sites pornos, etc...). Cela peu s'avérer très embêtant car les spammeurs recupèrent des adresses par de nombreux moyens (liste de diffusion, forums, auprès de votre FAI,..) et de nombreux mails non sollicités viendront encombrer votre lecture chaque jour. De plus, cela est contraire à une certaine philosophie d'Internet et des échanges numériques. Et si tout le monde appliquait les techniques pour rejeter les spams, ceux-ci finiraient surement par cesser.
En attendant, une bonne technique pour filtrer les spams est spammassassin. Il s'agit d'un script perl qui analyse les mails selon des critères et il attribue une note au mail. Par exemple, la présence des termes $$$, XXXX élèvera la note du mail. Ainsi plus un mail a une note élevée, plus ce mail aura de chance d'etre un spam !
Ensuite vous choisissez la "note assassineuse" au dessus de laquelle les spams seront filtrés. Au début, vous stockerez ces spams dans une boite temporaire pour vérifier que vous ne perdez pas de mails sollicités. Ensuite vous les effacerez si ca vous chante.
Bref, commencez par installer spamassassin.
Sous Debian GNU/Linux:
 apt-get install spamassassin
Ensuite, la configuration générale est dans /etc/spamassassin/local.cf ou il suffit de mettre cette ligne:
required_hits           5 
(où vous pouvez mettre la note que vous voulez, 5 par défaut)
Maintenant, vous pouvez filtrer vos mails grâce à la commande spamassassin (voir man spamassassin)
Pour filtrer tous les mails entrants, on va ajouter une règle procmail dans /etc/procmailrc:
:0fw
| spamassassin -P

:0:
* ^X-Spam-Status: Yes
$MAILDIR/mail/spam
La première règle filtre tous les mails et leur rajoute une entête X-Spam-Status
La seconde règle envoie tous les spams dans une boite créée au préalable, ici $MAILDIR/mail/spam
A noter que chaque utilisateur peut utiliser ses propres préférences de spamassassin avec un fichier ~/.spamassassin/user_prefs contenant par exemple:
required_hits         3
whitelist_from        mon_ami@internet.com
Ce qui ici aura pour effet de baisser sa "note tueuse" à 3 et de ne pas filtrer les mails de mon_ami@internet.com

Note: Il peut y avoir sous Woody un message ressemblant à:
Insecure dependency in mkdir while running setuid 
at /usr/share/perl/5.6.1/File/Path.pm line 137.
procmail: Program failure (70) of "spamassassin"
procmail: Rescue of unfiltered data succeeded
Ou sous Sarge, un message du type :
spamd[5756]: info: setuid to root succeeded
spamd[5756]: Still running as root: user not specified
with -u, not found, or set to root.  Fall back to nobody.
Une solution est de rajouter cette ligne dans son /etc/procmailrc:
DROPPRIVS=yes


Enfin il convient de noter que spamassassin se lance aussi en deamon, dans ce cas s'assurer de la présence de spamd et spamc (normalement compris dans le paquet spamassassin). Puis editer le fichier /etc/default/spamassassin et s'assurer de la présence de cette ligne, en changeant le 0 en 1:
ENABLED=1
Puis il suffit de démarrer le deamon spamd par:
/etc/init.d/spamassassin start
Ensuite, il suffit de remplacer dans /etc/procmailrc la ligne:
| spamassassin -P
par la ligne suivante:
| spamc
A noter que cette méthode génère une ligne ressemblant à cela:
Aug 14 23:27:07 serveur spamd[3601]: 
identified spam (5.4/5.0) for reg:1000 in 0 seconds.
C'est pratique car ainsi les spams apparaissent sur mailgraph (voir ci-dessous).

Un serveur IMAP

Pour consulter ses mails depuis un client mail, il suffit ensuite de configurer un serveur IMAP.
Le serveur IMAP peut ne pas être sur la même machine que le serveur mail. Il en existe plusieurs : courier-IMAP, uw-imap, cyrus-imap, dovecot, etc.
Pour ma part, j'utilise uw-imap, University of Washington IMAP. Vous le trouverez sur http://www.washington.edu/imap/
Avec Debian faire :
apt-get install uw-imapd
Vous aurez aussi besoin des packages libc-client2001 (librairie C-client pour accéder aux répertoires et messages au format MBOX, il existe un patch pour le format Maildir) et mlock (programme pour "locker" les boites mbox)
UW-imap n'a pas besoin de réelle configuration.
Note : pour utiliser uw-imapd sous sarge, il a été nécessaire début 2005 de créerun fichier /etc/c-client.cf contenant :
I accept the risk
set disable-plaintext nil
Il "sert" les boîtes mail des utilisateurs UNIX (et supporte SSL). Vous trouverez les fichiers /etc/pam.d/imap /etc/logcheck/ignore.d.server/uw-imapd le concernant. D'autre par, UW-imap est lancé avec le superserveur inetd. Voyez ces nouvelles lignes dans /etc/inetd.conf:
imap2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd
imap3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd
imaps stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd

Webmail

Pour faciliter l'accès à ses mails depuis n'importe quels endroits, on configurera un webmail qui permet l'accès à ses mails depuis un simple navigateur web.
J'utilise squirrelmail, voir http://www.squirrelmail-fr.org/. Sous Debian, faire: Afin de sécuriser notre connexion (soyons paranoïaque), installons également un serveur web securisé: apache-ssl.
apt-get install squirrelmail apache-ssl
Les paquets suivants s'installeront aussi : apache-common aspell libaspell10 libbz2-1.0 libexpat1 libltdl3 libmm11 libpspell4 mime-support openssl perl perl-modules php4 wwwconfig-common
On peut aussi aller chercher une version plus récente sur le site de squirrelmail, dans ce cas prenez bien garde d'avoir installé toutes les dépendances auparavant.
Au niveau de l'installation, il faut préciser qu'on ne veut utiliser squirrelmail qu'avec apache-ssl. Répondre également aux questions posées pour générer un certificat SSL; enfin ne pas oublier d'ajouter le support de php4 pour apache-ssl (debconf vous le proposera sous Debian).
Une fois cela terminé, il faut que vous démarriez le script de configuration de squirrelmail:
/etc/squirrelmail/conf.pl
Et mettez les paramètres de votre système en n'oubliant pas de spécifier le serveur IMAP que vous utilisez, uw-imap si vous avez suivi ce HowTo.
Ensuite squirrelmail est accessible à l'adresse https://votre_machine/squirrelmail
Libre à vous ensuite de créer des virtuals hosts webmail.votre_domaine.com mais cela ne concerne plus la configuration de squirrelmail...


Courbes de stats

Pour avoir des courbes de stats afin de surveiller votre activité mail, installons Mailgraph
Il s'agit d'un simple script en Perl. Ce paquet n'étant pas diponible pour l'instant pour Debian Woody, versions très utilisées aux niveaux des serveurs, je vais vous détailler l'installation de ce petit script sur la Woody:
Tout d'abord ce paquet nécessite certains autres paquets http://packages.debian.org/unstable/admin/mailgraph.html:
debconf libfile-tail-perl librrds-perl libgd-gif1 libpng2 librrd0 libtime-hires-perl apache

Ajoutez cette ligne à votre /etc/apt/sources.list:
deb-src http://ftp.fr.debian.org/debian unstable main non-free contrib
Ensuite placez vous en root dans un répertoire temporaire et faites:
apt-get -b source mailgraph
Notez que gcc, debhelper et dpkg-dev sont requis donc si nécessaire:
apt-get install gcc debhelper dpkg-dev
Ceci va vous recompiler votre paquet mailgraph avec votre version "woody" de perl.
Un paquet mailgraph_xx.deb est maintenant présent dans votre répertoire temporaire:
dpkg -i mailgraph_xx.deb
Vous répondez aux "messages debconf" par défaut. Ensuite ouvrez dans une fenetre de votre navigateur préféré :
http://votre_site/cgi-bin/mailgraph.cgi
Au bout de quelques minutes, les informations récoltées dans votre /var/log/mail.log apparaîtront...
Attention, néanmoins, l'utilisation de fetchmail peut poser des problèmes à cause des lignes qui apparaissent en francais dans /var/log/mail.log (la solution est de "franciser" /usr/sbin/mailgraph.pl en ajoutant les noms des mois en français..)

Liens :
http://x.guimard.free.fr/postfix
http://cjovet.free.fr/cours/postfix.htm

powered by Apache     powered by Debian     Valid XHTML 1.1     Valid CSS     ecrit avec Vim    
Copyright (c) 2002-2014 Gregory Colpart. Infogerance serveur