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:

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

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 :

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)