= Admin de mail-ville.xy.refer.org = == Exim4 (Le MTA serveur SMTP utilisé) == === Les logs === Lire régulièrement les logs qui sont dans '''/var/log/exim4/''' : * '''mainlog '''(fichier) : Les messages qui passent par mail-ville (de ou vers mail-ville). Par exemple, si vous envoyez un message tout de suite, vous devriez en retrouver les traces dans /var/log/exim4/mainlog. * {{{ 2009-01-15 14:53:16 [5855] 1LNTau-0001WR-Sq "roger.yerbanga_CHEZ_auf.org" from env-from rewritten as "roger.yerbanga_CHEZ_auf.org" by submission mode 2009-01-15 14:53:17 [5855] 1LNTau-0001WR-Sq SA: Debug: SAEximRunCond expand returned: '1' 2009-01-15 14:53:17 [5855] 1LNTau-0001WR-Sq SA: Debug: check succeeded, running spamc 2009-01-15 14:53:17 [5855] 1LNTau-0001WR-Sq SA: Action: scanned but message isn't spam: score=-5.5 required=5.0 (scanned in 0/0 secs | Message-Id: 496F4DDC.4020809@auf.org). From (host=rogerpc.sn.auf [10.196.1.197]) for yerbanga_CHEZ_gmail.com 2009-01-15 14:53:17 [5855] 1LNTau-0001WR-Sq <= roger.yerbanga_CHEZ_auf.org H=rogerpc.sn.auf [10.196.1.197]:33196 I=[213.154.65.77]:587 P=esmtpsa X=TLSv1:AES256-SHA:256 CV=no A=PLAIN:roger.yerbanga_CHEZ_auf.org S=1035 id=496F4DDC.4020809@auf.org T="test" from for yerbanga_CHEZ_gmail.com 2009-01-15 14:53:17 [5855] SMTP connection from rogerpc.sn.auf [10.196.1.197]:33196 I=[213.154.65.77]:587 closed by QUIT 2009-01-15 14:53:17 [5858] cwd=/var/spool/exim4 3 args: /usr/local/exim4/bin/exim -Mc 1LNTau-0001WR-Sq 2009-01-15 14:53:18 [4065] SMTP connection from [209.85.200.171]:26605 I=[213.154.65.77]:25 (TCP/IP connection count = 4) 2009-01-15 14:53:18 [5858] 1LNTau-0001WR-Sq => yerbanga_CHEZ_gmail.com F= P= R=dnslookup T=remote_smtp S=1065 H=gmail-smtp-in.l.google.com [66.249.93.27]:25 C="250 2.0.0 OK 1232031198 24si2081186ugf.22" QT=2s DT=1s 2009-01-15 14:53:18 [5858] 1LNTau-0001WR-Sq Completed QT=2s » }}} Ce qui montre qu’un message de '''''roger.yerbanga_CHEZ_auf.org''''' est en transit sur le serveur à destination de '''''yerbanga_CHEZ_gmail.com'''''. Les premières lignes montrent d'abord la réception du message venant de la machine de roger (rogerpc.sn.auf) par le serveur, que le message a été scanné, et que roger s'est authentifié avant d'envoyer le message. Les dernières lignes montrent la communication de mail-ville avec le serveur de gmail pour la livraison du mail à gmail, et le mot clé '''''Completed''''' indique que tout s'est bien passé. Comme autres infos : l'id du mail est '''1LNTau-0001WR-Sq''', le routeur utilisé est '''dnslookup''', le transport '''remote_smtp'''. * {{{ 2009-01-15 15:15:56 [9255] 1LNTwp-0002PH-CO SA: Debug: SAEximRunCond expand returned: '1' 2009-01-15 15:15:56 [9255] 1LNTwp-0002PH-CO SA: Debug: check succeeded, running spamc 2009-01-15 15:15:57 [9255] 1LNTwp-0002PH-CO SA: Action: scanned but message isn't spam: score=-3.2 required=5.0 (scanned in 1/1 secs | Message-Id: e29a14340901150715u41676a82ga9d15780689350a0@mail.gmail.com). From (host=smtp.ca.auf.org [199.84.140.5]) for roger.yerbanga_CHEZ_xy.auf.org 2009-01-15 15:15:57 [9255] 1LNTwp-0002PH-CO <= yerbanga_CHEZ_gmail.com H=smtp.ca.auf.org [199.84.140.5]:59117 I=[213.154.65.77]:25 P=esmtp S=4031 id=e29a14340901150715u41676a82ga9d15780689350a0@mail.gmail.com T="Re: test" from for roger.yerbanga_CHEZ_xy.auf.org 2009-01-15 15:15:57 [9255] SMTP connection from smtp.ca.auf.org [199.84.140.5]:59117 I=[213.154.65.77]:25 closed by QUIT 2009-01-15 15:15:57 [9257] cwd=/var/spool/exim4 3 args: /usr/local/exim4/bin/exim -Mc 1LNTwp-0002PH-CO 2009-01-15 15:15:57 [9257] 1LNTwp-0002PH-CO => roger.yerbanga F= P= R=localuser T=local_delivery S=4151 QT=2s DT=0s 2009-01-15 15:15:57 [9257] 1LNTwp-0002PH-CO Completed QT=2s   }}} Un message de '''''yerbanga_CHEZ_gmail.com''''' pour '''''roger.yerbanga_CHEZ_auf.org''''' venant du serveur de Moussa a été reçu et '''''localement délivré''''' dans la boîte aux lettres de roger.yerbanga avec '''succès'''. * {{{ 2009-01-15 15:49:06 [12270] H=blu0-omc1-s27.blu0.hotmail.com [65.55.116.38]:18090 I=[213.154.65.77]:25 F= temporarily rejected RCPT : greylisted. }}} Gentillement '''greylisté''', le serveur de '''''hotmail''''' va recommencer plus tard. * '''rejectlog''' (fichier) : Les messages rejetés (Trop grande taille, destinataire inconnu, spam, virus, temporairement, définitivement rejetés, ...) * {{{ 2009-01-15 15:52:06 [12556] SMTP call from (userf6a2689fcf) [213.154.93.109]:1140 I=[213.154.65.77]:587 dropped: too many syntax or protocol errors (last command was "RCPT TO: <'pfonkoua2001_CHEZ_yahoo.fr'>") }}} Quelqu'un qui ne sait pas faire du smtp, '''syntaxe incorrecte''', après 5 tentatives, on ferme la connexion avec lui. * {{{ 2009-01-15 15:55:05 [12774] H=([90.151.122.20]) [90.151.122.20]:55414 I=[213.154.65.77]:25 F= rejected RCPT : Unrouteable address }}} On n'a pas cet identifiant ici ; '''utilisateur inconnu''' chez nous. * {{{ Content analysis details: (9.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FROM_LOCAL_DIGITS From: localpart has long digit sequence 1.4 FROM_LOCAL_HEX From: localpart has long hexadecimal sequence 1.9 SUBJ_ALL_CAPS Subject is all capitals 1.5 MISSING_HEADERS Missing To: header 0.0 HTML_MESSAGE BODY: HTML included in message 0.0 BAYES_50 BODY: Bayesian spam probability is 40 to 60% [score: 0.5000] 1.7 SARE_FRAUD_5 Matches 2 phrases commonly used in fraud spam 1.7 SARE_FRAUD_10 Matches 2 phrases commonly used in fraud spam 1.7 SARE_FRAUD_3 Matches 2 phrases commonly used in fraud spam X-SA-Exim-Connect-IP: 193.110.120.20 X-SA-Exim-Rcpt-To: pmbow_CHEZ_xy.refer.org, coba_CHEZ_xy.refer.org X-SA-Exim-Mail-From: Subject: *****SPAM***** MONEY GRAM PAYMENT. X-Spam-Flag: YES X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on mail-ville.xy.auf.org X-Spam-Level: ********* X-Spam-Status: Yes, score=9.9 required=5.0 tests=BAYES_50,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,HTML_MESSAGE,MISSING_HEADERS,SARE_FRAUD_10,SARE_FRAUD_3, SARE_FRAUD_5,SUBJ_ALL_CAPS autolearn=no version=3.2.5 }}} Détails de l'analyse du mail avec le score global obtenu qui est de 9.9 et les détails de l'obtention de ce score. * '''paniclog''' (fichier) : Les messages provenant d'un grave problème, comme un fichier de configuration supprimé, ou un répertoire qui doit appartenir à exim et qui ne lui appartient pas. Peut aussi contenir des problèmes créés par des mauvaises config des clients. En règle générale, ce fichier doit être vide ou inexistant. * {{{ 2009-01-07 15:03:58 [22084] 1LKZuk-0005kC-Sf spam acl condition: error reading from spamd socket: Connection timed out }}} Échec de connexion à spamassassin, un moment où spamassassin était peut être arrêté. === Les configs === * '''/etc/exim4''' (répertoire) : Contient le fichier de config de exim, et les sous répertoires et fichiers créés pour respecter notre schéma de configuration. * '''aliases''' (fichier) : Juste un lien avec ''/etc/aliases''. Contient donc la définition des aliases des comptes, des listes de comptes. Après toute modif de ce fichier, il faut lancer la commande '''''makealiases'''''. * '''relay_from_hosts''' (fichier) : Les réseaux IP pour lesquels on accepte de relayer les messages (nos propres réseaux : RPV, puis les salles, le réseau des serveurs, le webmail et quelques réseaux autorisés tels que les clients dialup, et le localhost, et tous ceux qu'aiment bien) * '''local_domains''' (fichier) : Contient la liste des domaines locaux pour lesquels on héberge les messages. Par exemple : mail-ville.xy.refer.org, xy.refer.org, xy.auf.org, autre.domaine.tld, serveurs.xy.refer.org, autreserveur.xy.refer.org, ... * '''relay_to_domains''' (fichier) : Les domaines pour lesquels on ne garde pas les messages, mais les messages pour ces domaines peuvent transiter sur mail-ville et rester dans la queue des messages pendant 7 jours au maximum (en général, ce fichier est vide) * '''exim.conf''' (fichier) : Configuration de exim4. * '''sa-exim.conf''' (fichier) : Qui précise comment les messages sont scannés, les répertoires de mails rejetés temporairement ou définitivement, ce qu'il faut faire d'un spam, les répertoires de copies des mails rejetés, et peut permettre de faire du greylisting à la méthode Marc Merlin (http://marc.merlins.org/linux/exim/sa.html). * '''manual_route''' (fichier) : contenant les domaines routés manuellement souvent via le serveur de Montreal ou de Dakar (Fichier souvent vide, à utiliser en cas de problème avec un domaine particulier). * '''keys''' (répertoire) : Sous-répertoire qui contient les certificats utilisées par exim4. * '''rewrite''' (répertoire) : Contient des fichiers qui précisent les règles de réécritures pour des domaines spécifiques. === Les répertoires de mails === * '''/var/spool/exim4/input''' (répertoire) : Contient les messages en attente dans la queue. * '''''du –m /var/spool/exim4/input''''' : donne la taille totale de l’ensemble des messages dans la queue. * Dans ce répertoire, faire '''''more -D''''' permet de prendre connaissance du contenu du message. * '''''more -H''''' donne l’entête du message. * '''/var/spool/exim4/SAdevnul''' (répertoire) : Contient les copies de messages silencieusement rejetés. * '''var/spool/exim4/SApermreject''' (répertoire) : Contient les copies de messages permanement rejetés. * '''/var/spool/exim4/SAtempreject''' (répertoire) : Contient les copies de messages temporairement rejetés. === Les commandes et tests exim === * '''exim -bp''' : Affiche la queue des mails. * '''exim -bP''' : Affiche toutes les variables définies dans le runtime configuration file. * '''exim -Mrm ''' : supprime le message dont l’idf est spécifié. * '''exim -Rff ''' : force les messages à partir pour ce domaine (exemple : exim -Rff yerbynet.com) * '''exim -bt ''' : permet de tester le comportement de exim lorsqu'il reçoit un mail à destination de * '''exim -d -bt ''' : pareil que l'option pécédente mais avec beaucoup plus de détails. * '''exim -bV''' : permet de vérifier la version de exim, et aussi la syntaxe du fichier de configuration. En cas d'erreur de syntaxe, on est informé par cette commande avant de recharger le fichier. * '''exim -C -bV''' : permet de tester un nouveau fichier de conf, sans toucher à l'ancien. * '''exim -C /etc/exim_test/exim_nouveau.conf -bt roger@xy.refer.org''' : permet de tester le comportement de exim quand il prend sa configuration du fichier /etc/exim_test/exim_nouveau.conf et qu'il doit envoyer un email à roger@xy.refer.org. * '''exim -v -odf ''' : essaie de livraison réelle avec quelques détails sur les actions prises par exim. * '''exim -d -odf ''' : essaie de livraison réelle avec un full debug : tous les détails de toutes les actions dans les moindres détails. * '''exim -bh ''' : permet de vérifier le relayage depuis cette IP. Tester si le serveur de mail n'est pas un openrelay et s'il permet bien aux clients autorisés de l'utiliser. * '''exim -odq ''' {{{ Un message de test. . }}} Permet de mettre le message dans la file d'attente pour email1, email2, email3 sans qu'il ne soit livré. Le message reste dans la file d'attente jusqu'à ce qu'un processus d'exécution de file d'attente le détecte. * '''exim -v -q''' : lance une exécution manuelle de la file d'attente, avec vérification du résultat. Sans l'option -v, il n'y a pas de vérification. === Les comment faire ? === * '''Comment ajouter un nouveau domaine local à exim ?''' * Très facile : extrait du fichier de configuration ''[domainlist local_domains = lsearch;/etc/exim4/local_domains]'' * D'abord, si c'est nous qui gérons le domaine, il faut le configurer de telle sorte que son MX pointe sur mail-ville.xy.refer.org, sinon, dire au gestionnaire du domaine de faire pointer le MX vers mail-ville.xy.refer.org. * Puis, ouvrir le fichier /etc/exim4/local_domains, et rajouter le nouveau domaine sur une ligne. * '''Comment ajouter un nouveau compte de messagerie pour xy.refer.org ?''' * Très facile : Créer le compte dans votre base de données mysql, et c'est tout. * '''Comment ajouter un nouveau compte de messagerie pour xy.auf.org ?''' * Facile : Créer le compte dans votre base de données mysql, puis accéder au répertoire /etc/exim4/rewrite/ et suivre les exemples qui existent déjà. (L'adel correspondante sur Montreal aura auparavant été créée). * '''Comment ajouter un nouvel alias ?''' * Très facile : extrait du fichier de configuration [data = ${lookup{$local_part}dbm{/etc/exim4/aliases.db}}] * Ce qui veut dire que les alias sont pris dans une base de données du nom de /etc/exim4/aliases.db. Cette base est construite à partir du fichier /etc/exim4/aliases. * Il suffit donc de rajouter l'alias en question dans le fichier /etc/exim4/aliases * Exemple d'alias : informatique: technique-xy@xy.auf.org * Puis de taper la commande makealiases pour régénérer le fichier aliases.db * '''Comment ajouter un domaine pour le reroutage des mails de ce domaine via le manual_route ?''' * Le plus simple : ouvrir le fichier /etc/exim4/manual_route, puis écrire le nom du domaine en question sur une ligne. * '''Comment rerouter tous les mails sortants via le manual_route ?''' (Notamment quand on est blacklisté par la faute de la Sonatel par exemple) * Tellement simple : ouvrir le fichier /etc/exim4/manual_route, et mettre sur la première ligne le caractère '''__*__'''. === Cas de problèmes === * Exim vous dit qu'un utilisateur local est inconnu ('''Unknown user''') pour lui alors que vous pensez le contraire : * commande pour aider à résoudre : exim -bt * vérifier que la base de données tourne * vérifier que l'utilisateur configuré dans exim accède bien à la base de données avec son mot de passe * vérifier que l'utilisateur existe bien dans la base de données * s'assurer de n'avoir pas modifié les routeurs mysql_localuser et localuser * Exim vous dit qu'il n'arrive pas à écrire les messages des utilisateurs dans les répertoires : * commande pour aider : exim -d -odf * vérifier que les répertoires en question ont les bons droits et propriétaires (appartiennent bien à Debian-exim:mail) * Exim n'arrive pas à envoyer de mails vers l'extérieur : * commande : exim -v -odf * vérifier la connexion internet * vérifier le DNS * Exim a des soucis de démarrage : * commande : exim -bV * lire attentivement ce qui est écrit dans paniclog (le problème est souvent clairement décrit dans ce fichier) * vérifier que vos répertoires /var/spool/exim4, /var/log/exim4 ont les bons droits et propriétaires et ne sont pas pleins * Problème avec une liste mailman : * commande : exim -d -bt * vérifier que le domaine de la liste fait bien partie des MM_DOMAINS * vérifier que le fichier ''/var/lib/mailman/lists//config.pck'' existe * vérifier que mailman tourne * vérifier que le routeur mailman_router est bien là et inchangé. == Un peu de spamassasin == Spamassassin doit toujours tourner. Les logs sont dans '''/var/log/mail.log''', et les configs dans '''/etc/spamassassin/local.cf''', où on peut écrire ses propres règles.