Ce billet décrit comment installer un Serveur de Messagerie IMAP C'est à dire un serveur autonome en interne dans un réseau local. un serveur permettant de récuperer tous les mails de tous vos comptes (yahoo, free, wanadoo ...) Suppressions des spams...

Il est possible d'installer un serveur de messagerie, au sein même de son réseau local, et par conséquent s'envoyer des mails en interne.

Pour Commencer nous allons aborder Postfix. C'est un serveur de messagerie très puissant et très utilisé...

commençons par installer postfix sur notre distribution préférée.

sudo apt-get install postfix

Une fois installé interessons nous au fichier principal de config de postfix

sudo vi /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific:  Specifying a file name will cause the first # line of that file to be used as the name.  The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = mail.appart.lan alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = pctest.appart.lan, appart.lan, localhost.appart.lan, localhost relayhost = mynetworks = 127.0.0.0/8 192.168.1.0/24 mailbox_command = /usr/bin/procmail -Y -a $DOMAIN mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all home_mailbox = Maildir/ ##Integration de amavisNew ##content_filter = smtp-amavis:127.0.0.1:10024

Quelques explications:

myhostname = vous l'avez devinez c'est le nom de votre serveur mail... correspondant à l'entrée MX que vous avez configuré dans votre DNS perso ou autre... mydestination : ceci est la concordance des domaines mynetworks = Permet de donner accès aux différents réseaux à votre serveur, ajoutez votre IP extérieure si votre serveur n'est pas sur le même réseau que votre PC home_mailbox = Maildir/ : Ceci est important ! Nous choisissons le format Maildir en accord avec le serveur IMAP ! Vous ne pourrez pas recevoir vos mails par IMAP si cette ligne n'est pas ajoutée au fichier de configuration de Postfix.

Nous verrons le reste plus tartd.

Laissons pour l'instant postfix et interessons nous au protocole IMAP: selons notre brave Wikipedia : Internet Message Access Protocol (IMAP) est un protocole utilisé par les serveurs de messagerie électronique, fonctionnant pour la réception.

Ce protocole permet de laisser les e-mails sur le serveur dans le but de pouvoir les consulter de différents clients e-mails ou webmail. Il comporte des fonctionnalités avancées, comme les boîtes aux lettres multiples, la possibilité de créer des dossiers pour trier ses e-mails… Le fait que les messages soient archivés sur le serveur fait que l'utilisateur peut accéder à tous ses messages depuis n'importe où sur le réseau et que l'administrateur peut facilement faire des copies de sauvegarde.

c'est un protocole beaucoup plus élaboré que pop.. C'est pourquoi il est interessant de l'utiliser...

Et pourquoi pas essayé plus tart de creer un webmail, permettant d'acceder de n'importe ou à son propre serveur de méssagerie ... Ouaaah la classe !!!

Bref on verra ca plus tard, commencons par installer les outils IMAP.

sudo apt-get install courier-imap

Le fichier de configuration de courier-imap se situe dans /etc/courier et se nomme imapd :

Seulement un point nous intéresse dans cette configuration : le MAILPATH (ou MAILDIRPATH), configurez-le comme suit : MAILPATH = Maildir

Retournez dans le dossier de votre utilsateur et tapper :

maildirmake Maildir

Ceci a pour but de creer une boite au lettre complet chez un utilisateur avec la simple commande maildirmake.

Il faut savoir que quand on crée un serveur de messagerie, il faut creer un utilisateur par boite mail...

par exemple j'ai creer un utilisateur pctest, son addresse email sera donc pctest@appart.lan

redemmarer les differents services...

A partir de là votre serveur est deja operationnel... Vous n'avez qu'a le tester en configurant votre logiciel de messagerie préferée. n'oublier pas qu'il s'agit d'un serveur imap, et renseignez l'ip de votre serveur quand on vous demande le serveur smtp

Procmail

Procmail est un outil permettant principalement de filtrer des messages électroniques . Il est très puissant et ses capacités de filtrage lui permettent de délivrer des courriers dans différentes boîtes aux lettres, de les renvoyer, voire d'effectuer n'importe quelle action en fonction du filtre désigné.

Procmail fonctionne grâce à un système de règles, qu'il parcourt les unes après les autres, afin de déterminer si le message qu'il traite satisfait à une règle en particulier, et exécute l'action associée à la règle trouvée, le cas échéant. sudo apt-get install procmail

Pour chaque utilisateur on va donc creer un fichier .procmailrc qui va définir les filtres à appliquer. je rajoute donc le fichier .procmailrc dans le dossier de mon utilisateur pctest.

touch .procmailrc

voici un de mes .procmail

# Prelimiaries SHELL=/bin/bash MAILDIR=$HOME/Maildir/ DEFAULT=$MAILDIR ORGMAIL=$MAILDIR LOGFILE=/var/log/procmailrc.log VERBOSE=yes LOGABSTRACT=all ANOMY=/usr/anomy         :0fw         | /usr/anomy/bin/sanitizer.pl /usr/anomy/anomy.conf         :0fw         * < 256000         | spamassassin         :0:         * ^X-Spam-Status: Yes         $MAILDIR/pourriels/         # Accept all the rest to default mailbox         :0

Installation de spam assassin.

SpamAssassin est un logiciel merveilleux disponible sur de nombreuses stations. C'est un tueur de Spam comme il se définit lui-même.

sudo apt-get install spamassassin

Rendez vous alors dans le fichier /etc/spamassassin/local.cf

# Combien de fois le message devra-t'il être marqué pour être reconnu comme du spam required_hits 4.0 # Doit-on changer le sujet du message considéré comme spam (0=non / 1=oui) rewrite_subject 1 # Texte à rajouter devant l'intitulé du message si le «rewrite_subjet» est activé subject_tag *****SPAM***** # Encapsuler le spam dans le message comme une pièce attachée (0=non / 1=oui) report_safe 1 # Use terse version of the spam report use_terse_report 0 # Utilisation du protocole de Bayes use_bayes 1 # Activation de l'auto-apprentissage Bayesien auto_learn 1 # Autoriser les préférences des utilisateurs (0=non / 1=oui) : peut être considéré comme un # trou de sécurité par certains administrateurs... allow_user_rules 0 # Activer ou pas les agents de contrôles extérieurs (0=non / 1=oui) skip_rbl_checks 0 use_razor2 1 use_dcc 0 use_pyzor 0 # Les mails dont le code pays se termine par le suffixe suivant ne sont pas considérés par défaut comme du spam ok_languages fr # Chaque système d'exploitation utilise un type de «locales» (encodage de caractères qui lui est propre) # selon la région dans laquelle il se situe (c'est en fait l'utilisateur qui définit ses locales lors de l'installation) ok_locales fr en es it be blacklist_from *.lifescript.com

Vous pouvez ainsi définir notamment le score minimal à atteindre pour que le mail soit considéré comme spam. Les whites lists et blacklist Ce fichier défini les préférences pour tous les utilisateurs, si vous voulez affiner en fonction de chaque utilisateurs, il faudra modifier le fichier ~/.spamassassin/user_prefs

FETCHMAIL

C'est bien joli tout ca, mais vous ce que vous souhaiter c'est aussi récuperer vos mails de l'exterieurs, qui sont dejà stockés sur les différents serveurs smtp de vos fournisseur de messagerie... car le vrai spam il vient surtout de là Il faut donc un outil qui permette de se connecter sur vos différentes boites, rappatrie les mails. Pour cela fetchmail est là :

sudo apt-get install fetchmail

il suffit ensuite de creer pour chaque utilisateur un fichier .fetchmailrc dans son repertoire de connexion.

sudo touch ~.fetchmailrc

Voici un exemple de .fetchmailrc

## fai : Yahoo poll pop.mail.yahoo.fr protocol pop3 user bart is pctest password pass ##fai : Free poll pop.free.fr protocol pop3 user bart is pctest password pass

voila à présent vous devriez avoir un serveur de messagerie qui reçoit les courriers de vos différents fournisseurs, les tries, les note et les distribue.

Par contre pour l'instant il faut executer fetchmail pour chaque utilisateur afin qu'il rapatrie les courriers de vos différents fournisseurs, c'est pourquoi je suis passé par une programmation CRON très facilement programmable par l'interface de Webmin.

Je ne me suis contenté pour l'instant que de traiter la reception de vos messages et non leur envoie sur des domaines hors locaux.

Je me sert de postfix comme ca, en utilisant les serveur smtp de mes différents FAI pour l'envoi de messages et de mon serveurs IMAP pour leur receptions.

Mais il est bien sur possible d'envoyer des messages directement par postfix, mais il faut entrer dans les detais de la création de domaines...

On verra ca plus tard ;-)

Il reste une grosse partie à faire sur ce tuto, mais qie je n'ai pas encore totalement maitrisé, c'est le passage des mails à l'antivirus avant leur trie par procmail.

Ainsi on aura des mail scanné trié et distribué, et tout ca gratuit .... :-)