La Messagerie







1. Sendmail minimum à connaitre.
1bis : sendmail.cf
2. Relais POP3
3. Lutte antispam
4. Lutte Antivirale
5. Webmail (En cours)
6. Sécurité du courrier(En cours)
7. Sendmail recompilation & création de sendmail.cf
8. Serveur de courrier moderne et sécurisé : IMAPS

1. Fonctionnement

  Par défaut, la messagerie est gérée par le vénérable démon Sendmail. La version actuelle (OpenBSD 3.1 ) est la 8.12 qui n'est plus suid root. Que voila une bonne nouvelle! Sendmail tourne désormais sous l'identité non-privilégiée smmsp (Sendmail Message Submission Program) tant pour l'utilisateur que le groupe.
La machine n'écoute, par défaut, sur le port SMTP standard que sur les adresses locales :
Un netstat -na |grep 25 doit donner au moins une de ces lignes :

tcp         0         0         127.0.0.1.25    *.*         LISTEN        localhost en IPV4
tcp6       0         0         ::1.25                *.*         LISTEN        localhost en IPV6

Le fichier /etc/rc.conf gère le lancement de Sendmail.
sendmail_flags="-L sm-mta -C/etc/mail/localhost.cf -bd -q30m"        

- Enregistre les évènements Syslog depuis sm-mta.
- N'écoute que sur les adresses locales : /etc/mail/localhost.cf         Notez bien l'absence d'espace entre C et /etc/mail....
- Fonctionne en démon en arrière-plan. -bd.
-
Vide la queue toutes les 30 minutes.

Si vous voulez transformer cette machine en serveur SMTP-sortant pour d'autres machines, remplacez /etc/mail/localhost.cf par /etc/mail/sendmail.cf pour écouter sur any.
Un netstat -na |grep 25 doit donner au moins une de ces lignes :
tcp         0         0         *.25                 *.*         LISTEN        toute adresse IPV4
tcp6       0         0         *.25                 *.*         LISTEN        toute adresse IPV6

Le dernier de ces fichiers :/etc/mail/submit.cf engendre un comportement assez mystérieux : Il est utilisé comme "partie cliente pour les MUA (Mail User Agents) qui veulent soumettre du courrier localement pour une livraison par Sendmail". Tout en sachant qu'aucun port SMTP n'est plus à l'écoute..... Bref, rien de très clair pour moi!
/usr/libexec/sendmail/sendmail -L submit -C/etc/mail/submit.cf -q3m        (Interdit en tant que démon)
6009         ??         Is         0:00.00         sendmail: Queue runner@00:03:00 for /var/spool/clientmqueue (sendmail)

Et là; si vous testez, rien ne fonctionne; c'est normal. La raison en est le poison actuel de la messagerie : le SPAM ! L'anti-relaying est activé par défaut ;  Sendmail sous OpenBSD n'accepte de relayer que les adresses (machines ou réseau) spécifiées explicitement dans un fichier absent actuellement :

Les fichiers et répertoires importants :

/var/mail/mqueue

Le répertoire de spool des messages en attente d'expédition.

/etc/mail/relay-domains :
openbsd-edu.net
10.10.10.                   
Et pas 10.10.10.0 , ni 10.10.10.0/24; ça ne fonctionnera pas.
172.16.0.6

Autorisera le relaying du domaine openbsd-edu.net , du sous-réseau 10.10.10.0/24 et de la machine 172.16.0.6
Et n'oubliez pas de laisser un passage dans le Firewall pour les requêtes SMTP entrantes.

Et là, tout fonctionne, enfin, normalement...

/etc/mail/aliases
    Les identités des différents utilisateurs (postmaster, manager, dumper....) sont toutes redirigées, par défaut, vers celle de root. Par conséquent, les machines OpenBSD étant volubiles en mails de remontées d'alertes, la boite dudit root va se remplir. Il vous est donc fortement conseillé de rediriger ce-même root vers une adresse email valide.
# Well-known aliases -- these should be filled in!
root: phil@openbsd-edu.net
phil: pschwarz@ac-creteil.fr

De meme, si vous voulez rediriger des adresses locales vers une autre machine, vous devez créer des alias de messagerie. Ici, les messages à destination de phil@openbsd-edu.net sont renvoyés vers pschwarz@ac-creteil.fr.

Attention, les lignes ne doivent pas contenir d'espace de début !! N'oubliez pas, non plus, les deux points entre les alias et les adresses.

Normalement, si vous désirez rerouter les messages vers plusieurs adresses (ie créer des listes de diffusion), séparez les différents destinataires par des virgules. Vous avez meme le droit aux retours chariots :
maliste: toto@domaine,
                tata_user_local,
                titi@domaine


N'oubliez pas de forcer la prise en compte de vos modifications par Sendmail en lançant la commande  newaliases.
N'oubliez pas de tester absolument votre serveur de messagerie sur l'anti relais, c'est obligatoire, si vous ne voulez pas vous retrouvez blacklisté.

/etc/mail/local-host-names
Jetez un coup d'oeil préalable sur le DNS. Vous rentrez ici, à raison de un par ligne, les domaines DNS pour lesquels vous voulez que votre machine face office de serveur de messagerie. N'oubliez pas d'ajouter le nom DNS complet (FQDN : Fully Qualified Domain Name) de la machine.
opensd-edu.net
hendrix.openbsd-edu.net

Vous devrez certainement jeter un oeil dans l'horrible et célèbre : /etc/mail/sendmail.cf. En effet, pour que le fichier  local-host-names soit pris en compte, il faut lui dire, au vénérable Sendmail. Ceci est surtout vrai si vous faites du Virtual Hosting.
 Un petit coup de kill -HUP, et ca marche enfin !

Si vos messages ne passent toujours pas, envoyez un message sur le serveur de mail, pendant que vous regardez passer les logs :
tail     -f     /var/log/maillog

/etc/mail/virtual-domains
(Le
nom est un exemple.)
Vous gérer plusieurs hotes virtuels sur votre serveur web, et vous aimeriez bien, en faire autant avec votre serveur de messagerie :
Gérer domaine1.net et domaine2.net, et avoir la possibilité d'avoir des doublons, ce que ne permettent pas les alias. Ex :
phil@domaine1.net
et
phil@domaine2.net        qui sont deux phil différents....Ceci n'est pas possible avec /etc/mail/aliases, vous devez utiliser virtusertable.


Pour connaitre l'état de sendmail :
sendmail -d0,0 < /dev/null


Un excellent outil de vérification de votre configuration DNS (et de la messagerie, donc): zonecheck.

1bis : Sendmail.cf

Tenir compte des différents noms de votre serveur de messagerie

##################
# local info #
##################
Cwlocalhost
Fw/etc/mail/local-host-names

Modifier l'invite de sendmail

 # SMTP initial login message (old $e macro)
SmtpGreetingMessage=$j Sendmail $v/$Z; $b
en
SmtpGreetingMessage="Serveur de messagerie du domaine"

$j                 renvoie plusieurs infos :          Le code SMTP du message (220)        Le FQDN de la machine            le protocole (ESMTP)
$v et $Z      renvoieent chacun une info :    la version de sendmail (le genre de truc à cacher, surtout quand vous etes plutot lent du patche)
$b                renvoie les infos de temps sous la forme : Jour de la semaine    date        Heure        Fuseau horaire


2. Relais POP3 (Fetchmail & &Popa3d)

    Vous disposez d'un compte de messagerie sur un serveur POP3 (la suite devrait marcher en IMAP4 et POP2, mais je n'ai pas fait les tests.). Vous ne gérez pas vous-même ce serveur, mais votre gentil hebergeur a limité la taille de votre boite à quelquechose qui devient ridicule au fur et à mesure que vos nombreux serveurs OpenBSD vous font remonter alertes,logs etc...(Gestion des logs). Pour ne pas perdre de messages pour cause de quota atteint, vous devez les relever régulièrement et automatiquement.

Je vous conseille fortement de créer un utilisateur non-privilégié pour faire fonctionner le relais de courrier. Tout d'abord, Fetchmail n'a absolument pas besoin de privilèges particuliers pour fonctionner. Ensuite, lors de la relève du courrier sur la machine de relais, le mot de passe de l'utilisateur va passer en clair. Il faut donc qu'il n'ait qu'un minimum de privilèges systèmes. En plus l'utilisateur n'a absolument pas besoin d'un shell. Vous allez donc créer un user courrier non-privilégié. (useradd courrier en lui donnant nologin comme shell). En revanche, vous allez lui attribuer un mot de passe qui deviendra votre nouveau mot de passe POP sur le relais. 
En résumé :

Name: romane
Password: ****                        Ne doit pas être vide, vous devrez le taper pour relever votre boite.
HOME: /home/romane              Inutile, les messages seront stockés dans /var/mail/nom_de_l'utilisateur
Shell: /sbin/nologin                     Important, si vous voulez dormir sur vos deux oreilles. (et encore..)
NB : Le fichier contenant la totalité des mails recus, mais non encore supprimés est /var/mail/votre_user. Mais si vous regardez dans /var/mail, ce fichier n'existe pas encore. Envoyez lui un mail et le fichier est créé.

Fetchmail
est fait pour ça; vous lui fournissez les infos qu'il désire et il relève votre courrier :
Installation : cd /usr/ports/mail/fetchmail    ; make && make install && make clean.

C'est la crontab de cet utilisateur qui va relever le courrier :
crontab -u courrier -e     
30            */2            *            *            *            /usr/local/bin/fetchmail -v -a >> /var/log/fetchmail.log 2>&1        

Afin de relever toutes les 2h30. Les logs seront mis dans /var/log/fetchmail.log. 
touch /var/log/fetchmail.log ; chown courrier.courrier /var/log/fetchmail.log ; chmod 700 /var/log/fetchmail.log

Fetchmail a besoin d'un minuscule fichier de configuration dans le répertoire perso de l'utilisateur : ~/.fetchmailrc :
poll     serveur_pop     protocol     POP3     user     user_serveur_POP     password     password_serveur_POP     is     courrier

Notez que fetchmail sait bien gérer de multiples boites (multiples serveur_pop/user_serveur_POP/password_serveur_POP ) pour un seul compte local (courrier).
N'oubliez d'attribuer des permissions strictes sur le fichier .fetchmailrc, il contient vos mots de passe en clair :
chown courrier.courrier /home/courrier/.fetchmailrc ; chmod 700 /home/courrier/.fetchmailrc


Petit conseil : Lors de la phase de test; quand vous lancez fetchmail; ajoutez l'option --keep à la commande servant à lancer fetchmail; cela vous permettra de laisser les messages sur le serveur POP. (option -v : verbose; option -a  : all)
Fetchmail, après avoir rapatrié les messages, les passe à la machine locale par le protocole SMTP. Vous devez donc avoir un démon SMTP (sendmail, au hasard ) qui  tourne sur la machine, écoute au moins en localhost et accepte de relayer les messages à localhost.... Ca tombe bien, c'est exactement le comportement par défaut de Sendmail sur une machine OpenBSD !

Attention : Le piège ici est de faire des boucles avec vos messages ( bouncing messages ). S'il existe un alias de messagerie de courrier vers lequel sont redirigés les messages de l'utilisateur courrier, vous risquez de jouer longtemps :
Exemple :
courrier : phil@openbsd-edu.net dans /etc/mail/aliases
et dans la crontab de courrier , vous allez rapatrier les messages de phil@openbsd-edu.net
Les messages vont boucler d'autant plus rapidement que votre ligne a un débit élevé.
Solution pour arrêter la boucle infernale : tuer le démon sendmail , modifier l'alias de messagerie, et se promettre de réfléchir la prochaine fois; promis ça énerve !

Popa3d est un serveur POP3 concu dans une optique de sécurité (Refuse les mots de passe vide. Refuse de délivrer du courrier à root. Efffectue des tests pour diminuer l'impact des attaques DoS) . Bon, il est quand même compatible avec la RFC 1939, et donc le nom d'utilisateur et le mot de passe circulent en clair..... :-(
Si vous voulez sécuriser un peu le relevé de boite, regardez-ici.
Popa3d fait partie de l'installation par défaut, il suit donc le processus de suivi des bugs.
La seule chose à faire est de le lancer automatiquement au démarrage :
Dans /etc/rc/local, ajoutez la ligne suivante :

/usr/sbin/popa3d         -D            Lance popa3d en tant que démon (J'ai éliminé inetd de ma configuration, mais cette solution reste possible.)
 Et c'est fini (N'oubliez pas d'ouvrir le FireWall) :

netstat -na |grep 110

tcp         0         0         *.110         *.*             LISTEN
Si vous voulez récupérer votre courrier dans votre mailer préféré, ajoutez juste, dans la liste des comptes, la triplette (Serveur/user/Password)

Les en-têtes des messages seront incrémentées de deux ensembles :

Entête popa3d
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Received: from localhost (localhost.Mon_serveur_POP3 [IPv6:::1])
by hendrix.Mon_serveur_POP3(8.12.2/8.12.2) with ESMTP id gA1NY9sQ996021
for <courrier@localhost>; Sat, 2 Nov 2002 00:30:09 +0100 (CET)

Entête fetchmail
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Received: from Mon_serveur_POP_d'origine [Son_IP]
by localhost with POP3 (fetchmail-5.9.6)
for courrier@localhost (single-drop); Sat, 02 Nov 2002 00:30:09 +0100 (CET)
-------------------------------------------------------------------------------------------------------------------------------------------------------------

3 Lutte anti-spam
   
Pour peu que vous ayez une adresse un tant soit peu connue (Sites Web, forums de news publiques,...) il est assez probable que vous soyez inondés par des spam (pourriels en québecois, message électronique non-sollicité en bon français.)
Plusieurs solutions s'offrent à vous selon votre protocole de relevé de courrier et votre mauvaise humeur:
- Eliminer ce spam depuis le serveur de courrier. Cette solution impose le webmail ou le protocole Imap4.
- Installer sur ce même serveur de courrier un filtre antispam (avec votre filtre antiviral, ça fera ça de fait). Spamassassin marche apparemment très bien sous OpenBSD.
- Rapatrier ce courrier sur votre machine et l'y faire passer plus ou moins automatiquement dans un filtre chargé de l'éliminer. Citons en vrac mailwasher sous Windows, procmail avec un filter adapté sous Unix.

    Le problème de ces solutions sont que l'émetteur du pourriel une fois son forfait accompli ne sera pas gêné par votre nettoyage. L'équipe OpenBSD a inventé un merveilleux outil pour faire attraper des cheveux blancs aux spammeurs : spamd.
Spamd est apparu avec la 3.3, son but est d'épuiser les ressources réseau des serveurs reconnus comme origine de spam en maintenant avec eux une connection réseau ininterrompu. Spamd utilise un minimum de vos ressources et un maximum des leurs.
Installation :
C'est facile, rien à faire. spamd fait partie de l'installation par défaut, Cool!


4 Lutte antivirale

Une fois n'est pas coutume, détaillons l'installation et l'utilisation d'un outil qui n'est ni libre, ni gratuit! (Et meme plutot chérot..Mais qui marche TB)

ATTENTION !! GeCAD, l'éditeur de rav vient d'etre racheté par Microsoft, et le distributeur américain n'est pas optimiste ATTENTION !!

 Rav Antivirus (Version 8.4 et +) Pour les versions < 8.4, voir ici.
Installation :
1. Télécharger la version rav avec libmilter, ici
2. Vérifier que votre sendmail a été compilé avec l'option Milter (ce qui n'est pas le cas par défaut sur un 3.3)
sendmail -d0,0 < /dev/null            Doit renvoyé MILTER, sinon il faut recompiler.

modifier le /usr/share/sendmail/cf/openbsd-proto.mc :
Ajouter :

define(`_FFR_MILTER', `true')
INPUT_MAIL_FILTER(`RAVMilter',`S=local:/var/rav/run/RAVMilter.sock,F=R,T=S:10s;R:5m;E:5m')

                                                        ????????????APPENDDEF('conf_sendmail_ENVDEF','-DMILTER')?????????
ou alors, vous téléchargez ces instructions que vous ajoutez au fichier .mc.

Puis vous recompilez sendmail et/ou sendmail.cf :ici
Puis, vous lancez le script install.sh et vous installez tout :

ravmd : le démon qui scanne
Rav core : le noyau et les signatures
Rav filter : le filtre pour sendmail
Le script installe tout seul les commandes de démarrage dans /etc/rc.local.

Modifier /etc/rc.conf pour remplacer localhost.cf en sendmail.cf, au cas où.
Ne pas oublier d'ouvrir dans pf sur les ports 25 et 587 en TCP.

L'arborescence rav est donc :
                                                            /etc
                                                                |____rav                      
                                                                          |__actions            Actions à prendre en cas de pb viral.
                                                                          |__antispam         Actions à prendre en cas de pb de spam.
                                                                          |__domains          Domaines protégés par Rav. Un domaine rav est ce qui suit le @, attention!!!!!
                                                                          |__ravmd.conf      Fichier de config central.
                                                                          |__rbl_settings     Liste de spammeurs ou de relais ouverts connus.
                                                                          |__regexp              Liste des expressions régulières
                                                                          |__rup.conf            Quelques paramètres globaux (flags ON/OFF, chemins des fichiers, executables..)
                                                                |____groups
                                                                          |__sample_group    Groupe d'essai à copier et paramètrer.
                                                                          |__global            Gestion des groupes d'utilisateurs permettant de leur d'autres règles de filtrage
                                                                |____language
                                                                          |__english            Messages d'alerte en anglais
                                                                          |__english.equiv   Equivalence de message d'alerte en anglais
                                                                          |__french              Messages d'alerte en anglais
                                                                          |__french.equiv    Equivalence de message d'alerte en anglais
                                                            /var
                                                                |____rav
                                                                          |__ravmd.key    Clé à obtenir auprès de GeCAD (qui appartient désormais à une PME de Redmond :-(((((
                                                                          |__ravmd.key.new
                                                                          |__bulk
                                                                          |__quarantine    Répertoire stockant les fichiers infectés
                                                                          |__rave
                                                                          |__run                Répertoire stockant le pid (identifiant du process ravmd)
                                                                          |__tmp               Répertoire temporaire de rav
                                                            /usr
                                                                |____local
                                                                          |__lib
                                                                                |__rav
                                                                                       |__les librairies nécessaires.
Lors du lancement des binaires, vous risquez de rencontrerle problème de librairies :
> /usr/local/bin/ravmd
/usr/libexec/ld.so:ravmd libz.so.1.3:No such file or directory
La solution est simple, il faut faire les liens symboliques qui vont bien :

#cd  /usr/local/lib
#ln -s /usr/lib/libz.so.2.0 libz.so.1.3
#ln -s /usr/lib/libutil.so.8.0 libutil.so.7.1
#ln -s /usr/lib/libc.so.29.0 libc.so.28.0

ravupdate génerera la mise à jour des signatures.

 

5. Messagerie en ligne : Webmail

Openwebmail est, comme son nom l'indique, une messagerie en ligne, et comme son nom ne l'indique pas, un peu plus que ça :
- Filtre anti-spam
- Calendrier
- Gestionnaire de fichiers.

    Pendant  la phase d'installation classique, le logiciel installant un module ispell (correcteur orthographique) vous demandera de choisir entre la langue locale, americaine ou anglaise; et comme locale pointe deja vers la langue de Georges Double-U, le choix est assez restreint.
Le fichier de configuration est situé à /var/www/conf/openwebmail/openwebmail.conf.
Les fichiers executables sont dans /var/www/cgi-bin/openwebmail/
Vous devez autorisez dans la configuration de ce serveur (ou de ce serveur virtuel, au cas où) un certain nombre de choses :
ScriptAlias /cgi-bin/ /var/www/cgi-bin/openwebmail/
Options ExecCGI


6. Un peu de sécurité dans ce monde en clair

I. Vous pouvez restreindre l'accès au serveur POP3 :
    Jusqu'à maintenant, j'avais limité l'accès au port 110 du serveur à quelques adresses IP publiques. Mais, lors de déplacements, je suis dans l'incapacité de relever mon courrier, coincé dehors par mes propres soins. En fait, il faudrait que le serveur POP soit capable de m'identifier d'où que je vienne. En plus, cela permettrait de fermer le port POP3 à tout l'internet. Comment faire ?

Nous allons utiliser le merveilleux outil fourni par l'équipe OpenBSD : authpf
Ajoutez simplement la ligne suivante au fichier /etc/authpf/authpf.rules :
pass in log quick on $interface_ext proto tcp from $user_ip/32 to IP_Publique_du serveur_POP3/32 port = 110 flags S/SA keep state
   
Attention, la variable $user_ip est d'usage obligatoire, elle récupère l'adresse IP du client SSH..
Ensuite, vous fermez le port 110 et vous ouvrez le port 22 sur tout  l'internet :
pass in log quick on $interface_ext proto tcp from any to IP_Publique_du serveur_POP3/32 port = 22 flags S/SA keep state
block  in log on $interface_ext proto tcp from any to IP_Publique_du serveur_POP3/32 port = 110 
   
Attention, n'ajoutez pas le mot clef quick à la fermeture du port 110, car authpf ajoute, par défaut, les règles de filtrage à la fin du fichier de règle, votre règle d'ouverture par authpf ne serait jamais lue.
Il est probable qu'utiliser le compte root pour récupérer son courrier soit une assez mauvaise idée ;-); De plus, être obligé de taper son mot de passe SSH à chaque relevé de courrier risque de devenir vite pénible. Pour cela, créez un compte utilisateur non-privilégié sur le serveur, 

CLE PUB, PAS DE PHRASE DE PASS.....


Maintenant, connectez vous en SSH sur le serveur, authentifiez-vous et rapatriez-votre courrier.
    Rappelez-vous que authpf garde les règles supplémentaires le temps de la connexion SSH, il les élimine après.

Kmail permet de lancer une commande

I. Vous pouvez chiffrer la transmission

Plus de documentation

7. Modifier le comportement de Sendmail

    1. Recompiler Sendmail (Exemple : Ajout de libmilter)
Cela peut etre nécessaire, s'il vous manque des options .
Vous devez d'abord télécharger les sources avec cvsup, par exemple.
Vous vous retrouvez avec une arborescence /usr/src/gnu/usr.sbin/sendmail/.
Pour ajouter la fonctionnalité libmilter, modifiez le Makefile en ajoutant à la ligne SUBDIR+, le mot libmilter.
Puis, vous créez un fichier /etc/mk.conf qui contient :
WANT_LIBMILTER=1
Puis, vous recompilez sendmail. (make depend && make && make install)Le nouveau binaire sendmail est automatiquement mis en place dans /usr/libexec/sendmail/sendmail. On le relance et c'est parti; il ne reste plus qu'à vérifier qu'il tourne avec les bonnes options :
sendmail -d0,0 < /dev/null.

Version 8.12.12 (J'ai de l'avance;-)		   | C'est bon, il y a Milter, maintenant.
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SCANF
STARTTLS TCPWRAPPERS USERDB XDEBUG

============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = mon_srv
(canonical domain name) $j = mon_srv.mon_domaine
(subdomain name) $m = mon_domaine
(node name) $k = mon_srv.mon_domaine
========================================================

Recipient names must be specified

2. Modifier le fichier de configuration de Sendmail, le réputé sendmail.cf..
    Ne paniquez pas, je suis bien incapable de vous faire pénétrer dans les méandres de ce machin. En revanche, l'utilisation de m4, va nous aider à faire les choses simplement.
Tous les fichiers sont dans             /usr/share/sendmail/
                                                                                |____cf                    Contient tous les fichiers .mc qui vous servirons de base.
                                                                                            |__openbsd-localhost.mc N'écoute sur le port 25 qu'en localhost.
                                                                                            |__openbsd-proto.mc    Pour faire un serveur de messagerie parlant SMTP
                                                                                |____m4
                                                                                            |__cf.m4      Fichier générique
                                                                                |____feature            Contient toutes les fonctionnalités que vous voulez ajouter à votre config.
                                                                                |____ostype             Contient les directives dépendantes de l'OS, place des fichiers, en particulier.
                                                                                            |__openbsd.m4    Directives OpenBSD-dépendantes.
Configurer son  sendmail.cf
Vous devez intervenir sur le fichier .mc (/usr/share/sendmail/cf/) afin d'y inclure les options que vous voulez.

Exemple  : La gestion des hotes virtuels :
J'ajoute à openbsd-proto.mc la macro :
VIRTUSER_DOMAIN_FILE(`/etc/mail/virtual-domains')

Générer le sendmail.cf
cd /usr/share/sendmail/cf/

m4   ../m4/cf.m4
  openbsd-proto.mc   > ../sendmail.cf       
!!!!!  Vous DEVEZ utilisez le chemin ../ au début de la ligne (bug de m4) ou alors, utiliser la syntaxe :
m4   -D_CF_DIR_=chemin_de_m4/cf.m4   openbsd-proto.mc   > ../sendmail.cf

Le sendmail.cf ainsi créé est totalement identique au /etc/mail/sendmail.cf livré d'origine.

Si vous voulez travailler en local, on a alors : m4   ../m4/cf.m4   openbsd-localhost.mc   > ../sendmail.cf
Le sendmail.cf ainsi créé est totalement identique au /etc/mail/localhost.cf livré d'origine.   

Quelques notes interessantes sur sendmail.cf;ici.

6. Serveur de courrier moderne et sécurisé : IMAPS (V 1.7.1)

Pourquoi quitter POP3 qui fonctionne bien pour passer en IMAP /TLS ?

-Vous relevez votre courier depuis plusieurs postes. Ca vous évitera de jongler.
- Vous souffrez beaucoup du passage en clair des données.... IMAP ne corrige pas cela, IMAPS, voui!
- Télécharger les messages est pénible, imap vous permet de les traiter sur le serveur,c omme un webmail, mais sans les pubs de l'hébergeur..

Attention ! Il existe un inconvénient de taille à passer votre serveur sous imap, vous allez devoir bazarder sendmail! On vous aura prévenu.
Imap utilise le format maildir (un fichier par message) pour les boites, tandis que sendmail ne comprend que le format mbox (un seul gros fichier pour tous vos messages). Le format  mbox est le plus ancien et pose beaucoup de problèmes, en cas de rupture de la communication lors du transfert, en cas de tentaive d'accès simultanés à un fichier de mail...

Pour comparer plus précisement, reportez vous à l'excellent article que voilou.

cd /usr/ports/mail/courier-imap
env FLAVOR="no_pgsql" make
                        Je ne veux pas installer la base postgres, voir l'info sur les FLAVOR.
env FLAVOR="no_pgsql" make install
make clean

mkdir /etc/courier-imap
cp     /usr/local/share/examples/courier-imap/*     /etc/courier-imap/
    Editez le fichier /etc/imapd.cnf et adaptez-le à vos besoins; en particulier, vous DEVEZ remplir l'intitulé CNavec un nom DNS  officiel de la machine. N'oubliez pas de remplir le bon champ email : postmaster@mon-domaine, non plus.

Puis vous lancez le script /usr/local/sbin/mkimapdcert qui va générer le trousseau de clés:(voir SSH)
Lors de la première connexion, vous obtiendrez le message suivant.

La clé privée (RSA 1024 bits par défaut) dans /etc/ssl/private/imapd.pem, puis la primitive de 512 bits de la clé Diffie-Hellmann.
mkdir -p /var/run/courier-imap        Pour créer, une fois pour toutes, le répertoire de lock

Vous pouvez désormais lancer le démon avec l'une des commandes suivantes (à mettre dans /etc/rc/local):
/usr/local/libexec/imapd.rc   start                      Lance le démon imapd
/usr/local/libexec/imapd-ssl.rc    start               Le meme en version SSL(imapds)

Le démon d'authentification, sera, lui aussi, lancé dans /etc/rc/local :
/usr/local/libexec/authlib/authdaemond start

Note pour l'ouverture du FireWall: 
Imaps (imap4 Sur TLS) tourne sur 993/TCP et 993/UDP (la messagerie en UDP, je suis un poil surpris, mais c'est ce que me dit /etc/services)

Création et structure des répertoires Maildir:

cd /home/mon_user
/usr/local/bin/maildirmake Maildir
N'oubliez d'attribuer la propriété du répertoire à l'utilisateur mon_user..
La structure d'un répertoire est la suivante :
~/Maildir
        |__cur          Messages lus
        |__new        Nouveaux messages
        |__tmp        Le demande de suppression d'un message le place, en réalité dans ./tmp, avant de le supprimer 36 heures après.


© Philippe Schwarz -  Philippe Chadefaux  - $Id: Messagerie.html,v 1.2 2003/01/31 22:01:08 phil Exp $ -