Differences

This shows you the differences between two versions of the page.

Link to this comparison view

freebsd:mailscanner [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Version installée:
  
 +-MailScanner-devel-4.26.4
 +-clamav-devel-20040116
 +-f-prot-4.3.1
 +-sendmail 8.12.9p1
 +
 +Configuration de Sendmail:
 +
 +/​etc/​rc.conf:​
 +sendmail_enable="​NONE"​ (utilisation du script mta.sh)
 +sendmail_outbound_enable="​YES"​
 +sendmail_submit_enable="​YES"​
 +sendmail_msp_queue_enable="​YES"​
 +
 +
 +/​etc/​mail/​mailer.conf:​
 +sendmail ​        /​usr/​libexec/​sendmail/​sendmail
 +send-mail ​       /​usr/​libexec/​sendmail/​sendmail
 +mailq              /​usr/​libexec/​sendmail/​sendmail
 +newaliases ​    /​usr/​libexec/​sendmail/​sendmail
 +hoststat ​        /​usr/​libexec/​sendmail/​sendmail
 +purgestat ​      /​usr/​libexec/​sendmail/​sendmail
 +
 +/etc/mail:
 +
 +C'est dans ce répertoire que se trouve tous les fichiers importants de sendmail.
 +
 +Nous émettons l'​hypothèse suivante:
 +
 +    * votre domaine isp est isp.fr
 +    * vous vous connectez à smtp.isp.fr pour envoyer votre courriels
 +    * vous vous connectez à pop.isp.fr pour aller chercher votre courriels
 +    * votre adresse email est : toto.isp.fr
 +    * votre user freebsd se nomme titi 
 +
 +Création de votre .mc, par exemple hostname.mc
 + Le pas suivant est d'​indiquer à FreeBSD quel est notre fichier de
 +configuration pour qu'il puisse automatiser diverses actions plus tard.
 +Editez maintenant /​etc/​make.conf avec votre éditeur de texte préféré et
 +tapez:
 +
 +SENDMAIL_MC=/​etc/​mail/​hostname.mc
 +
 +Utilisation du fichier .mc
 +
 +Avant de procéder à la configuration,​ il est nécessaire de préciser
 +comment nous convertirons notre fichier .mc en son correspondant.cf et
 +comment nous indiquerons à Sendmail qu'il l'​utilise.
 +Avant tout nous ferons la conversion:
 +
 +/etc/mail# make
 +
 +Avec ça , FreeBSD nous donnera un fichier hostname.cf pret à l'​emploi.
 +Nous pouvons automatiser le processus en tapant:
 +
 +/etc/mail# make install
 +
 +Après rien de plus facile, redémarrez le MTA:
 +
 +/etc/mail# make restart
 +
 +Ou plus simplement
 +/etc/mail# make all install restart ​ ;-)
 +
 +Mon fichier de config :
 +
 +divert(-1)
 +divert(0)
 +VERSIONID(`$FreeBSD:​ src/​etc/​sendmail/​freebsd.mc,​v 1.28 2003/04/18 01:25:41 gshapiro Exp $')
 +OSTYPE(freebsd5)
 +define(`SMTP_MAILER_FLAGS',​ `e9'​)dnl
 +FEATURE(redirect)dnl
 +FEATURE(nocanonify)dnl
 +FEATURE(always_add_domain)dnl
 +FEATURE(local_procmail)dnl
 +define(`PROCMAIL_MAILER_PATH',​ `/​usr/​local/​bin/​procmail'​)dnl
 +define(`STATUS_FILE',​ `/​var/​log/​sendmail.st'​)dnl
 +GENERICS_DOMAIN(hostname.domain.org hostname localhost)
 +FEATURE(masquerade_envelope)dnl
 +FEATURE(`genericstable'​)
 +GENERICS_DOMAIN_FILE(`/​etc/​mail/​genericsdomain'​)
 +FEATURE(relay_entire_domain)dnl
 +FEATURE(accept_unresolvable_domains)dnl
 +define(`confCF_VERSION',​ `thierry - 01/​02/​04'​)dnl
 +define(`confCON_EXPENSIVE',​ `True'​)dnl
 +define(`confME_TOO',​ `True'​)dnl
 +define(`confCOPY_ERRORS_TO',​ `Postmaster'​)dnl
 +define(`confDEF_CHAR_SET',​ `ISO-8859-1'​)dnl
 +define(`confMIME_FORMAT_ERRORS',​`True'​)dnl
 +define(`SMART_HOST',​ `smtp8:​[smtp.isp.fr]'​)dnl
 +define(`confTO_QUEUEWARN',​ `24h')
 +MAILER(local)
 +MAILER(smtp)
 +`SMART HOST' ​ indique à Sendmail d'​envoyer tous les mails à votre isp au lieu d'​essayer de les envoyer en local.
 +
 +Création du fichier /​etc/​mail/​genericsdomain
 + hostname.domain.org
 +
 +Création du fichier /​etc/​mail/​genericstable
 + user@hostname.domain.org toto@isp.fr
 +
 +Ce fichier est très important, c'est lui qui permet de reécrire les adresses locales en adresses acceptables par le serveur de messagerie de votre fournisseur d'​accès. Dans cet exemple, il transforme user@hostname.domain.org en toto@isp.fr ...
 +Une fois ce fichier rempli correctement,​ il faut en faire une base, pour qu'il puisse être traité correctement pas notre sendmail (att l'​espace correspond à un<​TAB>​).
 +
 +/etc/mail# makemap hash genericstable.db < genericstable
 +
 +Fichier /etc/hosts :
 + 127.0.0.1 ​              ​hostname.domain.org hostname localhost
 +
 +
 +
 +test de fonctionnement en local
 +
 +Faites un fichier (test.mail) avec les lignes suivantes :
 +
 +Subject: test sendmail local
 +la toto titi
 +(ligne vide)
 +
 +Et ensuite envoyez vous ce courriel de test avec la commande :
 +/​usr/​bin/​sendmail -t -v user< test.mail
 +Vous devriez avoir quelque chose comme ça :
 +
 +bash-2.05b$ sendmail -v -t user <​test.mail ​
 +user... Connecting to [127.0.0.1] via relay...
 +220 hostname.domain.org ESMTP Sendmail 8.12.9p1/​8.12.9/​thierry - 01/02/04; Wed, 4 Feb 2004 17:45:51 +0100 (CET)
 +>>>​ EHLO hostname.domain.org
 +250-Hello hostname.domain.org [127.0.0.1],​ pleased to meet you
 +250-ENHANCEDSTATUSCODES
 +250-PIPELINING
 +250-EXPN
 +250-VERB
 +250-8BITMIME
 +250-SIZE
 +250-DSN
 +250-DELIVERBY
 +250 HELP
 +>>>​ MAIL From:<​user@hostname.domain.org>​ SIZE=42
 +250 2.1.0 <​user@hostname.domain.org>​... Sender ok
 +>>>​ RCPT To:<​user@hostname.domain.org>​
 +>>>​ DATA
 +250 2.1.5 <​user@hostname.domain.org>​... Recipient ok
 +354 Enter mail, end with "​."​ on a line by itself
 +>>>​ .
 +250 2.0.0 i14GjpNA006056 Message accepted for delivery
 +user... Sent (i14GjpNA006056 Message accepted for delivery)
 +Closing connection to [127.0.0.1]
 +>>>​ QUIT
 +221 2.0.0  hostname.domain.org closing connection
 +
 +Normalement en ouvrant mutt ou en utilisant tout simplement la commande "​mail"​ vous devriez voir apparaitre votre courriel.
 +
 +Pour infos, voici la liste des fichiers utilisés:
 +
 +drwxrwx--- ​   2 smmsp    smmsp         512 Feb  4 18:30 clientmqueue
 +drwxr-xr-x ​   8 root     ​daemon ​           512 Feb  4 18:05 incoming
 +drwxr-xr-x ​   2 root     ​daemon ​           512 Feb  4 18:30 mqueue
 +drwxr-xr-x ​   2 root     ​daemon ​           512 Feb  4 18:30 mqueue.in
 +drwxr-xr-x ​   3 root     ​daemon ​           512 Jan 19 11:45 output
 +drwxr-xr-x ​   3 root     ​daemon ​           512 Feb  3 16:52 quarantine
 +drwx------ ​      2 root    wheel               512 Feb  4 18:30 spamassassin
 +
 +
 +Mailscanner
 +
 +Installer mailscanner à partir des ports :
 +cd /​usr/​ports/​mail/​mailscanner-devel
 +#make && make install
 +
 +Le répertoire de travail se trouve dans /​usr/​local/​etc/​MailScanner/​
 +Dans ce répertoire,​ nous avons le fichier de config Mailscanner.conf et virus.scanners.conf.
 +
 +Mailscanner.conf:​
 +
 +Les principales lignes étant:
 +
 + Outgoing Queue Dir = /​var/​spool/​mqueue
 + Incoming Work Dir = /​var/​spool/​incoming
 + Quarantine Dir = /​var/​spool/​quarantine
 + Virus Scanning = yes
 + Virus Scanners = f-prot clamav
 + Quarantine Infections = yes
 + Quarantine Whole Message = yes
 + Use SpamAssassin = yes
 + Spam Actions = deliver
 + SpamAssassin User State Dir = /​var/​spool/​spamassassin
 + Log Spam = yes
 +
 +Bien sûr, chacun est libre de faire ce qu'il veut dans son fichier de config ... ;-)
 +
 +
 +virus.scanners.conf:​
 +
 + clamav ​         /​usr/​local/​libexec/​MailScanner/​clamav-wrapper ​  /​usr/​local
 + f-prot ​           /​usr/​local/​libexec/​MailScanner/​f-prot-wrapper ​  /​usr/​local/​f-prot
 +
 +Là bien sur, n'​ayant pas de licence, je n'ai pu tester que f-prot et clamav ...
 +
 +/​etc/​crontab:​
 +
 +0        11      *       ​* ​      ​* ​      ​root ​   /​usr/​local/​libexec/​MailScanner/​f-prot-autoupdate
 +15      11      *       ​* ​      ​* ​      ​root ​   /​usr/​local/​libexec/​MailScanner/​clamav-autoupdate
 +Pour l'​autoupdate des bases anti virus f-prot et clamav.
 +
 +Fonctionnement de l'​ensemble Sendmail/​Mailscanner
 +
 +Normalement,​ lors de l'​installation de Mailscanner,​ il y a création dans /​usr/​local/​etc/​rc.d/​ du fichier "​mta.sh"​.
 +Ce fichier est très important, car c'est lui qui indique à votre mta (sendmail ou exim) comment démarrer et avec quelles options.
 +Si nous prenons comme exemple sendmail :
 +
 + mta=sendmail ​
 + incoming_queue=/​var/​spool/​mqueue.in
 + incoming_args="​-L sm-mta-in -bd \
 +                                 -OPrivacyOptions=noetrn \
 +                                 -OQueueDirectory=${incoming_queue} \
 +                                 -ODeliveryMode=queueonly \
 +                                 -OPidFile=${inpidfile}"​
 +                 outgoing_args="​-L sm-mta-out -q${outgoing_queue_time} \
 +                                 -OPidFile=${outpidfile}"​
 +                 submitqueue_args="​-L sm-msp-queue -Ac -q${submit_queue_time} \
 +                                 -OPidFile=${subpidfile}"​
 +
 +Tout en respectant dans /​etc/​rc.conf => sendmail_enable="​NONE"​
 +Pour résumer, il faut que le système lance mailscanner.sh et mta.sh pour que l'​ensemble puisse fonctionner correctement.
 + 
 +Mailscanner-mrtg
 +
 +Là, pas grand chose à faire.
 +Installer :
 +
 +    * MailScanner version 4.0 ou plus
 +    * MRTG version 2.9 ou plus
 +    * perl version 5.005 ou plus
 +    * Apache
 +
 +
 +J'ai '​détaré'​ le fichier MSMRTG-test.tar.gz dans le répertoire /​usr/​local/​www/​data.
 +Une fois fait, nous avons un répertoire nommé '​mailscanner-mrtg'​ qui devient le DocumentRoot de mon serveur apache (/​usr/​local/​www/​data/​mailscanner-mrtg).
 +
 +Dans ce même répertoire,​ nous avons un fichier d'​install nommé '​install.pl'​ attention, à la date d'​aujourd'​hui,​ il est buggé, il faut remplacer ' unless (-f "/​etc/​crontab"​) { die "​ERROR:​ /etc/cron.d is not a file\nAborting...\n"​}'​ par ' unless (-f "/​etc/​crontab"​) { die "​ERROR:​ /​etc/​crontab is not a file\nAborting...\n"​}.
 +
 +Ensuite faire la manip suivante:
 +
 +#perl install.pl --cron=s --wwwconf=/​usr/​local/​etc/​apache2 --www=/​usr/​local/​www/​data --mrtgcfg=/​usr/​local/​etc/​mrtg --msconf=/​usr/​local/​etc/​MailScanner
 +Et répondre aux questions.
 +En admettant que votre DocumentRoot soit comme le mien, vous n'​aurez plus qu'à lancer votre navigateur : http://​127.0.0.1
 +
 +Ce document ne rentre pas dans les détails, il a pour vocation d'​insister sur les principaux axes, de manière à pouvoir faire fonctionner le tout.
 +Après, à vous de voir pour améliorer l'​ensemble.
 +Pour finir, une dernière suggestion : ne pas oublier, avant de poser des questions, le fabuleux 'tail -f /​var/​log/​maillog'​ très utile pour débugger.
 +
 +Petites précisions:​
 +Pour ceux comme moi qui utilisent fetchmail/​procmail,​ il faut imperativement enlever l'​option "mda "/​usr/​local/​bin/​procmail -d %T" de votre .fetchmailrc car dans le cas contraire, procmail filtrera vos emails avant le couple Mailscanner/​Spamassassin,​ ce qui aura pour effet de laisser le graphe "​spam"​ à zero ...
 +
 +Quelques liens utiles:
 +
 +http://​home.leo.org/​~barner/​freebsd/​articles/​mailsetup/​article.html
 +http://​www.linuxfocus.org/​English/​May2000/​article130.shtml
 +http://​www.linux-france.org/​article/​mail/​
 +
 +Merci
 +Thierry
freebsd/mailscanner.txt · Last modified: 2010/01/12 13:29 (external edit)