Sie sind auf Seite 1von 62

Accueil > HowTo Mail > Installation Serveur Mail Postfix, Amavisd, Mysql, Spamas

sassin, Dspam, (...)


Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin, Dspam, Dovecot
vendredi 2 mai 2014, par tonio
Cet article, initi en 2007, est mis jour rgulirement.
Le systme sur lequel est bas ce document est une DEBIAN stable (Jessie).
Le tuto est aussi entirement compatible avec la version Testing (Stretch).
Ce tuto fonctionne galement sous Ubuntu mais certains paquets prsentent de lgres dif
frences. On essaiera de les indiquer si possible.
Mise jour du 14/11/2016->http://www.starbridge.org/spip/spip.php?article12&artpa
ge=12-12#outil_sommaire_22]
Table des matires
Prparation de l'environnement
Cache DNS Local
Postfix et Mysql
Paramtrage de Postfix
Activation du TLS
Dovecot : SASL, LDA, IMAP et SIEVE
Installation PostfixAdmin
La gestion des Quotas
Antispam / Antivirus
Vrification des Headers, du Body et du Type Mime par Postfix.
Amavisd et SA
Installation Spamassassin
Installation Amavisd
Installation Clamav
Paramtrage Spamassassin
Dspam
Fonctions Avances d'amavisd : Penpals et gestion des users
Mailzu
DKIM
Policyd V2
Maintenance et automatismes : Tches Cron
Vacation AutoReply
Reporting et analyses des logs
Firewall
Versions du Document (ChangeLog)
Prparation de lenvironnementRetour la table des matires
On prendra comme base pour lexemple le domaine starbridge.org et le hostname du s
erveur de mail sera spike.
On met le systme jour :
aptitude update
aptitude full-upgrade
On vrifie les fichiers :
/etc/hostname :
spike.starbridge.org

/etc/hosts :
127.0.0.1
spike.starbridge.org localhost.localdomain localhost spike
Cache DNS LocalRetour la table des matires
Le fonctionnement dun serveur de mail ncessite lutilisation intensive de requtes DNS
.
Pour des raisons de performances, il est trs fortement conseill dinstaller un cache
DNS local.
aptitude install unbound
La configuration de base sous Debian fournie un serveur cache (on peut bien sur
le configurer pour grer son domaine local voire son domaine public mais ce nest pa
s le sujet de cet article).
On modifie le /etc/resolv.conf pour pointer en local :
nameserver 127.0.0.1
search starbridge.org
on relance le serveur DNS :
/etc/init.d/unbound restart
Puis on teste la rsolution avec nslookup ou dig
nslookup
>server
doit retourner :
Default server: 127.0.0.1
Address: 127.0.0.1#53
puis :
>yahoo.fr
La rsolution doit se faire correctement.
On installe ensuite les outils pour la compilation, ils seront ncessaires tout au
long de linstallation :
aptitude install bzip2 gcc libpcre3-dev libpcre++-dev g++ libtool libmysqlclient
-dev make libssl-dev libmysqld-dev libdb-dev automake autoconf bzip2 lbzip2 libb
z2-1.0 libbz2-dev curl libcurl3 libcurl4-openssl-dev libexpat1 libexpat1-dev
On cre le dossier de configuration gnral :
mkdir /etc/caremail
Postfix et MysqlRetour la table des matires
La version stable de Debian (Jessie) utilise postfix 2.11.3.
La derniere version de Postfix est la 3.1
La version Testing de Debian utilise la version 3.1
Le fait de rester en 2.11 nimpacte pas les fonctionnalits mises en place dans le t
uto (retrocompatibilit), donc pour le moment il nest pas forcment ncessaire de passe
r en 3.1 pour ceux qui sont en debian stable
On lance linstallation de postfix :
aptitude install postfix-mysql postfix-pcre
linstalleur va demander leffacement de exim que lon valide

puis il va demander le type dinstallation pour postfix, on laisse tout par dfaut.
on installe ensuite les autres paquets ncessaires :
aptitude install mysql-client mysql-server libsasl2-2 libsasl2-modules sasl2-bin
openssl ntp
voir le sujet sur le forum concernant loptimisation de mysql :
https://www.starbridge.org/support/viewtopic.php?f=6&t=1599
On installe apache + php5 pour grer plus tard le tout avec linterface postfixadmin
.
aptitude install libapache2-mod-php5 php5-mysql
Note : Il est fortement conseill dinstaller le SSL avec Apache pour scuriser les cha
nges. Cette configuration sera dtaille plus loin lors de linstallation de Postfixad
min.
Pour ceux qui le prfre, on peut tout de suite installer Phpmyadmin pour effectuer
ltape suivante.
(on ne dtaillera pas cette installation, en dehors du scope de ce document)
On passe donc la cration de la base sql Postfix :
Note : Si lon a mis un password lors de linstallation du paquet mysql, il faut sau
ter la premire commande ci dessous et excuter directement la seconde.
mysqladmin -u root password *****
mysqladmin -u root --password= ***** create postfix
Cration de luser postfix :
$ mysql -u root -p
Enter password:
GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY ******
;
On cre les tables suivantes dans la base Postfix :
Evidemment on modifie la commande sed pour inclure son domaine.
cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/postfix.sql
sed -i s/starbridge.org/toto.com/g postfix.sql
mysql -u root -p < postfix.sql
Explications :
Seules 3 tables sont ncessaires Postfix.
Le reste est pour linterface Postfixadmin que lon installera plus tard.
Le password (MD5) est "secret"
Le premier INSERT permet Postfix de savoir que ce domaine est virtuel et quil doi
t donc le grer.
Le 3me INSERT est un alias virtuel pointant vers un user de la table mailbox. Cet
alias vers lui mme sera utilis par Postfixadmin.
le 4me INSERT est un simple alias virtuel.
Le 7me INSERT est un compte (boite email) virtuel, qui utilise un mot de passe en
crypt en MD5.

Les deux derniers INSERT permettent de crer le superadministrateur que lon utilise
ra plus tard dans Postfixadmin.
#PAGINATION
Paramtrage de PostfixRetour la table des matires
On remplace tout le /etc/postfix/main.cf par le contenu ci dessous :
noubliez pas de remplacer myhostname = spike.starbridge.org par votre domaine
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
myhostname = spike.starbridge.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8
recipient_delimiter = +
home_mailbox = Maildir/
notify_classes = 2bounce, bounce, delay, policy, protocol, resource, software
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf
relay_recipient_maps = proxy:mysql:/etc/postfix/mysql_relay_recipients_maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf,proxy:
mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf,proxy:mysql:/etc/postfix/m
ysql_virtual_alias_domain_catchall_maps.cf
virtual_gid_maps = static:20001
virtual_mailbox_base = /home/virtual
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf,pr
oxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_minimum_uid = 20001
virtual_uid_maps = static:20001
transport_maps = proxy:mysql:/etc/postfix/mysql_transport.cf,proxy:mysql:/etc/po
stfix/mysql_transport2.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt
ual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipien
t_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonica
l_maps $relocated_maps $transport_maps $mynetworks $smtpd_recipient_restrictions
$smtpd_sender_login_maps $has_our_domain_as_sender
message_size_limit = 50240000
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
permit
smtpd_data_restrictions =
reject_unauth_pipelining,
permit
Ceux qui sont en postfix 2.10 et suprieur doivent ajouter cette ligne au dessus d
u bloc smtpd_recipient_restrictions
smtpd_relay_restrictions =
ce qui donne :
smtpd_relay_restrictions =
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
permit

smtpd_data_restrictions =
reject_unauth_pipelining,
permit
On modifie le /etc/postfix/master.cf comme ci dessous :
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
#
(yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp
inet n
n
smtpd
#smtp
inet n
n
1
postscreen
#smtpd
pass n
smtpd
#dnsblog unix n
0
dnsblog
#tlsproxy unix n
0
tlsproxy
#submission inet n
n
smtpd
587
inet
n
n
smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_etrn_restrictions=reject
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps
inet n
smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#628
inet n
qmqpd
pickup
fifo n
n
60
1
pickup
-o receive_override_options=no_header_body_checks
-o content_filter=
cleanup unix n
n
0
cleanup
qmgr
fifo n
n
300
1
qmgr
#qmgr
fifo n
300
1
oqmgr
tlsmgr
unix n
1000? 1
tlsmgr
rewrite unix n
trivial-rewrite
bounce
unix n
0
bounce
defer
unix n
0
bounce
trace
unix n
0
bounce
verify
unix n
1
verify
flush
unix n
n
1000? 0
flush
proxymap unix n
proxymap
proxywrite unix n
1
proxymap
smtp
unix n
smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay
unix n
smtp
#
-o fallback_relay=
#
-o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq
unix n
n
showq
error
unix n
error
retry
unix n
error
discard unix n
discard
local
unix n
n
local
virtual unix n
n
virtual
lmtp
unix n
lmtp
anvil
unix n
1
anvil
scache
unix n
1
scache
#
# # See the Postfix UUCP_README file for configuration details.

#
uucp
unix n
n
pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
On cre le groupe et le user vmail avec luid et gid 20001, ainsi que le rpertoire de
s mails :
groupadd -g 20001 vmail
useradd -g vmail -u 20001 vmail -d /home/virtual -m
On scurise :
chown -R vmail: /home/virtual
chmod 770 /home/virtual
On cre les fichiers dappel des tables par Postfix :
(la commande sed permet de specifier votre password daccs la base, dans lexemple ic
i cest toto)
cd /etc/postfix
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_m
aps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_domains
_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_mailbox
_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_relay_domains_m
aps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_relay_recipient
s_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_d
omain_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_d
omain_catchall_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_d
omain_mailbox_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_transport.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_transport2.cf
sed -i s/\*\*\*\*/toto/g mysql_virtual_alias_maps.cf mysql_virtual_domains_map
s.cf mysql_virtual_mailbox_maps.cf mysql_relay_domains_maps.cf mysql_relay_recip
ients_maps.cf mysql_virtual_alias_domain_maps.cf mysql_virtual_alias_domain_catc
hall_maps.cf mysql_virtual_alias_domain_mailbox_maps.cf mysql_transport.cf mysql
_transport2.cf
On scurise le tout :
chmod 640 /etc/postfix/mysql_*
chgrp postfix /etc/postfix/mysql_*
HURRICANe Pro
Activation du TLSRetour la table des matires
Pour un serveur en production, il serait prfrable dutiliser un vritable certificat f
ourni et sign par une autorit de certification de confiance.
On dite la configuration de ssl pour pouvoir signer des certificats sur 10 ans, a
u lieu de 1 an par dfaut :
vi /etc/ssl/openssl.cnf
on change la ligne default_days en
default_days
= 3650
On cre le Certificat Racine :
cd ~

/usr/lib/ssl/misc/CA.pl -newca
on entre les parametres requis, on choisis un pass phrase de son choix et on lai
sse "challenge password" vide.
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
.......++
.........................................++
writing new private key to ./demoCA/private/cakey.pem
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
You are about to be asked to enter information that will be incorporated
into your certificate request.

What you are about to


There are quite a few
For some fields there
If you enter . , the

enter is what is called a Distinguished Name or a DN.


fields but you can leave some blank
will be a default value,
field will be left blank.

Country Name (2 letter code) [AU]:FR


State or Province Name (full name) [Some-State]:Paris
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Starbridge
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:starbridge.org
Email Address []:tonio@starbridge.org
Please enter the following extra attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
84:7c:ce:d2:f7:cf:df:6c
Validity
Not Before: Nov 13 16:44:33 2007 GMT
Not After : Nov 12 16:44:33 2010 GMT
Subject:
countryName
= FR
stateOrProvinceName
= Paris
organizationName
= Starbridge
commonName
= starbridge.org
emailAddress
= tonio@starbridge.org
X509v3 extensions:
X509v3 Subject Key Identifier:
B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:57
X509v3 Authority Key Identifier:
keyid:B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:5
7
DirName:/C=FR/ST=Paris/O=Starbridge/CN=starbridge.org/emailAddre
ss=tonio@starbridge.org

serial:84:7C:CE:D2:F7:CF:DF:6C
X509v3 Basic Constraints:
CA:TRUE
Certificate is to be certified until Nov 12 16:44:33 2010 GMT (1095 days)
Write out database with 1 new entries
Data Base Updated
Ce certificat racine sert signer les certificats. Il est localis dans le rpertoire
/demoCA.
On cre maintenant une cl prive pour le serveur ainsi quun csr (Certificate Signing R
equest : demande de signature de certificat).
mkdir ~/CERT
cd ~/CERT
openssl req -new -nodes -keyout starbridge-key.pem -out starbridge-req.pem -days
3650
et on entre les paramtres comme ci dessous :
Generating a 1024 bit RSA private key
.............++
.............++
writing new private key to starbridge-key.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter . , the field will be left blank.
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Paris
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Starbridge
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:spike.starbridge.org
Email Address []:tonio@starbridge.org
Please enter the following extra attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Note : le paramtre le plus important est le Common Name qui doit tre le mme que le
nom avec lequel se connecte les clients sur le serveur. Ici il sagit du FQDN : sp
ike.starbridge.org.
cela gnre 2 fichiers :
la cl prive, protger absolument
la demande de certificat, qui est pour faire simple un certificat public non sig
n
On signe maintenant notre certificat public avec le certificat racine :
cd ~
openssl ca -out CERT/starbridge-cert.pem -infiles CERT/starbridge-req.pem
Voici la sortie de la signature :
Using configuration from /usr/lib/ssl/openssl.cnf

Enter pass phrase for ./demoCA/private/cakey.pem:


Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
84:7c:ce:d2:f7:cf:df:6d
Validity
Not Before: Nov 13 16:51:32 2007 GMT
Not After : Nov 10 16:51:32 2017 GMT
Subject:
countryName
= FR
stateOrProvinceName
= Paris
organizationName
= Starbridge
commonName
= spike.starbridge.org
emailAddress
= tonio@starbridge.org
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
05:2A:A9:90:6F:2A:80:F7:E3:EF:2B:F9:44:9D:8E:CF:C3:16:18:EF
X509v3 Authority Key Identifier:
keyid:B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:5
7
Certificate is to be certified until Nov 10 16:51:32 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
On copie maintenant le certificat et la cl dans postfix :
mkdir /etc/postfix/tls
cp demoCA/cacert.pem CERT/starbridge-key.pem CERT/starbridge-cert.pem /etc/postf
ix/tls/
chmod 644 /etc/postfix/tls/starbridge-cert.pem /etc/postfix/tls/cacert.pem
chmod 400 /etc/postfix/tls/starbridge-key.pem
chmod 400 ~/CERT/*
On ajoute ceci au /etc/postfix/main.cf :
smtp_tls_CAfile = /etc/postfix/tls/cacert.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_tls_session_cache
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/tls/starbridge-key.pem
smtpd_tls_cert_file = /etc/postfix/tls/starbridge-cert.pem
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_tls_session_cac
he
tls_random_source = dev:/dev/urandom
smtpd_tls_protocols = !SSLv2,!SSLv3

On redmarre Postfix :
postfix reload
on testera le fonctionnement aprs linstallation de dovecot.
Dovecot : SASL, LDA, IMAP et SIEVERetour la table des matires
De "simple" serveur imap, Dovecot est devenu un ensemble doutils indispensables p
our la messagerie :
- il permet de grer le SASL trs simplement au travers de Postfix afin de fournir c
e dernier un moyen dauthentifier les transactions SMTP,
- il fournit un agent de livraison de mail trs performant et parfaitement intgr Pos
tfix,
- il permet de prendre en charge le langage Sieve pour le filtrage des mails lor
s de la livraison,
- et bien sur, il demeure un serveur imap rapide et lger.
On va dtailler ici son installation, fonction par fonction.
Installation de Dovecot :
On va utiliser la version 2.2 de Dovecot.
On compilera depuis les sources.
Crer les users pour dovecot :
adduser --system --group --home /usr/lib/dovecot --gecos "Dovecot mail server" -disabled-password --quiet dovecot
adduser --system --home /nonexistent --gecos "Dovecot login user" --disabled-pa
ssword --quiet dovenull
on compile :
cd ~
mkdir dovecot
cd dovecot
wget http://dovecot.org/releases/2.2/dovecot-2.2.25.tar.gz
wget http://pigeonhole.dovecot.org/releases/2.2/dovecot-2.2-pigeonhole-0.4.15.ta
r.gz
tar xvzf dovecot-2.2.25.tar.gz
tar xvzf dovecot-2.2-pigeonhole-0.4.15.tar.gz
cd dovecot-2.2.25
./configure --prefix=/usr/ --sysconfdir=/etc/ --with-mysql --libexecdir=/usr/lib
/ --localstatedir=/var --with-moduledir=/usr/lib/dovecot/modules --disable-rpath
--disable-static --with-zlib --with-bzlib --with-solr
make
make install
cd ../dovecot-2.2-pigeonhole-0.4.15
./configure --with-dovecot=/usr/lib/dovecot/ --prefix=/usr/ --sysconfdir=/etc/ -libexecdir=/usr/lib/ --disable-static
make
make install
On copie les fichiers de configuration ncessaires :
cd /etc/dovecot/
svn export http://smtp04.spamguard.fr/svn/Procmail/dovecot/dovecot.conf
svn export http://smtp04.spamguard.fr/svn/Procmail/dovecot/dovecot-sql.conf
svn export http://smtp04.spamguard.fr/svn/Procmail/dovecot/dovecot-dict-quota-sq
l.conf
chown vmail:dovecot dovecot-dict-quota-sql.conf
chmod 600 dovecot-sql.conf
chmod 640 dovecot-dict-quota-sql.conf

On indique le password de la table postfix :


sed -i s/\*\*\*\*\*/toto/g dovecot-sql.conf dovecot-dict-quota-sql.conf
on ne relance pas encore dovecot pour le moment
La livraison des emails : Dovecot LDA
- Nous avons maintenant besoin dun MDA (mail delivery agent) pour livrer les mail
s dans les botes.
Le service de livraison Virtual de Postfix ne convient pas totalement pour notre
usage.
En effet nous allons avoir besoin de capacit de filtrage sur le MDA ainsi que la
possibilit de grer les quotas, ce que ne sait pas faire Virtual.
Procmail est trs bien pour le filtrage, mais ne supporte pas les users/domaines v
irtuels, car il ne sait pas communiquer avec une base de donnes.
Une mthode rpandue pour les quotas est lapplication du patch VDA sur Postfix, optio
n que nous ne choisirons pas pour des raisons de fiabilit.
Maildrop convient bien, il a dailleurs longtemps t utilis dans ce tuto, mais nous lav
ons maintenant remplac par le MDA inclus dans Dovecot, plus performant et surtout
trs bien maintenu.
Cest donc Dovecot LDA (Local Delivery Agent, le MDA de dovecot) qui soccupera de l
a livraison des mails dans les home.
Il faut configurer Postfix pour quil utilise Dovecot comme MDA :
On ajoute ceci au /etc/postfix/main.cf :
dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
et on ajoute un transport dovecot au /etc/postfix/master.cf :
dovecot unix
n
n
pipe
flags=DRhu user=vmail: argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@$
{nexthop} -a ${recipient}
A noter que la configuration du tuto permet de choisir son transport par domaine
. Il faut pour cela choisir Dovecot dans la configuration de domaine dans Postfi
xadmin.
Le domaine par dfaut, cre par le script sql du tuto, est dja paramtr pour utiliser Do
vecot.
Dovecot est galement prconfigur pour utiliser les mmes certificats SSL que Postfix,
que lon a gnr dans ltape prcdente.
Il ny a donc rien de particulier configurer pour le SSL sauf si vous avez modifi l
es noms de fichiers des certificats ssl ltape postfix.
il faut maintenant crer un fichier /etc/init.d/dovecot :
cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/init.d/dovecot
chmod 755 /etc/init.d/dovecot
insserv -v /etc/init.d/dovecot
On lance Dovecot :
/etc/init.d/dovecot start
on relance Postfix
postfix reload
On verifie dans les logs que tout a dmarr correctement.

On teste cette premire configuration de base en envoyant un mail a user@starbridg


e.org
mail user@starbridge.org
note : il faut taper un . (un point seul sur la ligne) pour terminer le message.
On regarde les logs pour les erreurs.
Si tout a fonctionn on devrait trouver dans une ligne :
...dovecot: lda(user@starbridge.org)...
note : si la commande mail nexiste pas sur le systme (Ubuntu par exemple) linstalle
r avec aptitude install mailx
Puis on teste en direct sur le port 25 :
(ce quil faut taper est prcd de --->, le reste cest le retour du serveur) :
---> telnet localhost 25
220 [127.0.0.1] ESMTP Postfix
---> HELO localhost
250 [127.0.0.1]
---> MAIL FROM: <>
250 2.1.0 Sender OK
---> RCPT TO: <user@starbridge.org>
250 2.1.5 OK
---> DATA
354 End data with <CR><LF>.<CR><LF>
---> .
250 2.0.0 Ok: queued as 079474CE44
---> QUIT
221 2.0.0 Bye
Connection closed by foreign host
On regarde les logs pour vrifier.
on regarde dans le dossier /home/virtual/user@starbridge.org : on devrait trouve
r les dossiers suivants :
drwx------ 9 vmail vmail 4096 11 sept. 18:20 .
drwxrwx--- 4 vmail vmail 4096 11 sept. 18:13 ..
-rw------- 1 vmail vmail 384 11 sept. 18:20 dovecot.mailbox.log
-rw------- 1 vmail vmail 291 11 sept. 18:20 dovecot-quota
drwx------ 2 vmail vmail 4096 11 sept. 18:20 mailboxes
En regardant dans mailboxes on trouvera les dossiers par dfaut qui sont cres autom
atiquement.
Sieve
Dovecot LDA permet dutiliser le langage de filtrage Sieve.
Celui-ci offre la possibilit dappliquer des rgles spcifiques pour les utilisateurs (
redirection dans les rpertoires, etc).
Mais avant cela, nous avons besoin dun fichier de filtre Sieve global (son utilis
ation est paramtre dans dovecot.conf) qui permettra de rediriger les spams dans un
dossier de lutilisateur :
mkdir /home/virtual/sieve
chown vmail: /home/virtual/sieve
chmod 750 /home/virtual/sieve
on cre le fichier global.sieve :

vi /home/virtual/sieve/global.sieve
require ["fileinto", "envelope", "subaddress"];
if envelope :detail "to" "spam"{
fileinto "Spam";
}
on scurise :
chown vmail: /home/virtual/sieve/global.sieve
chmod 600 /home/virtual/sieve/global.sieve
NOTE : Le fichier global.sieve est commun tous les
aque mail. Si lon veut appliquer des rgles spcifiques
crer un autre fichier sieve dans son Maildir. On pourra
emails dans des rpertoires spcifiques de cette faon.
fichier dovecot.sieve dans le maildir de lutilisateur.

comptes et sera appliqu ch


un utilisateur, il suffit de
par exemple rediriger des
Dovecot cherche pour cela le

Pour la cration assiste et autonome (par les utilisateurs eux-mmes) des fichiers Si
eve personnels on pourra utiliser un module du Webmail horde.
Larticle sur linstallation du Webmail traite ce point en dtail.
Il est galement possible dutiliser le protocole Sieve pour crer/modifier les script
s depuis un client lourd, Thunderbird propose par exemple un plugin pour la gest
ion des scripts Sieve.
Le port de connection par dfaut est le 4190.
Les users seront ainsi totalement autonomes sur la gestion de leur paramtres de f
iltrage.
Consultation des emails par IMAP
On teste limap en TLS sur le port 143 depuis un client mail.
Si tout fonctionne correctement on doit accder aisment aux messages de tests prcdent
s depuis le client mail.
Prise en charge du SASL par Dovecot :
Enfin, on passe la configuration SASL :
On ajoute ceci au /etc/postfix/main.cf :
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
On ajoute galement "permit_sasl_authenticated" dans "smtpd_recipient_restrictions
" pour valider les restrictions (attention bien placer le paramtre exactement lend
roit indiqu) :
.....
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
......
on relance Postfix :
postfix reload

On vrifie le fonctionnement depuis un client mail configur pour lauthentification S


ASL sur un chiffrement TLS avec les mmes identifiants que pour la connexion IMAP
(ne pas oublier le @starbridge.org).
Pour le type dauthentication, il faut slectionner "en clair" (le terme dpend du cli
ent mail).
Cest le chiffrage de la connexion par le TLS qui scurisera le transfert du passwor
d.
Cest pour cela quil ne faut pas dissocier TLS et authentification.
Note : la directive smtpd_tls_auth_only = yes impose lusage dune connexion scurise p
our lauthentification SASL, ce qui limitera les erreurs de configuration des util
isateurs.
Installation PostfixAdminRetour la table des matires
Pour faciliter la cration des users et la gestion des botes et des comptes, on uti
lise Postfixadmin.
Nous utiliserons une version modifie que nous prendrons par SVN.
Activation du SSL dans Apache
Le SSL est indispensable pour scuriser les changes, en particulier les mots de pas
se utilisateurs.
On active le SSL par la commande :
a2enmod ssl.conf
Puis on cre le virtual host :
vi /etc/apache2/sites-available/ssl.conf
Et on colle :
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@starbridge.org
ServerName www.starbridge.org
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/starbridge-certkey-www.pem

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown


</VirtualHost>
puis on active le virtual host :
a2ensite ssl
Gnration des certificats :
Il est important de crer un certificat avec le mme nom que celui utilis pour la con
nection.
Par exemple si on se connecte au serveur web par www.starbridge.org il faut crer
un certificat avec un Common Name en www.starbridge.org.
On part du principe que lon utilise www.starbridge.org.
On cre donc un certificat public non sign et une cl, puis on le signe avec le CA :
cd ~/CERT
openssl req -new -nodes -keyout starbridge-key-www.pem -out starbridge-req-www.p
em -days 3650
On entre les informations en prenant soin de bien spcifier le Common Name en www.
starbridge.org.
Il faut galement respecter les informations entres plus tt dans le CA.
cd ~
openssl ca -out CERT/starbridge-cert-www.pem -infiles CERT/starbridge-req-www.pe
m
chmod 400 ~/CERT/*
cd CERT/
cat starbridge-key-www.pem starbridge-cert-www.pem >starbridge-certkey-www.pem
mkdir /etc/apache2/ssl
cp starbridge-certkey-www.pem /etc/apache2/ssl/
chmod 600 /etc/apache2/ssl/starbridge-certkey-www.pem
chmod 400 ~/CERT/*
On redmarre Apache :
/etc/init.d/apache2 restart
On teste la connexion par
https://www.starbridge.org
Le navigateur va demander la validation du certificat car celui ci nest pas recon
nu par une autorit de confiance. Ceci est normal (cest un certificat self-signed).
Pour un serveur en production, il serait donc prfrable dutiliser un vritable certifi
cat (payant).
aptitude install subversion
cd /var/www
svn co http://smtp04.spamguard.fr/svn/Procmail/mailstorm/postfixadmin-relay post
fixadmin-relay
chown -R www-data: /var/www/postfixadmin-relay
cd postfixadmin-relay
chmod 640 *.php
cd /var/www/postfixadmin-relay/admin/
chmod 640 *.php
cd /var/www/postfixadmin-relay/images/
chmod 640 *.png
cd /var/www/postfixadmin-relay/languages/
chmod 640 *.lang
cd /var/www/postfixadmin-relay/templates/

chmod 640 *.php


cd /var/www/postfixadmin-relay/users/
chmod 640 *.php
cd /var/www/postfixadmin-relay/
Il faut remplacer toutes les entres starbridge dans le fichier de configuration p
ar celles correspondantes votre domaine.
(toto est le password pour la base sql postfix et toto.com votre domaine) :
sed -i "s/password ] = \*\*\*\*\* /password ] = toto /" config.inc.php
sed -i s/www.starbridge.org/www.toto.com/g config.inc.php
sed -i s/starbridge.org/toto.com/g config.inc.php
On scurise ce fichier :
chown www-data: /var/www/postfixadmin-relay/config.inc.php
chmod 640 config.inc.php
On se connecte ensuite linterface :
https://www.starbridge.org/postfixadmin-relay
(bien sur on remplace starbridge par votre domaine sinon vous vous connectez che
z moi !!)
On sidentifie avec @starbridge.org (on la cr plus tt lors des inserts sql - on rappel
le que le password est secret)
On retrouvera les lments entrs en ligne de commande au dbut du document.
On cre un nouvel utilisateur pour valider.
[rouge]On rappelle que lutilisation du SSL pour se connecter Postfixadmin est IND
ISPENSABLE si on doit passer par internet pour grer la plateforme. Sur un rseau lo
cal son utilisation serait prfrable.[/rouge]
RAFALe
La gestion des QuotasRetour la table des matires
On la vu, on a install dovecot LDA qui prend en charge les quotas et on a paramtr da
ns la base SQL des champs pour les grer.
Il faut maintenant les paramtrer :
On cre un message dalerte gnrique pour le dpassement de quotas :
(on pensera ladapter a ses besoins mais il faut tre prudent dans la mise en forme
du fichier)
cd /usr/bin
svn export http://smtp04.spamguard.fr/svn/Procmail/dovecot/quota-warning.sh
chmod +x /usr/bin/quota-warning.sh
Le reste est dj paramtr dans Dovecot.
Il suffit dutiliser Postfixadmin pour rgler un quota pour un utilisateur.
Le faire avec lutilisateur user@starbridge.org qui par dfaut na pas de quota.
On teste en envoyant un mail.
On regarde les logs.
Voila le serveur est configur !
A ce stade le serveur est scuris mais ne filtre ni les virus, ni les spams.
Antispam / AntivirusRetour la table des matires

Paramtrage de Postfix :
Une grande majorit des spams ne respecte pas les rgles denvoi demail : HELO incorrec
t, MAILFROM dun domaine inconnu, etc, etc...
Il est trs fortement conseill de lire des documents sur ce sujet, notamment les RF
C pour bien comprendre le fonctionnement.
La premire chose faire est de renforcer Postfix pour quil soit beaucoup plus restr
ictif.
Pour cela on va utiliser les smtpd_recipient_restrictions.
On ne dtaillera pas ici les actions prcises de chaque rgle. (la documentation de Po
stfix est trs complte sur le sujet et larticle sur la gestion du serveur de mail re
vient sur tous les points en les dtaillant).
On dite le main.cf et on remplace tout le smtpd_recipient_restrictions par celui
ci :
smtpd_recipient_restrictions =
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_unknown_recipient_domain,
reject_invalid_helo_hostname,
reject_unlisted_recipient,
reject_unlisted_sender,
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_helo_hostname,
reject_unauth_destination,
check_client_access hash:/etc/postfix/internal_networks,
check_sender_access proxy:mysql:/etc/postfix/mysql_not_our_domain_as_sen
der.cf,
check_helo_access proxy:mysql:/etc/postfix/mysql-hello.cf,
check_sender_access proxy:mysql:/etc/postfix/mysql-sender.cf,
check_client_access proxy:mysql:/etc/postfix/mysql-client.cf,
permit
on va aussi paramtrer 4 RBL (des blacklists) qui filtrent trs efficacement.
Pour cela, on va se servir dune fonctionnalit apparue depuis la version 2.8 de pos
tfix : postscreen.
Toujours dans le main.cf, on ajoute tout en bas du fichier :
postscreen_dnsbl_threshold = 2
postscreen_dnsbl_sites = zen.spamhaus.org*2
bl.spamcop.net*2 b.barracudacentral.org*1 bl.mailspike.net*1
postscreen_dnsbl_action = enforce
postscreen_greet_action = enforce
Dans le master.cf, on commente la premire ligne :
#smtp
inet n
n
et on dcommente les suivantes :
smtp
inet n
n
smtpd
pass n
dnsblog unix n
tlsproxy unix n

1
0
0

smtpd
postscreen
smtpd
dnsblog
tlsproxy

ATTENTION : Il existe dautres RBL qui peuvent rendre le filtrage encore plus
restrictif mais je dconseille de les installer dans Postfix sur un serveur en pro
duction, bien que lon puisse se servir des tables ci dessous (mysql-sender.cf et
mysql-client.cf) pour whitelister certains clients ou expditeurs).
Il vaut mieux grer les RBL supplmentaires au travers de Spamassassin.
A noter que Postscreen effectue egalement une autre vrification (greet_action) qu
i est particulirement efficace (voir la doc de Postfix pour en comprendre le fonc
tionnement)
- Ensuite il faut limiter les possibilits de forging des expditeurs en vrifiant les
MAIL FROM (adresses expditrices).
Toujours dans le main.cf, on place au dessus du bloc smtpd_recipient_restriction
s = :
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-sasl-sender-check.cf,pr
oxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf
smtpd_sender_restrictions =
reject_authenticated_sender_login_mismatch
smtpd_reject_unlisted_sender = yes
smtpd_restriction_classes =
has_our_domain_as_sender
has_our_domain_as_sender =
check_sender_access proxy:mysql:/etc/postfix/mysql_our_domain_as_sender.cf,has
h:/etc/postfix/our_domain_as_sender
reject
Cela permettra dempcher des utilisateurs de mettre une autre adresse email dans le
MAIL FROM. Ils seront obligs de passer par les domaines que lon gre.
De mme, les utilisateurs authentifis par SASL seront tenus dutiliser comme adresse
email (MAIL FROM) un alias valide de leur mail principal (on dtaillera ce fonctio
nnement dans le document sur la gestion du serveur).
- Il faut maintenant crer les fichiers suivants :
On cre le fichier /etc/postfix/internal_networks :
cd /etc/postfix/
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/internal_networks

On dite ce fichier et on spcifie son rseau local et son adresse publique lintrieur :
10.0.0
has_our_domain_as_sender
Cela permet de spcifier la ou les plages IP de notre rseau, qui seront autorises en
voyer un mail avec nos domaines dans le MAIL FROM.
Cela permet galement de prciser les IP autorises envoyer un mail en se prsentant ave
c notre HELO.
On bloquera ainsi les clients SMTP extrieurs qui se prsentent avec un HELO qui est
le notre :
Ensuite on cre les fichier suivants qui appellent les tables SQL.
cd /etc/postfix/

svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql-hello.cf


svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql-sender.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql-client.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql-sasl-sender-che
ck.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_our_domain_as_s
ender.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_not_our_domain_
as_sender.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/our_domain_as_sender
Pour info voici leurs fonctions :
/etc/postfix/mysql-hello.cf : Cette table SQL listera les HELO de no
s domaines email (on peut en possder plusieurs dans le cas dun serveur multidomain
e).
/etc/postfix/mysql-sender.cf : Il sert blacklister ou whitelister le
s MAILFROM, cest dire les expditeurs, selon leur adresse email ou juste le domaine
de celle ci.
/etc/postfix/mysql-client.cf : Il sert blacklister ou whitelister le
s clients par leur connection (ip/domaine).
/etc/postfix/mysql-sasl-sender-check.cf : Il sert spcifier les adress
es que les utilisateurs authentifis par SASL peuvent utiliser comme MAIL FROM.
On remarquera que lon fait appel la table alias. En effet cest le meil
leur endroit pour connatre les MAIL FROM dun utilisateur, car un mail from valide
doit tre une adresse valide pour cet utilisateur. (donc un de ces alias)
/etc/postfix/mysql_our_domain_as_sender.cf : Il sert spcifier les dom
aines autoriss comme MAIL FROM pour les users internes authentifis par leur IP (le
s clients en local peuvent envoyer un email local sans sauthentifier dans notre c
onfiguration)
/etc/postfix/our_domain_as_sender : Il sert spcifier le null sender p
our la regle du dessus.
On postmape les fichiers qui le ncessitent :
postmap /etc/postfix/internal_networks
postmap /etc/postfix/our_domain_as_sender
On modifie le password des fichiers de lookup (la commande sed permet de spcifier
votre password daccs la base, dans lexemple ici cest toto) :
sed -i s/\*\*\*\*/toto/g mysql-hello.cf mysql-sender.cf mysql-client.cf mysqlsasl-sender-check.cf mysql_our_domain_as_sender.cf mysql_not_our_domain_as_sende
r.cf
Et on scurise les fichiers de lookup :
chown -R root:postfix /etc/postfix/mysql*
chmod 640 /etc/postfix/mysql*
- On cre les tables en question :
Evidemment, on modifie la commande sed pour inclure son domaine. Ici cest toto.co
m
cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/postfix_access.sql
sed -i s/starbridge.org/toto.com/g postfix_access.sql
mysql -u root -p < postfix_access.sql

On relance Postfix
postfix reload
on vrifie les logs et on teste.
On a insr des exemples de blacklist et de whitelist.
Tout le dtail du fonctionnement se trouve dans le document gestion serveur de mai
l.
On peut utiliser PhpMyadmin pour grer ces tables SQL.
Vrification des Headers, du Body et du Type Mime par Postfix.Retour la table des
matires
Postfix peut vrifier les mails entrants trs simplement en analysant le header, le
body et le type mime des pices jointes.
Ce type de blocage est trs efficace, plus rapide que de laisser faire Amavisd ou
SA, mais manque de souplesse.
Il savre cependant trs efficace pour bloquer des types de fichiers par exemple sans
que le mail ne soit envoy au serveur puis trait (conomie de bande passante et de C
PU).
Cependant une trop grande quantit de rgles et un fort trafic aurait leffet inverse
sur les performances.
Il faut donc utiliser ces rgles avec prcaution.
On cre les fichiers ncessaires :
cd /etc/postfix/
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/body_checks.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/header_checks.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mime_headers_checks.c
f
On dite le /etc/postfix/main.cf et on ajoute les lignes :
header_checks = regexp:/etc/postfix/header_checks.cf
body_checks = regexp:/etc/postfix/body_checks.cf
mime_header_checks = regexp:/etc/postfix/mime_headers_checks.cf
On relance Postfix :
postfix reload
On teste en envoyant un mail classique puis un autre qui contient un des mots ou
type bloqus par ces rgles.
Le blocage est immdiat et se traduit par un retour derreur au moment de lenvoi.
EOLE
Amavisd et SARetour la table des matires
on installe les prrequis damavisd :
aptitude install file libcompress-bzip2-perl nomarch arc p7zip-full arj zoo lzop
tnef pax cabextract
et les modules Perl :
Pour ceux qui le souhaitent, on peut installer tous les modules perl ncessaires p

ar CPAN ce qui permet davoir les versions les plus rcentes : Modules Perl Amavisd
par CPAN
aptitude install libarchive-tar-perl libarchive-zip-perl libberkeleydb-perl libc
ompress-zlib-perl libconvert-tnef-perl libconvert-uulib-perl libdigest-md5-perl
libio-stringy-perl libmailtools-perl libmime-base64-perl libmime-perl libnet-per
l perl-modules libnet-server-perl libtime-hires-perl libunix-syslog-perl libmail
-dkim-perl liblog-log4perl-perl liblog-dispatch-perl libgetopt-argvfile-perl lib
convert-binhex-perl libemail-sender-perl libnet-libidn-perl
On installe les dpendances de SA :
Pour ceux qui le souhaitent, on peut installer tous les modules perl ncessaires p
ar CPAN ce qui permet davoir les versions les plus rcentes : Modules perl pour SA
par CPAN
aptitude install razor pyzor libhtml-parser-perl libnet-dns-resolver-programmabl
e-perl liberror-perl libmail-spf-perl libmail-sendmail-perl libnetaddr-ip-perl l
ibdbi-perl libdbd-mysql-perl liblocale-subcountry-perl libwww-perl libimage-base
-bundle-perl libimage-base-perl libimage-info-perl libnet-cidr-lite-perl libmime
-encwords-perl libemail-valid-perl libencode-detect-perl
Note : IP ::Country nexiste pas en paquet, il faut linstaller par CPAN
Installation SpamassassinRetour la table des matires
On installe SA depuis les sources :
cd ~
wget http://mirror.ibcp.fr/pub/apache//spamassassin/source/Mail-SpamAssassin-3.4
.1.tar.gz
tar xvzf Mail-SpamAssassin-3.4.1.tar.gz
cd Mail-SpamAssassin-3.4.1
perl Makefile.PL PREFIX=/usr
make
make install
On lance toute de suite lupdate des rgles de SA (obligatoire depuis la version 3.3
.0) :
sa-update -D
Cela aura pour effet de tlcharger les rgles jour. Elles seront installes dans /var/l
ib/spamassassin/3.004001 (ce qui correspond la version 3.4.1 de SA)
Installation AmavisdRetour la table des matires
Tlcharger les sources damavisd :
cd ~
wget http://amavis.org/amavisd-new-2.10.1.tar.xz
tar xvf amavisd-new-2.10.1.tar.xz
cd amavisd-new-2.10.1
Crer le user et le groupe amavis :
groupadd -g 1002 amavis
useradd -g amavis -u 1002 amavis -d /var/amavis -m
Crer les sous rpertoires dans le home damavis :
mkdir /var/amavis/tmp /var/amavis/var /var/amavis/db /var/amavis/home
chown -R amavis: /var/amavis
On cre 2 lecteur tmpfs pour hberger les rpertoires db et tmp damavis. Cela accrot not
ablement les performances de traitement :
Modifier /etc/fstab :
tmpfs /var/amavis/db tmpfs rw,size=10m,mode=700,uid=amavis,gid=amavis 0 0

tmpfs /var/amavis/tmp tmpfs rw,size=150m,mode=700,uid=amavis,gid=amavis 0 0


Note : La taille de ces lecteurs tmpfs est modifier selon la charge du serveur,
la configuration et bien sur la quantit de RAM disponible.
Pour simplifier /var/amavis/tmp est dpendant du nombre dinstances damavisd et de la
taille maximale dun message. Les paramtres mis ici sont ok pour 5 instances et un
message_size_limit de 10 Mo, ce qui est largement suffisant dans la config par
dfaut damavisd (2 instances)
Puis :
mount /var/amavis/tmp
mount /var/amavis/db
on vrifie par un
mount -l
Copier les
cp amavisd
chown root
chmod 755

excutables :
amavisd-nanny amavisd-signer /usr/sbin/
/usr/sbin/amavisd*
/usr/sbin/amavisd*

Copier les fichiers de conf :


cd /etc/
svn export http://smtp04.spamguard.fr/svn/Procmail/amavisd/amavisd.conf
chown root:amavis /etc/amavisd.conf
chmod 640 /etc/amavisd.conf
mkdir /etc/amavisd
cd /etc/amavisd
svn export http://smtp04.spamguard.fr/svn/Procmail/amavisd/amavisd.domains
svn export http://smtp04.spamguard.fr/svn/Procmail/amavisd/sender_scores_sitewid
e
Le fichier de configuration /etc/amavisd.conf fourni ici est modifi pour coller n
os besoins :
Evidemment il faut diter tout de mme ce fichier pour prciser :
son rseau local dans @mynetworks,
son domaine avec $mydomain,
et son hostname avec $myhostname
Il faut ensuite diter le fichier /etc/amavisd/amavisd.domains pour preciser son d
omaine.
Les domaines supplmentaires sajoutent en respectant le mme format, un domaine par l
igne.
On dsactive temporairement lantivirus pour tester :
On dcommente pour cela les lignes (au dbut du fichier de conf) :
@bypass_virus_checks_maps = (1);
Dmarrer amavisd en console pour voir si il manque des prrequis :
/usr/sbin/amavisd debug
Noter les erreurs ventuelles.
Si amavisd ne dmarre pas, arrter la et rsoudre les problmes.
Si cest ok, arrter amavisd par CTRL + C.
On configure Postfix :

On ajoute la fin du master.cf :


smtp-amavis unix n
2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n
n
- smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_address_mappings,no_header_body_checks,no_unk
nown_recipient_checks
-o local_header_rewrite_clients=
# Amavisd Notification only (pour eviter le no_address_mapping)
127.0.0.1:10029 inet n n
- smtpd
-o content_filter=
-o smtpd_delay_reject=no
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_check
s
-o local_header_rewrite_clients=
et on modifie toujours dans le master.cf la section sur le port 587 comme ceci :
587
inet
n
n
smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_etrn_restrictions=reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

(on ajoute en fait la ligne sur le content_filter)


Cette dernire modification permettra dutiliser une configuration distincte dans Am
avisd pour les utilisateurs se connectant en SASL de lextrieur.
En effet ceux ci sont en dehors de notre LAN et ne sont donc pas considrs par Amav
isd comme locaux (MYNETS pour amavisd)
En spcifiant un port dcoute supplmentaire pour Amavisd (10026) on se connecte avec l
a configuration de la policy_bank ORIGINATING, qui dispose par dfaut du tag ORIGI
NATING comme la policy bank MYNETS, qui permet Amavisd de savoir que le client e
st de confiance.

Les utilisateurs identifis par SASL hors du lan et les utilisateurs du LAN (ident
ifis SASL ou pas) seront donc considrs de la mme facon. (on note que lon pourra mme m
difier le comportement dAmavisd trs prcisement de cette facon. Voir larticle suivant
sur le sujet.
On dite maintenant le main.cf et on ajoute :
content_filter = smtp-amavis:[127.0.0.1]:10024
Relancer postfix :
postfix reload
Surveiller les logs :
tail -f /var/log/mail.log
Si tout est ok, lancer nouveau amavisd debug
/usr/sbin/amavisd debug
et taper en console :
telnet 127.0.0.1 10024
Il doit rpondre :
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^] .
220 [127.0.0.1] ESMTP amavisd-new service ready
quit pour sortir
Pareil pour tester le retour de Postfix :
telnet 127.0.0.1 10025
Il doit rpondre un truc du style :
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^] .
220 spike.starbridge.org ESMTP Postfix (Debian/GNU)
QUIT pour sortir (en majuscules)
- Si les connections sont ok :
Tester le fonctionnement de base (ce quil faut taper est prcd de ---> , le reste cest
le retour du serveur) :
---> telnet localhost 10024
220 [127.0.0.1] ESMTP amavisd-new service ready
---> HELO localhost
250 [127.0.0.1]

---> MAIL FROM: <>


250 2.1.0 Sender <> OK
---> RCPT TO: <admin@starbridge.org>
250 2.1.5 Recipient <admin@starbridge.org> OK
---> DATA
354 End data with <CR><LF>.<CR><LF>
---> From: virus-tester
---> To: undisclosed-recipients:;
---> Subject: amavisd test - simple - no spam test pattern
---> This is a simple test message from the amavisd-new test-messages.
---> .
250 2.6.0 Ok, id=30897-02, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as
079474CE44
---> QUIT
221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel
Laller-retour postfix/amavisd fonctionne bien !
(on peut arrter le debug damavisd par un CTRL + C)
Installation de la base SQL damavisd
Amavisd va tre coupl une base sql pour permettre notamment la mise en quarantaine
des emails.
On cre la base :
mysql -u root -p
create database amavis;
GRANT SELECT, INSERT, UPDATE, DELETE ON amavis.* TO amavis @ localhost IDENTIF
IED BY ****** ;
FLUSH PRIVILEGES;
quit
On importe la base sql :
cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/amavisd/amavis.sql
mysql -u root -p amavis < /root/amavis.sql
On dite amavisd.conf et on ajoute/modifie les lignes suivantes :
@storage_sql_dsn = ( [ DBI:mysql:database=amavis;host=127.0.0.1;port=3306 , ama
vis , **** ] );
@lookup_sql_dsn = @storage_sql_dsn;
Installation de la base de rputation damavisd
Grosse nouveaut depuis la version 2.8.2, la gestion dune liste de rputation dans un
e base Redis
Pour linstaller si vous utilisez la version testing faite simplement un
aptitude install redis-server
si vous utilisez la version stable il faut le prendre dans les backports :
ajouter cette ligne a votre /etc/apt/sources.list
deb http://ftp.debian.org/debian wheezy-backports main
puis
aptitude update
aptitude -t wheezy-backports install redis-server

rien de particulier paramtrer pour lusage que lon va faire, pas de schma installer.

Il suffit de parametrer amavisd pour utiliser Redis :


on ajoute cela au amavisd.conf (juste sous les instructions pour le storage sql)
@storage_redis_dsn =
( { server => 127.0.0.1:6379 , reconnect => 20, db_id => 1 } );
$storage_redis_ttl = 16*24*60*60;
HURRICANe
Installation ClamavRetour la table des matires
Prrequis :
aptitude install zlib1g zlib1g-dev libgmpxx4ldbl libgmp3-dev
On compile depuis les sources :
cd ~
wget http://downloads.sourceforge.net/project/clamav/clamav/0.98.6/clamav-0.98.6
.tar.gz
tar xvzf clamav-0.98.6.tar.gz
cd clamav-0.98.6
./configure --prefix=/usr --sysconfdir=/etc --with-user=amavis --with-group=amav
is --with-dbdir=/var/lib/clamav
make
make install
ldconfig
mkdir /var/run/clamav
chown -R amavis: /var/run/clamav
chmod -R 750 /var/run/clamav
mkdir /var/lib/clamav
chown -R amavis: /var/lib/clamav
chmod -R 770 /var/lib/clamav
On met a jour les fichiers de configuration :
cd /etc
mv clamd.conf clamd.conf.orig
mv freshclam.conf freshclam.conf.orig
svn export http://smtp04.spamguard.fr/svn/Procmail/clamd.conf
svn export http://smtp04.spamguard.fr/svn/Procmail/freshclam.conf
Une tache cron sera utilise pour planifier la mise jour de la base antivirale.
On fera cela en fin de tuto.
Crer :
mkdir /var/log/clamav
chown -R amavis:amavis /var/log/clamav
Crer un fichier /etc/init.d/clamd
cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/clamd
chmod 755 /etc/init.d/clamd
insserv -v /etc/init.d/clamd
On fait la mise jour de la base virale :
freshclam
On vrifie que les fichiers soient bien prsents dans le rpertoire :
ls -la /var/lib/clamav
On lance clamd :
/etc/init.d/clamd start
Et on vrifie les logs :

tail -f /var/log/clamav/clamd.log
Et on vrifie bien que Clam tourne :
ps aux | grep clam
On teste le fonctionnement (le dossier "test" est dans le rpertoire clamav-0.98)
:
cd /root/clamav-0.98.6/test/
clamscan -l scan.txt clam-x.yz
clamav-x.yz etant un des fichiers de test prsents dans le rpertoire test
Installation des signatures additionnelles pour Clam (dtection du spam, phising..
.)
Il sagit de fichiers supplmentaires que lon place dans le dossier /var/lib/clamav
aptitude install curl rsync
cd /usr/sbin
svn export http://smtp04.spamguard.fr/svn/Procmail/usr/sbin/clamav-unofficial-si
gs.sh
chmod 755 clamav-unofficial-sigs.sh
cd /etc/
svn export http://smtp04.spamguard.fr/svn/Procmail/clamav-unofficial-sigs.conf
mkdir /var/lib/unofficial-clamav-sigs
chown -R amavis: /var/lib/unofficial-clamav-sigs
On lance le script :
su -c /usr/sbin/clamav-unofficial-sigs.sh

amavis

On vrifie que les fichiers sont bien prsents dans le rpertoire de Clam :
ls -la /var/lib/clamav
On doit trouver les fichiers suivants :
-rw-r--r-- 1 amavis amavis
54185 28
-rw-r--r-- 1 amavis amavis 6645011 28
-rw-r--r-- 1 amavis amavis
38237 29
-rw-r--r-- 1 amavis amavis
22549 15
-rw-r--r-- 1 amavis amavis
155 23
-rw-r--r-- 1 amavis amavis 5441471 29
-rw-r--r-- 1 amavis amavis 18380023 29
-rw-r--r-- 1 amavis amavis 812167 29
-rw-r--r-- 1 amavis amavis 242835 25
-rw-r--r-- 1 amavis amavis 30750647 28
-rw-r--r-- 1 amavis amavis
156 29
-rw-r--r-- 1 amavis amavis 3233016 29
-rw-r--r-- 1 amavis amavis
28806 29
-rw-r--r-- 1 amavis amavis
9164 19
-rw-r--r-- 1 amavis amavis 11717910 29
-rw-r--r-- 1 amavis amavis 1805097 28
-rw-r--r-- 1 amavis amavis 200405 21
-rw-r--r-- 1 amavis amavis 300559 30
-rw-r--r-- 1 amavis amavis
86504 21
-rw-r--r-- 1 amavis amavis 13939950 29
-rw-r--r-- 1 amavis amavis 1389724 29
-rw-r--r-- 1 amavis amavis 314920 10
-rw-r--r-- 1 amavis amavis 468241 16
-rw-r--r-- 1 amavis amavis
29520 21
-rw-r--r-- 1 amavis amavis
57676 2
-rw-r--r-- 1 amavis amavis
19002 11
-rw-r--r-- 1 amavis amavis 2000207 29

oct.
oct.
oct.
fvr.
juil.
oct.
oct.
oct.
juil.
oct.
oct.
oct.
oct.
juin
oct.
sept.
aot
mai
aot
oct.
oct.
fvr.
aot
aot
mars
avril
oct.

21:28
21:27
19:45
2012
13:09
10:56
19:55
19:55
12:53
21:27
20:02
17:29
16:57
10:56
19:45
13:54
10:16
22:28
12:07
12:25
12:27
2012
11:12
12:26
2012
2011
19:50

bytecode.cvd
daily.cvd
doppelstern.hdb
honeynet.hdb
INetMsg-SpamDomains-2w.ndb
junk.ndb
jurlbla.ndb
jurlbl.ndb
lott.ndb
main.cvd
mirrors.dat
phish.ndb
rogue.hdb
sanesecurity.ftm
scamnailer.ndb
scam.ndb
securiteinfobat.hdb
securiteinfodos.hdb
securiteinfoelf.hdb
securiteinfo.hdb
securiteinfohtml.hdb
securiteinfooffice.hdb
securiteinfopdf.hdb
securiteinfosh.hdb
spamimg.hdb
spam.ldb
spear.ndb

-rw-r--r--rw-r--r--rw-r--r--rw-r--r-b
-rw-r--r--

1
1
1
1

amavis
amavis
amavis
amavis

amavis
660 29 oct.
amavis 2878686 29 oct.
amavis 1498085 29 oct.
amavis 260787 29 oct.

1 amavis amavis

19:45
19:45
19:45
19:45

winnow.complex.patterns.ldb
winnow_malware.hdb
winnow_malware_links.ndb
winnow_phish_complete_url.nd

513146 29 oct. 19:45 winnow_spam_complete.ndb

Une tache cron sera utilise pour mettre jour ces fichiers (on le fera en fin de t
uto)
Installation de ClamdMon pour la surveillance du demon clam :
installer le script de surveillance clamdmon :
cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/clamdmon-1.0.tar.gz
tar xvzf clamdmon-1.0.tar.gz
cd clamdmon-1.0
make
make install
Une tache cron sera utilise (on le fera en fin de tuto)
Paramtrage SpamassassinRetour la table des matires
Les binaires de SA ont t installs ltape prcdente.
Sa configuration de base se fait dans le fichier /etc/mail/spamassassin/local.cf
mais pour la plupart des paramtres, cest le fichier amavisd.conf qui sera priorit
aire.
Lorsquon utilise Amavisd pour appeler SA il est inutile de lancer spamd.
On remplace le /etc/mail/spamassassin/local.cf par celui ci :
cd /etc/mail/spamassassin/
mv local.cf local.cf-orig
svn export http://smtp04.spamguard.fr/svn/Procmail/spamassassin/local.cf
On dite le fichier pour adapter les parametres internal_networks et trusted_netwo
rks.
internal_networks et trusted_networks sont des paramtres trs importants pour la pe
rtinence de la dtection. Il faut absolument les configurer correctement.
On scurise :
chown amavis: /etc/mail/spamassassin/local.cf
chmod 640 /etc/mail/spamassassin/local.cf
SA fonctionne sur 2 types de tests :
Heuristiques (ensemble de rgles)
Bayesiens (apprentissage et statistiques)
Pour le filtre bayesien, depuis la version 3.4 de SA, on utilise une base redis.
Le serveur redis etant deja install, il ny a rien a faire, le fichier local.cf est
paramtr !
On initialise la base :
su amavis -c

sa-learn -D --spam gtube.txt

On doit voir la connexion Redis dans la sortie.

Mise jour des Rules et ajout des Rules Sought et Starbridge :


On prpare linstallation des rules Sought et Starbridge :
cd /etc/mail/spamassassin/
wget http://yerp.org/rules/GPG.KEY
wget http://www.starbridge.org/updates/starbridge/GPG-eole.KEY
sa-update --import GPG.KEY
sa-update --import GPG-eole.KEY
On met jour :
sa-update -D --gpgkey 6C6191E3 --channel sought.rules.yerp.org
sa-update -D --gpgkey C0FB2D51 --channel updates.starbridge.org
Les fichiers seront placs dans /var/lib/spamassassin :
ls -la /var/lib/spamassassin/3.004000/
on vrifie que les rules Starbridge soient bien prsentent directement dans le sous
rpertoire updates_starbridge_org.
Attention : ces rules Starbridge comportent des lments essentiels pour le bon fonc
tionnement de lantispam, il faut tre sur quelles soient prsentes dans ce sous rpertoi
re
On vrifie que tout soit OK :
su -c "spamassassin -D --lint" amavis
Compilation des Rulesets
La compilation des rgles permet dacclrer sensiblement le traitement.
Pour cela il faut installer au pralable le paquet re2c :
aptitude install re2c
on lance ensuite la commande
sa-compile -D
cela prend un certain temps avant de se terminer.
Les rgles compiles seront places dans le rpertoire /var/lib/spamassassin/compiled.
Il faut maintenant activer lusage de ces rgles grace au plugin Rule2XSBody :
On dite /etc/mail/spamassassin/v320.pre et on dcommente la ligne suivante :
loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
on vrifie que tout soit ok :
su -c spamassassin -D --lint amavis
Pour une mise jour des rules et une compilation rgulire (1 fois par jour maximum)
on crera une tache cron spcifique en fin de tuto.
Le script mettra jour les diffrentes rules et en cas de modification, lancera une
compilation de ces dernieres puis relancera amavisd.
Cette tache est gourmande en ressource, il faut la planifier imprativement en deh
ors des heures de service.
SA est prt et fonctionnel !!
On dmarre en debug-sa :
/usr/sbin/amavisd debug-sa
on doit trouver dans la liste ceci :

SA dbg: bayes: _open_db(not yet connected)


/usr/sbin/amavisd[11536]: SA dbg: bayes: Redis on-connect, db_id 2
/usr/sbin/amavisd[11536]: SA dbg: bayes: redis server version 2.8.7, memory used
139.5 MiB, Lua is available
/usr/sbin/amavisd[11536]: SA dbg: bayes: found bayes db version 3
Bayes nest pas encore disponible car il na pas analys assez de mails pour fonctionn
er. Ceci est normal.
On envoie un mail et on doit voir dans le debug le bon fonctionnement.
On arrte amavisd par un CTRL + C.
Explication sur le fonctionnement global de SA
SA distingue Spammy et Spams. Un spammy est un mail qui est probablement un spam
. Un message marqu comme Spam est en revanche probablement un vritable spam.
_Cest le score attribu qui dcide de ce statut.
Par dfaut, Amavisd mets les spams en quarantaine, cest dire quau dessus du score de
10, il envoie les mails dans un espace de stockage en base. Il ne sont donc pas
livrs dans la boite du destinataire.
Au dessus de 4.3 et jusqu 10, les mails sont considrs comme spammy et sont tout de mm
e livrs dans la boite de destinataire, mais avec le sujet modifi et des enttes spcif
iques.
Au dessous de 4.3, le mail est clean.
Pour faire la distinction entre mail clean et spammy, on traitera le mail plus l
oin par Sieve.
Lancement damavisd
On cre un fichier /etc/init.d/amavis :
cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/init.d/amavis
chmod 755 /etc/init.d/amavis
insserv -v /etc/init.d/amavis
on lance amavisd :
/etc/init.d/amavis start
On regarde les logs.
On envoie un mail et on regarde lentte de celui ci.
on doit voir les X-Spam- headers.
On rappelle que Dovecot LDA est parametr pour dposer le courier dtect comme spam dan
s le dossier spam de chaque utilisateur.
Il cre galement les dossiers spciaux.
le Dossier Spam recevra tous les Spammy.
Les 2 dossiers SpamToLearn et SpamFalse pourront etre utiliss pour transmettre de
s mails apprendre au systeme.
Lapprentissage des bases Bayes de SA se fait automatiquement lors de la rception m
ais peut aussi etre fait manuellement en alimentant les dossiers spciaux.
On cre deux boite spciale ddies la gestion du spam :

spamtrap@starbridge.org
hamtrap@starbridge.org
Ces deux serviront ladmin pour trier les mails classs par les users dans leurs dos
siers spamfalse et spamtolearn
Il faut dabord crer un script qui scanne les 2 dossiers dapprentissage SpamToLe
arn et SpamFalse des botes des utilisateurs (Dossiers cres automatiquement par Dov
ecot LDA la premire livraison) puis envoie leur contenu vers les deux boites hamt
rap et spamtrap.
On cre deux boites et deux rpertoires spciaux de transit + deux rpertoires de stocka
ge :
mkdir -p /var/tmp/spamtrap/cur
mkdir /var/tmp/spamtrap/new
mkdir -p /var/tmp/hamtrap/cur
mkdir /var/tmp/hamtrap/new
chown -R vmail: /var/tmp/spamtrap
chown -R vmail: /var/tmp/hamtrap
mkdir /home/spamtrap
mkdir /home/hamtrap
chown -R vmail: /home/spamtrap
chown -R vmail: /home/hamtrap
mkdir /home/spamtrap-backup
mkdir /home/hamtrap-backup
chown -R vmail: /home/spamtrap-backup
chown -R vmail: /home/hamtrap-backup
les deux rpertoires de backup permettent de disposer dun corpus de spam/ham pour la
pprentissage en cas de migration ou de remise zero de la base bayes.
on cre un ficher /etc/caremail/cron/sa-trap-sdbox
mkdir /etc/caremail/cron/
cd /etc/caremail/cron/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/sa-trap-sdbox
chmod 755 /etc/caremail/cron/sa-trap-sdbox
On modifie lintrieur de ce fichier les 2 boites de destination pour ajuster son in
stallation.
Il suffira dindiquer aux utilisateurs de dplacer les emails non dtects comme Spam da
ns le dossier SpamToLearn et de copier les email lgitimes dtects tort comme Spam da
ns le Dossier SpamFalse.
Le script dplacera lors de son excution tous ces emails dans les boites spamtrap e
t hamtrap
Une tache sera ajoute en fin de tuto pour lancer automatiquement ce script.
Attention : TOUS les mails dposs dans les dossiers SpamTolearn et SpamFalse sont dp
lacs cest dire quils seront EFFACES de ces dossiers.
Ladmin pourra alors consulter ces emails, et une fois valids, il lancera un script
manuellement qui fera lapprentissage soit comme spam soit comme ham (non spam).
on cre le script dapprentissage pour ladmin /etc/caremail/sa-dspam-learn-sdbox :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/sa-dspam-learn-sdbox
chmod 755 /etc/caremail/sa-dspam-learn-sdbox
Activation de Clam dans Amavisd

Le fichier amavisd.conf fourni dans ce tuto est modifi pour ne prendre en charge
que lantivirus Clamav.
Pour info voici les paramtres modifis ( la fin du fichier) :
@av_scanners = (
# ### http://www.clamav.net/
[ ClamAV-clamd ,
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
);
@av_scanners_backup = (
### http://www.clamav.net/ - backs up clamd or Mail::ClamAV
[ ClamAV-clamscan , clamscan ,
"--stdout --no-summary -r --tempdir=$TEMPBASE {}",
[0], qr/:.*\sFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
);
1; # insure a defined return
Pour activer Clam on commente au dbut du fichier :
@bypass_virus_checks_maps = (1);
On relance amavisd :
/etc/init.d/amavis restart
Lantivirus est charg.
On cre grace postfixadmin lalias email : virusalert@starbridge.org vers admin@star
bridge.org.
On teste le fonctionnement :
--> telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^] .
220 [127.0.0.1] ESMTP amavisd-new service ready
--> MAIL FROM:<test@example.com>
250 2.1.0 Sender test@example.com OK
--> RCPT TO:<postmaster>
250 2.1.5 Recipient postmaster OK
--> DATA
354 End data with <CR><LF>.<CR><LF>
--> Subject: test2 - virus test pattern
-->
--> X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--> .
--> QUIT
221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel
Connection closed by foreign host.
On doit voir dans les logs :
Blocked INFECTED (Eicar-Test-Signature)

On peut aussi tester lenvoi dun mail infect dans une archive (pour tester le travai
l de dcompression) en rcuprant des fichiers de test sur eicar.com et en les envoyan
t par email.
DspamRetour la table des matires
Beaucoup considre Dspam comme une alternative plus performante de SA.
Je trouve quils sont plutt complmentaires.
Amavisd permet de grer les 2 en parallle.
cd ~
wget http://heanet.dl.sourceforge.net/project/dspam/dspam/dspam-3.10.2/dspam-3.1
0.2.tar.gz
tar xvzf dspam-3.10.2.tar.gz
cd dspam-3.10.2
./configure --prefix=/usr --disable-dependency-tracking --includedir=/usr/includ
e --with-logdir=/var/log/dspam/ --with-dspam-home=/var/amavis/dspam --sysconfdir
=/etc/ --enable-domain-scale --without-delivery-agent --with-mysql-includes=/usr
/include/mysql --with-storage-driver=mysql_drv --enable-virtual-users --enable-p
references-extension --enable-daemon --enable-debug
make
make install
Crer la base sql :
mysql -u root -p
create database dspam;
GRANT SELECT, INSERT, UPDATE, DELETE ON dspam.* TO
D BY ****** ;
FLUSH PRIVILEGES;
quit

dspam @ localhost IDENTIFIE

On importe la base sql :


cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/dspam/mysql_objects-4.1.sql
mysql -u root -p dspam < mysql_objects-4.1.sql
On modifie le fichier de conf dspam.conf original (toto tant votre password dacces
a la base sql dspam que vous venez de paramtrer) :
cd /etc/
mv dspam.conf dspam.conf-orig
svn export http://smtp04.spamguard.fr/svn/Procmail/dspam.conf
sed -i s/\*\*\*\*\*\*/toto/g dspam.conf
On installe un init.d pour le nouveau demon :
cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/init.d/dspam
chmod +x dspam
On active le dmarrage automatique :
insserv -v /etc/init.d/dspam
Modifier les droits sur les excutables (mme user quamavisd) et le dspam.conf
chown amavis: /usr/bin/dspam*
chown amavis: /etc/dspam.conf
chmod 750 /usr/bin/dspam*
chmod 640 /etc/dspam.conf
chown amavis: /var/log/dspam
Scuriser le rpertoire de dspam dans le home damavisd :
chown -R amavis: /var/amavis/dspam

on edite le /etc/amavisd.conf et on ajoute le bloc suivant juste avant la ligne


"$sa_tag_level_deflt"
$dspam = dspam ;
@spam_scanners = (
[ SpamAssassin , Amavis::SpamControl::SpamAssassin ],
[ DSPAM ,
Amavis::SpamControl::ExtProg , $dspam,
[ qw(--client --stdout --process --deliver=innocent,spam
--user), $daemon_user ],
score_factor => 0.39,
],
);
On passe les paramtres par dfaut de dspam (ils vont sinsrer en base) :
dspam_admin change preference default "dailyQuarantineSummary" "off"
dspam_admin change preference default "enableBNR" "on"
dspam_admin change preference default "enableWhitelist" "on"
dspam_admin change preference default "fallbackDomain" "off"
dspam_admin change preference default "ignoreGroups" "off"
dspam_admin change preference default "ignoreRBLLookups" "off"
dspam_admin change preference default "makeCorpus" "off"
dspam_admin change preference default "optIn" "off"
dspam_admin change preference default "optOut" "on"
dspam_admin change preference default "optOutClamAV" "on"
dspam_admin change preference default "processorBias" "on"
dspam_admin change preference default "showFactors" "off"
dspam_admin change preference default "signatureLocation" "headers"
dspam_admin change preference default "spamAction" "tag"
dspam_admin change preference default "spamSubject" "[SPAM]"
dspam_admin change preference default "statisticalSedation" "6"
dspam_admin change preference default "storeFragments" "off"
dspam_admin change preference default "tagNonspam" "off"
dspam_admin change preference default "tagSpam" "off"
dspam_admin change preference default "trainingMode" "TOE"
dspam_admin change preference default "trainPristine" "off"
dspam_admin change preference default "whitelistThreshold" "10"
On cre le user virtuel avec le meme uid quamavisd (ici cest 1002) :
mysql -u root -p dspam
INSERT INTO `dspam_virtual_uids` (`uid`, `username`) VALUES
(1002, amavis );
on active le user :
dspam_admin change preference default "optIn" "on"
dspam_admin change preference default "optOut" "off"
On lance le dmon dspam
/etc/init.d/dspam start
On verifie quil tourne
ps aux | grep dspam
relancer amavisd :
/etc/init.d/amavis restart
On vrifie les logs. On doit voir :
Found spam scanner DSPAM
at /usr/bin/dspam
On envoie un email :

On vrifie les logs, les headers des email pour les tags X-DSPAM et le remplissage
de la base de donnes.
Principe de fontionnement :
Dans cette configuration, Dspam marque simplement les mails (il ajoute un tag da
ns le header).
Avant la version 2.6.3 damavisd, le score etait transmis SA.
Dsormais, le score est ajout APRES Spamassassin, par amavisd.
Les scores par dfaut sont inscrits en dur dans le binaire damavisd : 3.8 pour un s
pam, 0.1 pour un ham.
Actuellement lautolearn nest pas pris en charge dans cette implmentation.
Il faudra donc alimenter manuellement la base de dspam depuis un corpus.
On cre les taches de maintenance de dspam :
On cre un fichier /etc/caremail/dspam-purge-4.1.sql
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/dspam-purge-4.1.sql
une tache cron lancera ce script automatiquement (en fin de tuto)
Filtrage par extensions et type mime dans amavisd
On peut galement renforcer le blocage des fichiers par extension et type mime dan
s amavisd, indpendamment de lantivirus.
Ce blocage est trs efficace et peut tre complmentaire du premier blocage par Postfi
x sur ces fichiers (headers, body, type mime), car il utilise cette fois les cap
acits de dcodage et de dcompression dAmavisd.
Par exemple, on pourra facilement bloquer un fichier exe lintrieur dun fichier zip.
Voir mon fichier amavisd.conf pour des exemples de type mime et dextensions de fi
chiers.
Voila le serveur de mail et le filtrage sont configurs !
Fonctions Avances damavisd : Penpals et gestion des usersRetour la table des matire
s
Maintenant que lon a un systme fonctionnel articul autour dAmavis, on peut ajouter 2
fonctions intressantes :
- Penpals : qui permet de maintenir une liste des messages auquels un user a dj rpo
ndu et ainsi moduler les scores en fonction
- Gestions des users dans Amavisd par Mysql : cela permet de grer par utilisateur
les grandes fonctions dAmavisd (dsactivation de lantivirus, de lantispam, maintien
de whitelist et de blacklist personnelles...)
La base mysql est dja cre et fonctionnelle.
Pour linstant seul penpals fonctionne automatiquement.
En revanche la fonction users demande dtre paramtre :
Pour cela, on pourra utiliser le module SAM de horde (voir le tuto horde pour ce
la) soit alimenter manuellement la base SQL.

Un exemple pour un paramtrage pour un utilisateur :


INSERT INTO `mailaddr` (`id`, `priority`, `email`) VALUES
(1, 5, toto@toto.com );
INSERT INTO `policy` (`id`, `policy_name`, `virus_lover`, `spam_lover`, `banned_
files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `
bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quar
antine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine
_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_l
evel`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `
addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`
, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_adm
in`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rule
names`) VALUES
(1, test@starbridge.org , N , N , N , N , N , N , N , N , NULL, NULL, N
ULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `users` (`id`, `priority`, `policy_id`, `email`, `fullname`, `local`
) VALUES
(1, 7, 1, test@starbridge.org , NULL, NULL);
INSERT INTO `wblist` (`rid`, `sid`, `wb`) VALUES
(1, 1, 15.0 );
Ici on a cre un parametre pour un user de notre domaine test@starbridge.org.
On voit dans la table users quon lui donne lid 1 et on lui associe la policy 1.
Une policy reprend tous les paramtres prsents dans amavisd.conf.
On les retrouve dans la table policy. Si la valeur est NULL alors cest celle du f
ichier amavisd.conf qui sera utilise. Sinon cest celle de la table.
Ici on a modifi le score de dtection spam (5 au lieu de 4.3)

Ensuite on a ajout une entre a la table mailaddr o lon spcifie des expditeurs, par ex
mple toto@toto.com avec lid 1.
Grce la table wblist on pourra maintenir une liste de score attribuer en fonction
de ces adresses dexpditeurs ET de users (le destinataire dans notre rseau), ce qui
rend ces listes entirement personnelles.
Ainsi dans notre exemple, wblist pour rid 1 (recipient id 1 = test@starbridge.or
g) et le sid 1 (sender id 1 =toto@toto.com) on attribue un score positif de 15.
Cest lquivalent dans le fichier amavisd.conf du soft whitelisting/blacklisting mais
cette fois uniquement pour un utilisateur et non tous les autres.
On peut aussi faire du hard whitelisting/blacklisting en specifiant W ou B au li
eu du score.
On verra le module horde SAM pour laisser grer facilement ces options par lutilisa
teur lui mme (SAM ne gre que le hard whitelisting/blacklisting).
On peut galement utiliser cette table sql pour paramtrer finement non pas par user
s mais par domaine.
Pour cela il faudra juste utiliser le @starbridge.org pour prendre en compte tou
s les users de celui ci.
par exemple :
INSERT INTO `users` (`id`, `priority`, `policy_id`, `email`, `fullname`,
`local`) VALUES
(3, 6, 4, @starbridge.org , , Y );
INSERT INTO `policy` (`id`, `policy_name`, `virus_lover`, `spam_lover`,
`banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`,
`bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`,
`spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`,
`banned_quarantine_to`, `bad_header_quarantine_to`,

`clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`,


`spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`,
`spam_quarantine_cutoff_level`, `addr_extension_virus`,
`addr_extension_spam`, `addr_extension_banned`,
`addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`,
`warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`,
`bad_header_admin`, `spam_admin`, `spam_subject_tag`,
`spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES
(4, @starbridge.org , N , N , Y , N , N , N , Y , N ,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.3, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL);
En rsum, on cre un user gnral qui englobe tous les
starbridge.org.
On lui attribue la policy 4 qui correspond toutes les
dfaut, sauf les 2 options de vrification des fichiers
Ainsi tous les users du domaine starbridge.org pourront
nnis.

comptes dans
options par
bannis, qui sont sur bypass.
recevoir les fichiers ba

Les users qui le dsirent pourront toujours personnaliser ces options dans Horde a
u travers du module SAM car la priorit du user gnral est de 6 alors que celle des u
sers cres par le module SAM est de 7.
- Leur paramtrage personnel sera donc prioritaire celui du user gnral.
On peut galement mixer avec la table wblist et mailaddr pour crer des whitelist/bl
acklist par domaines.
EOLE
Maintenance des bases SQL damavisd
Les tables vont grossir au fur et mesure des rceptions, il faut donc regulirement
les purger.
On utilise le champ partition_tag comme lment de slection, cela permet de limiter l
e temps des requtes de purge.
Ce champ contient le numro de la semaine de lenregistrement sql. Il est insr par ama
visd pour chaque INSERT dans la base.
On cre un fichier amavis-purgesql :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/amavis-purgesql
Une tache cron assurera lactivation rguliere de la purge (en fin de tuto)
MailzuRetour la table des matires
Installation du gestionnaire de quarantaine : Mailzu
Pour grer la quarantaine et pour permettre aux utilisateurs de la consulter, on i
nstalle Mailzu.
_Il sagit ici dune version modifie intgrant des patches de la communaut (gestion des
admins par exemple) mais aussi des modification persos sur les requtes SQL pour p
rendre en compte le partition_tag damavisd.
On installe les prrequis :
aptitude install php5-imap php5-mcrypt php5-gd php-pear
on installe les modules pear :
pear update-channels

rm -rf /usr/share/php/.channels
rm /usr/share/php/doc
ln -s /usr/share/doc/php-pear /usr/share/php/doc
pear update-channels
pear upgrade-all
pear install DB
pear install MDB2
pear install pear/MDB2#mysql
pear install Mail
pear install Mail_Mime
pear install Mail_mimeDecode
pear install Log
pear install Net_Socket
pear install Date
pear install Auth_SASL
pear install HTTP_Request
pear install File
pear install Net_SMTP
pear install Cache
on tlcharge depuis SVN :
cd /var/www
svn co http://smtp04.spamguard.fr/svn/Procmail/mailzu quarantine
NOTE : Cette version de mailzu est compatible avec php 5.4
pour lutiliser avec php 5.3, il suffit de revenir sur la modification de deux lig
nes dans le fichier suivant :
https://smtp04.spamguard.fr/websvn/diff. ... hp&rev=237
On scurise :
chown -R www-data: /var/www/quarantine
chmod 640 /var/www/quarantine/config/config.php
On modifie les paramtres (attention il y a 2 passwords modifier, un pour Postfix
: toto et un pour Amavisd : titi)
cd /var/www/quarantine/config
sed -i s/toto/toto/g config.php
sed -i s/titi/toto/g config.php
sed -i s/www.starbridge.org/www.toto.com/g config.php
sed -i s/spike.starbridge.org/spike.toto.com/g config.php
le parametre $conf[auth][s_admins] permet de lister les admins de site, cest a dire c
eux qui auront acces a toutes les quarantaines de tous les utilisateurs.
Modifier lentre admin@starbridge.org pour utiliser votre admin global et laisser le
ntre @. qui est ladmin global par dfaut.
Les admins de domaine sont ceux qui ont accs un seul domaine.
Cette version de Mailzu rcupere la liste des admins depuis celle de postfixadmin.
on cre le fichier de log :
touch /var/log/mailzu.log
chown www-data: /var/log/mailzu.log
On se connecte sur linterface :
https://www.starbridge.org/quarantine
Lutilisateur est admin@starbridge.org (cest votre email dadministrateur admin@votre
domaine.com) et le password secret.
On teste la quarantaine pour voir si tout fonctionne.

DKIMRetour la table des matires


Vrification et signatures des messages par DKIM

Cette technique est dsormais quasi indispensable pour assurer une meilleure dlivra
bilit des emails, et depuis la version 2.6, amavisd propose dsormais dexcuter lintgra
it des tches DKIM : Vrification des messages reus et signatures des messages sortant
s.
La vrification DKIM des mails recus et faites par defaut dans amavisd.
Pour la gnration des signatures, il faut configurer amavisd :
On gnre la cl :
mkdir /var/amavis/dkim
cd /var/amavis/dkim
amavisd genrsa /var/amavis/dkim/starbridge.key.pem
les droits du fichier sont mis correctement par amavisd.
Si lon a plusieurs domaines on rpte la procdure pour chaque.
On ajoute ceci au /etc/amavisd.conf :
dkim_key( starbridge.org , starbridge , /var/amavis/dkim/starbridge.key.pem );
A partir dici Amavisd est capable de signer les messages sortants.
Mais le serveur destinataire ne sera pas capable de les vrifier, car il faut publ
ier la cl publique dans les DNS :
Pour cela, on lance la commande suivante pour afficher la cl publique du ou des d
omaines que lon a parametr plus haut.
amavisd showkeys
on fait un copier/coller du rsultat pour le domaine et on le colle tel quel dans
la zone DNS.
Le serveur DNS Unbound gre bien sr cet enregistrement (TXT) et il suffira de lenreg
istrer dans le fichier de zone et de la recharger.
Si les DNS sont grs par lhbergeur, la plupart dentre eux propose de modifier les cham
ps TXT, mais ce nest pas le cas de tous.
Il faudra donc vrifier ce point.
On teste lenregistrement avec une commande damavisd :
amavisd testkeys
Depuis la version 2.7, Amavisd propose un programme externe de signature.
Pour le moment la configuration se fait directement dans le binaire amavisd-sign
er :
vi /usr/sbin/amavisd-signer
On dite les lignes suivantes :
$daemon_user = amavis ;
$daemon_group = amavis ;
$daemonize = 1;
et on ajoute juste sous les exemple de dkim_key, la mme entre que dans amavisd.con
f :
dkim_key( starbridge.org , starbridge , /var/amavis/dkim/starbridge.key.pem );

On cre un init.d pour cet excutable :


cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/init.d/amavisd-signer
chmod 755 /etc/init.d/amavisd-signer
insserv -v /etc/init.d/amavisd-signer
On lance le signer :
/etc/init.d/amavisd-signer start
On relance amavisd.

Pour pouvoir signer les messages il faut que ceux ci proviennent pour amavisd dun
e source de confiance, cest dire en provenance du rseau spcifi dans amavisd comme ta
t local (policy bank MYNETS), ou bien depuis le port 587 dans postfix en TLS + S
ASL (policy bank ORIGINATING).
On teste en envoyant un mail et on vrifie dans les logs que la signature sapplique
bien.
On retrouvera cette signature dans les headers du message envoy.
Notes :
- On peut aller plus loin dans la configuration dAmavisd mais pour ne pas surchar
ger le tuto nous naborderons pas ces points ici.

- La configuration damavisd doit galement tre modifie en fonction de la charge du se


rveur. Par dfaut 2 instances sont actives ($max_servers = 2 ;). Le calcul du nomb
re dinstances ncessaires demande certains ajustements lusage et doit tre considr co
un prrequis sur la mise en production dun serveur susceptible de traiter des volu
mes consquents.
On peut consulter la doc damavisd sur ce point.
- Dans notre configuration on filtre (antispam, antivirus) sur les mails entrant
s ET sortants. On peut conomiser des ressources systmes en dsactivant lantispam sur
les mails sortants en provenance dutilisateurs authentifis. Voir la configuration
dans cet article
Pour info, les mails soumis localement (pickup) bypassent tous les tests : spams
, AV, header/body. Cest le cas pour les mails systme comme ceux de cron, logwatch
ou autres. Cette configuration a t faite dans la partie pickup en dbut de tuto.
Policyd V2Retour la table des matires
Policyd V2 est un policy service de Postfix qui permet entre autres de contrler l
es clients qui se connectent sur le serveur de mail (nombre demail/heures....), e
n contrlant le volume des email envoys.
Policyd V2 est surtout trs utile pour lutter contre les mail bombing, les ddos, l
es spywares et les abus en tout genre (limitation entres/sorties)
on installe les prrequis perl :
aptitude install libconfig-inifiles-perl libcache-fastmmap-perl
On cre un user policyd :
groupadd -g 20002 policyd
useradd -g policyd -u 20002 policyd -s /bin/false
cd ~
wget http://download.policyd.org/v2.1.x-201310261831/cluebringer-v2.1.x-20131026
1831.tar.gz

tar xvzf cluebringer-v2.1.x-201310261831.tar.gz


cd cluebringer-v2.1.x-201310261831
On installe les fichiers :
mkdir /usr/lib/policyd-2.1
cp -r cbp /usr/lib/policyd-2.1/
cp -r awitpt /usr/lib/policyd-2.1/
cp cbpolicyd /usr/sbin/
mkdir /var/log/cbpolicyd
mkdir /var/run/cbpolicyd
chown policyd: /var/log/cbpolicyd /var/run/cbpolicyd
Crer la base sql :
mysql -u root -p
create database policyd2;
GRANT SELECT, INSERT, UPDATE, DELETE ON policyd2.* TO policyd2 @ localhost IDE
NTIFIED BY ***** ;
FLUSH PRIVILEGES;
quit
On importe la base sql :
svn export http://smtp04.spamguard.fr/svn/Procmail/cluebringer/policyd.mysql
mysql -u root -p policyd2 < policyd.mysql
On installe le /etc/cluebringer.conf et on modifie le password (ici votre passwo
rd serait toto) :
cd /etc/
svn export http://smtp04.spamguard.fr/svn/Procmail/cluebringer/cluebringer.conf
sed -i s/\*\*\*\*/toto/g cluebringer.conf
On scurise le fichier :
chmod 640 /etc/cluebringer.conf
On cre un fichier /etc/init.d/policyd2 :
cd /etc/init.d/
svn export http://smtp04.spamguard.fr/svn/Procmail/init.d/policyd2
chmod 755 /etc/init.d/policyd2
insserv -v /etc/init.d/policyd2
On lance le daemon :
/etc/init.d/policyd2 start
On vrifie quil tourne bien et avec le bon user :
ps aux | grep cluebringer
et on vrifie les logs :
tail -f /var/log/cbpolicyd/cbpolicyd.log
On ajoute plusieurs entrees policy service au /etc/postfix/main.cf :
en dessous du bloc has_our_domain_as_sender :
client_throttle =
check_policy_service inet:127.0.0.1:10031
avant le bloc smtpd_recipient_restrictions :
smtpd_client_restrictions =
check_policy_service inet:127.0.0.1:10031

on modifie lentree du smtpd_restriction_classes :


smtpd_restriction_classes =
has_our_domain_as_sender
client_throttle
apres le bloc smtpd_data_restrictions :
smtpd_end_of_data_restrictions =
check_policy_service inet:127.0.0.1:10031
puis dans le master.cf on modifie lentree du port 587 :
587
inet
n
n
smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_etrn_restrictions=reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
-o smtpd_client_restrictions=client_throttle,permit_sasl_authenticated,rejec
t
On relance postfix :
postfix reload
on copie lihm de management :
cd /var/www
svn co http://smtp04.spamguard.fr/svn/Procmail/cluebringer/www webui
cd ~/cluebringer-v2.1.x-201310261831
cp -rp webui/* /var/www/webui/
chown -R www-data: /var/www/webui
on modifie les credentials de la base dans /var/www/webui/includes/config.php
puis on scurise le fichier :
chmod 400 /var/www/webui/includes/config.php
[rouge]Attention : par dfaut il ny a pas dauthentification sur cette interface, on
a donc mis un .htaccess avec un deny from all pour scuriser linstallation, mais po
ur utiliser linterface il faudra que vous modifiez ce htaccess pour accepter soit
par votre ip, soit par un login/password
Dans tous les cas, bien sassurer que lacces ne soit pas possible directement par u
n navigateur !
ATTENTION : si lon na pas configur le AllowOverride All dans le virtualhost dapache
comme indiqu au dbut du tuto, le .htaccess ne sera pas pris en compte et lIHM sera
librement accessible !![/rouge]
on se connecte sur linterface et on modifie les parametres comme on le souhaite (
laide en ligne est disponible)
Un premier paramtrage est livr par dfaut.
On teste en envoyant un email.
On doit voir des logs policyd et le mail doit tre correctement livr.
on met en place la purge quotidienne :
On cre un fichier policydv2-purge.sql :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/policydv2-purge.sql
Une tache cron assurera le lancement. (en fin de tuto)
HURRICANe
Maintenance et automatismes : Tches CronRetour la table des matires

Toutes les taches cron du tuto sont runies pour faciliter la gestion :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/CAReMAILcron
svn export http://smtp04.spamguard.fr/svn/Procmail/spamassassin/sa-compile
cd cron/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/daily-purge-sql
.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/daily-purge.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/amavis-purge.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/dspam-purgesql.
sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/amavis-purgesql
.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/policydv2-purge
sql.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/sa-update.sh
chmod 755 /etc/caremail/sa-compile
il faut changer les passwords des fichiers dspam-purgesql.sh, amavis-purgesql.sh
et policydv2-purgesql.sh par ceux que vous avez parametr plus tot.
puis on scurise
chmod 700 /etc/caremail/cron/*
Enfin on fait un lien dans /etc/cron.d :
ln -s /etc/caremail/CAReMAILcron /etc/cron.d/
Vacation AutoReplyRetour la table des matires
On peut ventuellement activer un systme de rponse automatique en cas absence.

Note : Il est fortement dconseill dutiliser ce genre dautorponse car il peut gnrer u
rafic illgitime. (Backscatter Mails).
Voir ces liens pour plus dinformations :
http://www.spamcop.net/fom-serve/cache/329.html
http://www.rfc-editor.org/rfc/rfc3834.txt
Pour limiter ce risque il est ncessaire dinstaller le mcanisme dautoreply au plus pr
oche de la boite email, au moment de la livraison, une fois que tous les tests a
ntispams ont t effectus.

On utilisera donc Sieve pour cela.


Un autoreply nayant rellement de sens que sil peut etre gr directement par lutilisate
rs, il faut utiliser une interface graphique pour gnrer le code du filtre Sieve.
Le webmail Horde propose un excellent module pour cela (ingo).
Ce point est trait dans le tuto sur horde.
Reporting et analyses des logsRetour la table des matires
Pour suivre les logs que gnrent le serveur de mail, il est conseill dutiliser des ou
tils particuliers.
on installe :
aptitude install logcheck logwatch
- Logcheck :
Son utilisation est automatique aprs linstallation sous debian.
Toutes les heures il envoie un rapport des logs du serveurs ne contenant que les
points qui doivent attirer lattention.

- Logwatch :
son installation est galement automatis par la debian.
Il envoie un rapport journalier sur les logs.
Pour des rsultats pertinent avec postfix/amavis, il faut ajouter les modification
s suivantes :
cd ~
wget http://downloads.sourceforge.net/project/logreporters/amavis-logwatch/relea
se/1.51.02/amavis-logwatch-1.51.02.tgz
tar xvzf amavis-logwatch-1.51.02.tgz
cd amavis-logwatch-1.51.02
cp amavis-logwatch /usr/share/logwatch/scripts/services/amavis
cp amavis-logwatch.conf /usr/share/logwatch/default.conf/services/amavis.conf
cd ..
wget http://downloads.sourceforge.net/project/logreporters/postfix-logwatch/rele
ase/1.40.00/postfix-logwatch-1.40.00.tgz
tar xvzf postfix-logwatch-1.40.00.tgz
cd postfix-logwatch-1.40.00
cp postfix-logwatch /usr/share/logwatch/scripts/services/postfix
cp postfix-logwatch.conf /usr/share/logwatch/default.conf/services/postfix.conf
-Mailgraph :
Mailgraph gnre des graphiques sur lutilisation de la messagerie
aptitude install mailgraph
sed -i s/IGNORE_LOCALHOST=false/IGNORE_LOCALHOST=true/ /etc/default/mailgraph
sed -i s!) SPAM\\!) (SPAM|SPAMMY)\\! /usr/sbin/mailgraph
/etc/init.d/mailgraph restart
note : le dernier sed est pour la version stable du paquet mailgraph. Si on a la
version testing ce nest pas necessaire.
On se connecte pour les graphiques avec lurl :
https://www.starbridge.org/cgi-bin/mailgraph.cgi
- Volume des mails dalertes
Au dbut du tuto, on a parametr Postfix pour alerter le postmaster par mail pour la
plupart des vnements, en particulier les bounces.
Une fois la priode de tests termins, il est conseill de dsactiver ces options car lon
risque dtre rapidement submerg par les mails destination du Postmaster.
Pour cela il faut diter le main.cf et commenter la ligne suivante :
notify_classes = 2bounce, bounce, delay, policy, protocol, resource, software
puis
postfix reload
FirewallRetour la table des matires
Il est capital de protger le serveur par un firewall.
On utilisera iptables..
Ci dessous un exemple pour un serveur standalone.
Il faudra bien sur ladapter la topologie du rseau.
exemple firewall

ne pas oublier dactiver ce script au dmarrage !


EOLE
Versions du Document (ChangeLog)Retour la table des matires
8.0 14/11/2016
- General : modification du wget par svn export pour contourner la protectio
n ddos de cloudflare
8.0 08/11/2015
- Dovecot mise jour 2.2.19
7.9 05/5/2015
- Dovecot : modification du script sa-trap-sdbox pour sexcuter en vmail au lie
u de root
- Spamassassin : mise jour 3.4.1
7.8 27/3/2015
- Dovecot mise a jour 2.2.16
- Clamav : mise jour 0.98.6
7.7 2/2/2015
- Policyd : desactivation IPv6. (merci Yvon)
7.6 26/11/2014
- Clamav : mise jour 0.98.5
7.5 15/11/2014
- Dovecot : mise jour 2.2.15
- Amavisd : mise jour 2.10.1
- ajout de paramtres pour les failles SSL dans les configurations
7.4 28/09/2014
- Clamav : mise jour 0.98.4
- Dovecot : mise jour 2.2.13
- Amavisd : mise jour 2.9.1
7.3 30/05/2014
- Cron:retrait du script SAawl, obsolete depuis le passage redis pour la bas
e bayes
- Clamav : mise jour 0.98.3
- Dovecot : mise jour 2.2.12
- Amavisd : mise jour 2.9.0
7.2 2/05/2014
- Dovecot : modification url pigeonhole
7.1 4/04/2014
- Dovecot : mise jour 2.2.12
- Amavisd : mise jour 2.8.2-rc1
- Spamassassin : mise jour 3.4.0
- clamav : mise jour 0.98.1
- Amavisd et SA : utilisation de Redis
7.0 16/11/2013
- General : Typo
- Dovecot : Mise a jour 2.2.7
- Clamav : mise jour 0.98
6.13 22/06/2013

- General : remplacement du serveur svn pour les sources du tuto


6.12 20/05/2013
- Dovecot : correction du dovecot.conf : ajout plugin notify
- Postfix : correction erreur dans le texte pour smtpd_recipient_restriction
s
6.11 19/05/2013
- Mise jour debian (prise en compte du passage en Wheezy Stable)
- Mise jour postfix (2.10 ou 2.9.6 en fonction de la distribution + ajout du
parametre smtpd_relay_restrictions pour retro compatibilit de la 2.10)
- Mise jour dovecot 2.2.1 et Sieve Pigeonhole 0.4.0
6.10.0 24/04/2013
- Clamd : 0.97.8
6.9.0 20/04/2013
- Clamd : 0.97.7
6.8.9 10/02/2013
- Dovecot : mise jour 2.1.15
- Clamav : mise jour du script de telechargement des signatures
6.8.8 12/01/2013
- Dovecot : mise jour 2.1.13
6.8.7 12/01/2013
- General : pb de compatibilit mysql et certains fichier de creation de table
: le TYPE a disparu en 5.5, il faut utiiser ENGINE a la place : les fichiers co
ncerns sont postfix.sql, bayes_awl.sql, policyd.mysql
6.8.6 28/10/2012
- General : typo et erreur de lien
- Sieve : modification du comportement du sieve global (after au lieu de bef
ore)
6.8.5 29/09/2012
- Dovecot : mise jour 2.1.10, pigeonhole 0.3.3
- Clamd : 0.97.6
6.8.4 8/09/2012
- Spamassassin : patch pour corriger le bug mysql
6.8.3 26/08/2012
- Dovecot : modification de lexemple darboresnce dun maildir. Modification du g
lobal.sieve pour tenir compte du retrait du prefix INBOX.
6.8.2 19/08/2012
- Amavisd : modification binaire amavisd : retour au score standard pour dsp
am : 10 et -1. On utilise le score factor dans le fichier de conf pour moduler l
e score : modification du amavisd.conf score_factor pour dspam passe de 1 0.39
6.8.1 19/08/2012
- Dspam : mise jour 3.10.2
- Dovecot : mise jour 2.1.9, ajout plugin zlib manquant pour pop3
- Clamav : Mise a jour 0.98
6.8.0 16/08/2012
- Amavisd : mise jour 2.8.0

6.7.9 11/08/2012
- Dovecot : ajout dun chmod manquant
- General : ajout fichier manquant pour purge amavis
6.7.8 02/08/2012
- Gnral : remplacement des crontab par un fichier cron gnral et des fichiers par
service dans un dossier spcifique.
- SA/DSPAM : refonte du sa-learn pour prendre en compte dspam et le format s
dbox
6.7.7 01/08/2012
- Dovecot : migration dovecot maildir vers sdbox, activation compression, prp
aration larrive de solr
- General : typo, ajout lien vers optimisation Mysql
- Mailzu : mise jour pour php 5.4
6.7.6 11/07/2012
- ajout paquets pour la compilation
- ajout de la compression dans la compilation dovecot
- ajout de solr dans la compilation dovecot
- passage dovecot 2.1.8
- Mise jour policyd2
6.7.5 18/06/2012
- Clamav : mise a jour 0.97.5
- Mysql : indication du passage en 5.5 pour la version debian testing
- Amavisd : mise jour 2.7.1
- Amavisd : retrait de la quarantaine /var/virusmail, plus utilise
6.7.4 09/04/2012
- Postfix : fix pour les warnings sur fallback_relay dans le master.cf. Fina
lement il y avait bien un leger changement de conf a faire !
6.7.3 09/04/2012
- Clamav : mise a jour 0.97.4
- Postfix : ajustements du texte pour la version 2.9.1 : version par defaut
de la debian testing et des backports stable. Pas de modification de configurati
on.
6.7.2 22/02/2012
- Dovecot : Mise a jour dovecot 2.1.1
6.7.1 17/02/2012
- Dovecot : Mise a jour dovecot 2.1.0, pigeonhole 0.3.0
6.7.0 22/01/2012
- Postfix : Mise a jour postfixadmin en version 2.4 et modification du looku
p transport
6.6.6 18/11/2011
- Mise a jour dovecot 2.0.16, pigeonhole 0.25
6.6.4 27/10/2011
- Logwatch : mise jour postfix-logwatch-1.39.07
6.6.3 19/10/2011
- Clamav : mise a jour 0.97.3
6.6.2 13/10/2011
- Gnral : mise en forme et typos

- SA : retrait de AWL
6.6.1 24/09/2011
- Logwach : mise jour
6.6.0 16/09/2011
- Postfix : retour linstallation par paquet avec les backports squeeze
6.5.9 16/09/2011
- Dovecot : Mise a jour dovecot et pigeonhole
6.5.8 16/09/2011
- Clamav : mise a jour 0.97.2
- Dspam : mise a jour 3.10.0
6.5.7 4/07/2011
- Amavisd 2.7.0 version finale
6.5.6 26/06/2011
- Spamassassin : upgrade en 3.3.2
- Typos (merci Bouks !)
6.5.5 14/06/2011
- Amavisd : modification du amavisd-signer pour passer en demon
6.5.4 14/06/2011
- Clamav : maj en 0.97.1
6.5.3 14/06/2011
- postfix : mise jour master.cf pour retrait du chroot sur tous les processe
s (conforme au master.cf des sources postfix)
- Mise jour du script sql amavis (verifier les diffs)
6.5.2 03/06/2011
- Spamassassin : upgrade en 3.3.2 rc2
6.5.1 02/06/2011
- Policyd : migration en V2
6.5.0 31/05/2011
- Gnral : mise jour pour Squeeze, retrait paquets inutiles
- Amavisd 2.7.0-rc1
- passage de bind a unbound pour les dns
- postfix 2.8.3 depuis les sources et utilisation de postscreen
- ajout pyzor et razor pour SA
- ajout dkim amavisd-signer
- maj script sql dspam
6.4.2 29/05/2011
- Dovecot : mise a jour 2.0.13 et sieve 0.2.3
6.4.1 28/05/2011
- Amavisd : modification du script sql pour utiliser le partitionning sur la
table quarantine. La version 5.1 de mysql doit etre utilise.
6.4.0 18/05/2011
- retrait des rules SARE desormais obsoletes et ajout des rules SOUGHT
6.3.0 08/03/2011
- global : mise a jour pour les changements de versions debian

- dovecot : mise a jour en version 2.0.11


6.2.7 05/03/2011
- Logwatch : mise a jour scripts
6.2.6 28/02/2011
- Clamav : mise a jour en version 0.97
6.2.5 09/12/2010
- Dovecot : mise jour dovecot-2.0-pigeonhole-0.2.2
6.2.4 04/12/2010
- Dovecot : mise jour en version 2.0.8
6.2.3 30/11/2010
- Clamav : mise a jour en version 0.96.5
6.2.2 25/09/2010
- Clamav : mise a jour en version 0.96.3
6.2.1 18/09/2010
- Dovecot : mise jour en version 2.0.3
6.2.0 11/09/2010
- Global : passage de maildrop a dovecot pour la livraison des mails.
- Dovecot : passage en version 2.0.2
6.1.9 17/08/2010
- Clamav : mise a jour en version 0.96.2
6.1.8 07/06/2010
- Mise jour script sanesecurity : v3.7.1
6.1.7 19/05/2010
- Clamav : mise a jour en version 0.96.1
6.1.6 27/04/2010 (merci Alex)
- SA : mauvais chemin pour une commande de test
- Amavisd : ajout du parametre mydomain dans les explications des modificati
ons du amavisd.conf
6.1.5 16/04/2010
- Logwatch : Mise jour des 2 modules.
6.1.4 02/04/2010
- Clamav : mise a jour en version 0.96
6.1.3 20/03/2010
- SA : mise a jour en version 3.3.1
6.1.2 13/03/2010
- Postfixadmin : ajout du transport dovecot. Correction dun bug lors de la cr
eation dun domaine en relay
6.1.1 20/02/2010
- Postfixadmin : adaptation du postfix.sql et du tuto pour crer lutilisateur da
dministratin en @starbridge.org et non plus admin@starbridge.org. Insertion dans
la table postfix_helo du domaine. (Merci Barronmonster pour la contribution !)
6.1.0 28/01/2010

- DSPAM : refonte du mode dappel de DSPAM. Utilisation du demon dspam.


6.0.4 28/01/2010
- FIX : amavisd : passage du champ policy_name de la table amavis.policy de
varchar(32) varchar(255) pour eviter un bug avec le module sam dans le cas dun em
ail dpassant les 32 caracteres. (lemail etant utilis par sam comme policy_name
6.0.3 26/01/2010
- SA : mise a jour en version 3.3.0
6.0.2 24/01/2010
- Mise jour script sanesecurity : v3.7
6.0.1 16/01/2010
- Mailzu : installation initiale du gestionnaire de quarantaine
6.0.0 16/01/2010
- systeme : prcision sur linstallation de mysql pour lenny ou squeeze (5.0 ou
5.1)
- gnral : retrait complet de linstallation de courier-imap pour dovecot et rorga
nisation des chapitres
- postfix : ajout du fichier mysql_relay_recipients_maps.cf manquants
- postfix : ajout des fichiers mysql_transport.cf et mysql_transport2.cf nces
saire pour la version de postfixadmin modifie.
- postfix : ajout du parametre transport_maps par dfaut
- Postfixadmin : mise en place de la version modifie sous SVN, remplacement d
es pass par dfaut en md5 hex
5.0.5 11/01/2010
- DSPAM : mise jour en version finale 3.9.0
5.0.4 08/01/2010
- SA : activation du plugin AWL dans la conf car il est par dfaut dsactiv
5.0.3 07/01/2010
- SA : lancement de sa-update juste apres linstallation pour telecharger les
rules : Celles ci ne sont plus livres par dfaut dans le package, il faut les tlcharg
er.
5.0.2 06/01/2010
- FIX : amavis : correction du script de purge pour eviter leffacement de la
semaine en cours
5.0.1 04/01/2010
- Postfix : ajout de la gestion des aliases domains (non activs par dfaut)
5.0.0 03/01/2010
- SA : Mise jour en version 3.3.0 rc1
- Postfix : passage de [not_]our_domain_has_sender en requete mysql
4.9.8 21/12/2009
- Dspam : mise jour en 3.9.0-RC2
4.9.7 15/11/2009
- Vacation autoreply : retrait du module vacation.pl, car le risque de gnrer d
u backscatter est trop important. Rajout dune information sur le sujet et orienta
tion prendre.
4.9.6 02/11/2009
- Dspam : mise jour en 3.9.0-BETA4

4.9.5 01/11/2009
- Amavisd : modification de la base SQL. Drop des contraintes et ajout dun ch
amp dans une cl primaire. Modification du script de purge pour utiliser le partit
ion_tag. Modification du amavisd.conf pour insrer le partition_tag dans la base.
4.9.4 28/10/2009
- Clamd : Mise jour en version 0.95.3
4.9.3 2/10/2009
- Gnral : Mise jour des scripts init.d (clamd/amavis/policyd) pour intgrer les
headers LSB. Ajout des commandes insserv dans le cas de la version testing.
4.9.2 12/09/2009
- Mise jour script sanesecurity : v3.6
4.9.1 26/08/2009
- DSPAM : mise jour en dspam-3.9.0-BETA1
4.9.0 26/08/2009
- SA : passage des regles amavis-sanesecurity sur les rules starbridge pour
une mise jour automatique avec sa-update
- Gnral : cration dun rpertoire commun pour les scripts de maintenance. Modificat
ion des chemins.
- SA : modification du sa-update et passage de la compilation des rulesets e
n quotidien dans le script directement.
4.8.9 25/08/2009
- Logwatch : Mise jour
4.8.8 05/07/2009
- SA : ajoutdun channel starbridge pour les mises a jours des regles SA
4.8.7 30/06/2009
- Dspam : mise jour paramtrage dans amavisd.conf et dans dspam.conf
4.8.6 27/06/2009
- Clamd : Mise jour en version 0.95.2
4.8.5 26/06/2009
- Amavisd : Mise jour du binaire et du fichier de conf en 2.6.4.
- Dspam : Mise jour en 3.9.0 ALPHA2
4.8.4 11/06/2009
- Amavisd : modification du master.cf et du amavisd.conf pour ajouter le por
t 10029 spcifique aux notifications damavisd
- Dspam : mise jour du script de cration des tables MySQL.
4.8.3 17/05/2009
- amavisd : mise jour prrequis libdb4.4-dev par libdb4.6-dev. Le paquet nexist
e plus dans Lenny
- paragraphe antispam : modification de lordre dexcution du tutorial pour evite
r le message suivant au dmarrage damavisd durant les tests" Cant locate object meth
od "new" via package "Amavis ::SpamControl" at /usr/sbin/amavisd line 13878."
4.8.2 10/05/2009
- Dspam : Mise jour version 3.9.0
- Mise jour script sanesecurity : v3.0
4.8.1 24/04/2009

- Clamav : Mise jour script signature en 2.7.2. Changement d nom du script e


n :clamav-unofficial-sigs
4.8.0 23/04/2009
- Amavisd : mise jour en 2.6.3. Modification du fichier de configuration pou
r prendre en compte le changement de gestion de Dspam par amavisd.
4.7.7 20/04/2009
- Dspam : ajout des outils de compilation ncessaires (automake, autoconf).
4.7.6 16/04/2009
- Dspam : mise jour des liens de tlchargement vers la version de la communaut.
4.7.5 08/04/2009
- Clamd : Mise jour en version 0.95.1
4.7.4 05/04/2009
- Mise jour script sanesecurity : v2.7
- Amavisd : mise jour du binaire avec 2 patches correctifs
4.7.3 23/03/2009
- Clamd : Mise jour en version 0.95
4.7.2 15/03/2009
- courier-authdaemon : modification du /etc/init.d/courier-authdaemon pour l
a version testing Squeeze de debian. Le script cre dsormais le rpertoire run, il fa
ut donc lui spcifier les bonnes permissions.
4.7.1 07/03/2009
- changement du lien de tlchargement du binaire damavisd pour integrer les diff
erents patches correctifs de la version 2.6.2
4.7.0 21/02/2009
- Mise jour script sanesecurity : update script + ajout du fichier de conf
4.6.9 24/01/2009
- Mise jour script sanesecurity : unification des 2 fichiers
4.6.8 21/01/2009
- Mise jour du script sanesecurity suite au changement de mode de telecharge
ment
4.6.7 21/01/2009
- Postfixadmin : Mise a jour en 537
- Vacation.pl mise a jour
4.6.6 20/01/2009
- Postfixadmin : Mise a jour en 529
- Mise a jour postfix.sql : ajout champ local_part
4.6.5 04/01/2009
- Amavisd : Mise jour en 2.6.2
- correction de mise en forme du tuto suite a une update SPIP
4.6.4 06/12/2008
- Amavisd : Mise jour en 2.6.2-rc2
4.6.3 26/11/2008
- Clamd : Mise jour en version 0.94.2
- Amavisd : Mise jour en 2.6.2-rc1

4.6.2 17/11/2008
- Amavisd : Mise jour en 2.6.2-pre1. Les nouvelles signatures Sanesecurity o
nt t ajout au code, donc on les enleve du amavisd.conf.
4.6.1 12/11/2008
- Amavisd : modification du amavisd.conf pour utiliser des fichiers externes
pour les domaines et les whitelist/blacklist. Ajout des nouvelles signatures Sa
neSecurity
- SA : Ajout des nouvelles signatures SaneSecurity
- SaneSecurity : Mise a jour du script
- Clamd : Mise jour en version 0.94.1
- Postfixadmin : Mise a jour en 478
4.6.0 26/09/2008
- Postfix : retrait de la rbl list.dsbl.org. Celle ci est arrete dfinitivement
.
4.5.9 04/09/2008
- Clamd : Mise jour en version 0.94
4.5.8 03/09/2008
- Postfixadmin : mise jour en version 458. Mise jour de vacation.pl
4.5.7 02/08/2008
- Postfixadmin : mise jour en version 432. Corrige le bug pour leffacement du
vacation_notification dans le mode admin
4.5.6 01/08/2008
- Postfixadmin : mise jour vacation.pl. Remise en forme du paragraphe dans l
e tuto pour crer le /etc/postfix/transport par wget+sed.
- Dspam : simplification de limport sql (wget)
4.5.5 31/07/2008
- Postfixadmin : mise jour en version 431. Mise jour du fichier config.inc.p
hp
4.5.4 20/07/2008
- SA : retrait de la procdure cpan et installation des modules perl en packag
e debian.
4.5.3 19/07/2008
- Amavisd : retrait de la procdure cpan et installation des modules perl en p
ackage debian.
4.5.2 18/07/2008
- Amavisd : Modification des options de compilation pour deplacer les binair
es dans le chemin par defaut : /usr au lieu de /usr/local
- Policyd : Idem
- SA : idem. On installe SA directement par perl et non plus par CPAN.
4.5.1 17/07/2008
- Clamd : Modification des options de compilation pour deplacer les binaires
dans le chemin par defaut : /usr au lieu de /usr/local. Meme chose pour clamdmo
n dont le package fourni a t modifi.
- Dspam : Idem
4.5.0 08/07/2008
- Clamd : Mise jour en version 0.93.3

4.4.9 04/07/2008
- Postfixadmin : Mise jour du script sql de creation des tables
- Postfix : passage des commandes de creation des fichiers de lookup sql de
la partie antispam/antivirus en wget/sed.
4.4.8 02/07/2008
- Postfix : Modification des droits sur les lookup sql de la partie antispam
. Le owner doit etre root, et non postfix.
- Maildrop : Modification de la cration du fichier quotawarnmsg. On ne le pla
ce plus que dans /etc/. La creation du dossier /usr/local/courier etant inutile.
4.4.7 01/07/2008
- Mailfilter : Modification de la cration du dossier des mails envoys par dfaut
. Dsormais le rpertoire sera Sent, et plus sent-mail pour compatibilit avec les der
nieres versions de horde et avec Thunderbird. Ajout dune regle pour intercepter l
es mails avec lextension +spam, utilise par amavisd si il est paramtr avec Mailzu.
4.4.6 30/06/2008
- Policyd : prcision sur la possibilit de placer la vrification dans le smtpd_r
ecipient_restrictions dans le cas ou le controle du nombre de mails envoys/recus
est primordial.
4.4.5 28/06/2008
- Amavisd : Mise jour en version 2.6.1
4.4.4 28/06/2008
- Amavisd : modification du script sql pour le pb dimport. Correction officie
lle.
4.4.3 25/06/2008
- Clamav : Mise jour du script UpdateSaneSecurity.sh pour eviter le controle
du repertoire /var/lib/clamav (structure differente dans les dernieres versions
de clamav)
4.4.2 24/06/2008
- Postfix : Modification dans la mise en forme du tuto de linsert des tables
sql principales et des fichiers de lookup. (wget + sed)
- SASL : idem pour tout la section
4.4.1 23/06/2008
- Postfix : Mise en place des prrequis pour lutilisation de certains domaines
en relais uniquement en cochant loption relative dans postfixadmin. (ajout du fic
hier /etc/postfix/mysql_relay_domains_maps.cf et modification du fichier /etc/po
stfix/mysql_virtual_domains_maps.cf)
4.4.0 16/06/2008
- Maildrop : Passage la version par paquet debian. Au niveau fonctionnel cel
a modifie le comportement de maildrop lors dun over quota : il ne rejette plus le
mail gnrant ainsi un bounce, mais il met celui ci en queue.
- Courier/Dovecot : Mise en forme du tuto pour bien sparer les 2 installation
s
- Clamd : ajout de clamdmon en telechargement car il a disparu des sources d
e clamd 0.93.1
4.3.6 14/06/2008
- SA : Mise jour en version 3.2.5
4.3.5 11/06/2008
- Amavisd : ajout dans le amavisd.conf fourni dune section banned_rules, perm
ettant de specifier dans les policies dans la base sql une liste personnalise de

fichiers bannis. Il sagit dexemple qui pourront bien sur etre modifis.
4.3.4 11/06/2008
- Amavisd : ajout dexemple et dexplication sur les policies dans SQL. Explicat
ion sur la possibilit de paramtrer par domaine.
4.3.3 09/06/2008
- Clamd : Mise jour en version 0.93.1
4.3.2 02/06/2008
- Policyd : dsactivation des options de verifications du HELO par dfaut dans l
e fichier de configuration fourni. La verification du HELO est deja faite dans p
ostfix et le controle du HELO selon lhote peut gnrer des blocages. Ces 2 controles
peuvent etre reactivs si lon comprend bien leur fonctionnement.
4.3.1 02/05/2008
- Postfixadmin : Remplacement dans le tuto du config.inc.php par un fichier
preconfigur a tlcharger.
- Postfixadmin : mise jour en version 3.5.8. Cette version correspond a la r
elease 2.2
4.3.0 23/04/2008
- Amavisd : Mise jour en version 2.6.0. Mise jour du fichier amavisd.conf po
ur ajouter le parametre dactivation de la signature dkim
4.2.8 22/04/2008
- Gnral : Uniformisation du nom du serveur dans le tuto : dans le /etc/hosts r
etrait du domaine seul (starbridge.org). Dans la partie TLS, modification du CN
en spike.starbridge.org au lieu de starbridge.org
4.2.7 20/04/2008
- Amavisd : Mise jour en version 2.6.0rc2. Mise jour du script sql et du fic
hier amavisd.conf.
4.2.6 14/04/2008
- Clamd : Mise jour en version 0.93. Mise jour des fichiers de configuration
.
4.2.5 9/04/2008
- Maildrop : mise jour de lurl pour rcuprer les sources
4.2.4 1/04/2008
- Amavisd : modification du tuto pour faire en sorte de recuperer le fichier
de conf damavisd correctement modifi au dbut de linstallation et deviter ainsi les e
rreurs de conf.
4.2.3 28/03/2008
- Amavisd : prerequis Mail ::DKIM deplac de la partie SA vers amavisd dans le
tuto car cest dsormais un prrequis pour amavisd
4.2.2 26/03/2008
- Reporting : Ajout de mailgraph pour gnrer des graphiques.
4.2.1 26/03/2008
- Policyd : FIX pour le pb de multiple recipient : Suppression de la verific
ation de policyd sur les recipient. (policyd.conf mis a jour)
4.2.0 21/03/2008
- Postfix : Nettoyage dune ACL inutile dans le stage smtpd_sender_restriction
s (reject_unknown_sender_domain) car prsente ensuite dans le stage smtpd_recipien

t_restrictions.
- Policyd : Dplacement de la rgle dappel de policyd dans le main.cf du stage sm
tpd_recipient_restrictions smtpd_end_of_data_restrictions. Cela permet Policyd d
e connaitre la taille dun message, mais aussi cela permet de faire passer au trav
ers de policyd les senders locaux. Cela permettra donc un controle de flux pour
les users internes. Mise a jour du document de gestion du serveur pour refleter
ce changement.
4.1.1 21/03/2008
- Amavisd : Activation dans amavisd du port 10026 pour utiliser la policy ba
nk ORIGINATING et permettre aux utilisateurs passant par le port 587 et authenti
fis par SASL detre considrs comme locaux par amavisd, meme si ils sont en dehors du
LAN.
4.1.0 20/03/2008
- Amavisd : Mise jour en 2.6.0rc1. Mise jour du script SQL damavisd. Ajout dun
e section pour configurer la signature DKIM par amavisd.
4.0.4 19/03/2008
- Gnral : ajout de lien pour suivre linstallation de Dovecot la place de Courie
r-imap dans le tuto
4.0.3 13/03/2008
- Amavisd : mise jour en amavisd-new-2.5.4
4.0.2 11/03/2008
- Postfix : Mise jour du master.cf de base pour la version 2.5 (ajout de pro
xywrite).
- Postfixadmin : Mise en jour en 311
4.0.1 10/03/2008
- Postfix : Mise jour des chemins btree dans le main.cf pour prendre en comp
te un changement dans la version 2.5 de postfix. ( $queue_directory ==> $data_di
rectory ). Ajout dune note pour la compatibilit avec Postfix < 2.5
4.0.0 26/02/2008
- FIX : Maildrop : le mail de warning lors de lapproche du quota (90%) ne fon
ctionnait plus ==> Modification de la mthode dinstallation du fichier quotawarnmsg
et surtout de sa localisation.
3.9.8 12/02/2008
- Clam : Mise jour en version 0.92.1
3.9.7 31/01/2008
- Clam : Mise jour du script UpdateSaneSecurity.sh.
3.9.6 30/01/2008
- Logwatch : Mise jour en amavis-logwatch-1.48.27
3.9.5 29/01/2008
- Courier : ajout dune clause dans authmysqlrc pour vrifier le statut actif du
compte et rendre le login imap impossible si celui ci est desactiv
3.9.4 29/01/2008
- Dspam : passage du fichier de configuration en wget et sed pour modificati
on du password.
3.9.3 28/01/2008
- firewall : le script de firewall a t transform en lien pour limiter la taille

de la page du tuto.
- policyd : passage du fichier de configuration en wget, modification du uid
/gid du user policyd en 20002 pour matcher le fichier de conf. passage du fichie
r init en wget
3.9.2 21/01/2008
- Postfixadmin : Mise jour en rvision 298
3.9.1 14/01/2008
- Gnral : modification de la procdure de cration de nombreux script en wget pour
faciliter la mise en oeuvre (sa-learn, sa-update, sa-compile, dspam.....)
3.9.0 11/01/2008
- Postfixadmin : Mise jour en rvision 291. Ajout dun import wget pour le confi
g.inc.php et dune commande de substitition du nom de domaine pour faciliter lediti
on de ce fichier de config.
- Postfix : ajout dun script pour importer la table sql et commande rapide po
ur le changement du domaine.
- Maildrop : ajout dun wget pour importer directement le fichier authmysqlrc
et viter ainsi les erreurs de saisie. Ajput de la commande pour modifier le passw
ord dans le fichier.
3.8.9 9/1/2008
- SA : Mise jour en version 3.2.4.
3.8.8 31/12/2007
- Postfixadmin : Mise jour en rvision 283.
3.8.7 18/12/2007
- Clam : Mise jour en version 0.92
3.8.6.1 18/12/2007
- SA : FIX : Correction de lerreur sur le nom du fichier sql de la base suite
la mise jour 3.8.4
3.8.6 17/12/2007
- Amavisd/Postfix : Modification du destinataire du test telnet (postmaster >
admin@starbridge.org) qui ne fonctionnait plus depuis la mise jour du tuto 3.8.
1
- Gnral : modification de la commande de cration du user vmail. Cration automati
que du home "virtual".
- Maildrop : Prcision pour le paquet libpcre++-dev sous etch.
3.8.5 14/12/2007
- Postfixadmin : Mise jour en rvision 268. Adaptation du config.inc.php.
3.8.4 12/12/2007
- SA : ajout du support de lAutoWhitelist (AWL) : ajout de la table sql, modi
fication du local.cf et ajout dun script de purge.
- SA : modification de limport SQL : modification du script pour prendre en c
ompte la creation directe des tables InnoDB. Retrait de la section de conversion
en InnoDB.
- Amavisd : Mise jour en version 2.5.3
3.8.3 09/12/2007
- Clam : modification du fichier clamdmon.sh pour ajouter les chemins vers l
es binaires.
3.8.2 06/12/2007
- Postfix : ajout dun paragraphe dans la section analyse des logs sur la ncess

it de desactiver lenvoi de mail au postmaster pour les bounces, une fois la priode
de test termine.
3.8.1 30/11/2007
- Postfix-Amavisd : Retrait du paramtre receive_override = no_address_mapping
s dans le main.cf pour le dplacer dans le master.cf sur le port 10025. Cela perme
ttra dutiliser pleinement les rgles par utilisateurs dans amavisd.
- amavisd : Changement du destinataire des mails dalerte virus (virusalert ==
> admin)
3.8.0.1 27/11/2007
- Postfixadmin : svn : mise a jour en version 248
- typos
3.8.0 25/11/2007
- Amavisd : ajout dune section sur la configuration de Penpals et des lookups
SQL pour une gestion par utilisateurs
3.7.4 23/11/2007
- SA : /etc/sa-update.sh, ajout des chemins en dur vers les binaires, pour e
viter les problmes avec Ubuntu.
- SA : ajout du chemin dans la crontab pour le sa-learn
3.7.3 22/11/2007
- policyd : ajout des INSERT dans la table blacklist_helo
3.7.2 20/11/2007
- Postfix : Activation dans le master.cf du port 587 (submission).
- Postfix : Prparation du port 465 (smtps) mais non activ (comment). Il peut et
re ncessaire suivant les cas de figure. Ce port est considr comme obsolte.
- Firewall : Ouverture du port 587.
- Amavisd : ajout de notes et dun lien vers un autre article du site sur lutil
isation du port 587 pour bypasser lantispam pour les mails sortants.
3.7.1 15/11/2007
- Postfixadmin : passage en rvision 227.
3.7.0 13/11/2007
- TLS : Refonte totale de la cration des certificats et de la CA.
- Postfix-TLS : modification des options relatives dans le main.cf
- Imapd-ssl : Ajout de la creation dun certificat personnalis et sign par la CA
- Postfixadmin-ApacheSSL : Modification du certificat.
- UpdateSaneSecurity : Changement pour la 1ere execution du script : cest le
user amavis qui la lance, a lidentique du cron.
- Postfix : Nettoyage du main.cf original (celui du debut du tuto). retrait
de parametres inutiles. Pas de changement dans les fonctionnalits.
3.6.6 12/11/2007
- Maildrop : ajout dune prcision sur le point pour terminer un mail en ligne d
e commande.
- Maildrop : Ajout dune prcision sur les droits appliquer au fichier personnel
.mailfilter.
- Postfix sql : Nettoyage des scripts de cration des tables postfix_hello et
postfix_access. (AUTO INCREMENT)
- Postfixadmin : passage en rvision 215.
- Postfixadmin : Retrait du paragraphe sur le .htaccess dans le rpertoire adm
in car celui ci nexiste plus dans cette version. (il est vide)
- Postfixadmin : Retrait du paragraphe sur la correction de laffichage.
- Postfixadmin : Mise jour du config.inc.php
- Amavisd : retrait du mkdir /var/amavis, dj cre par la commande adduser.

- sa-learn : prcision sur les deplacements des emails dans les dossiers SpamF
alse et SpamToLearn
- Typo
3.6.5 08/11/2007
- Vacation.pl : modification du script pour ne pas envoyer dautoreply pour me
ssages marqus comme spam par SA.
3.6.4 07/11/2007
- Maildrop : modification des droits appliqus sur le /var/run/courier/authdae
mon. (775 ==> 750)
3.6.3.1 30/10/2007
- FIX clam : Modification du chmod sur le dossier /var/tmp/clamdb pour evite
r une erreur de droits lors de lexcution du script.
3.6.3 28/10/2007
- Clam : modification dans le tuto pour automatiquement telecharger les fich
iers de configuration clamd.conf et freshclam.conf. Plus besoin de les editer ma
nuellement.
- Freshclam : Modification du cron en edition de la crontab plutt que par un
fichier dans /etc/cron.d
- SA : ajout de 2 modules perl optionnels : Mail ::DKIM et Encode ::Detect.
Ajout du package libssl-dev necessaire a la compilation, en dbut de tuto.
- SA : Edition du fichier /etc/mail/spamassassin/v312.pre pour activation du
plugin Mail ::Dkim
3.6.2 27/10/2007
- Clam : modification du crontab de UpdateSaneSecurity. Il sera excut par le u
ser amavis. (au lieu de root)
- Clam : Dplacement du paragraphe de UpdateSaneSecurity dans celui de linstall
de clamd.
- Clam : retrait de la cration du RamDisk /var/lib/clamav pour viter le problme
au redmarrage.
- clam : ajout du lancement de freshclam lors de linit.d de clam.
- Freshclam : Retrait du lancement de freshclam en cron au boot. Retrait dun l
og-verbose en trop dans la ligne.
- Clamav : installation de clamdmon pour surveiller Clam.
3.6.1 25/10/2007
- vacation.pl : ajout du module Mail ::Sendmail dans les prrequis (ils se tro
uvent dans la partie amavisd du tuto) pour viter un problme de dpendances.
3.6 24/10/2007
- postfixadmin : modification du script de scurisation des fichiers, effaceme
nt du setup.php plus tt dans le tuto. Rappel du password du superadmin
- postfixadmin : ajout de la modification pour la mise en page en francais
- logwatch : mise jour des liens pour le tlchargement suite aux changements su
r le site original.
- typos
3.5.9 17/10/2007
- postfixadmin : passage en rvision 157
- postfixadmin : mise jour vacation.pl
3.5.8 04/10/2007
- postfixadmin : passage en rvision 132. Modification du config.inc.php
- postfixadmin : mise jour vacation.pl
3.5.7 03/10/2007

- policyd : mise jour de la version en 1.82. Modification des liens.


3.5.6 26/09/2007
- postfixadmin : on passe le SVN la rvision 99.
- Typo
3.5.6 23/09/2007
- postfixadmin : retrait de la modification du EHLO en HELO dans le fichier
function.inc.php = bugs denvoi du mail cration de boite fix.
- postfixadmin : on fixe temporairement le SVN la rvision 66, pour des bugs d
ans les versions suprieures la date daujourdhui.
3.5.5.1 20/09/2007
- postfixadmin vacation : nouvelle version de vacation.pl
- postfixadmin vacation : ajout des modules perl ncessaires.
3.5.5 19/09/2007
- Postfixadmin vacation : Modification du fichier vacation.pl fourni
- Postfixadmin vacation : modification de la table vacation : champ active I
NT (1) en active INT (4) et conversion de la table en InnoDB
- Postfixadmin vacation : Ajout de la table vacation_notification.
- Postfixadmin : Modification de la table Domain : ajout du champ quota
- Postfix Admin config.inc.php : ajout de paramtres optionnels
3.5.4 09/09/2007
- maildrop : retrait de GDBM extensions enabled. de lexemple de retour dun mai
ldrop -v car cette extension a t dsactiv dans le configure.
- maildrop : modification du configure : retrait de --enable-maildropmysql e
t --with-mysqlconfig=/etc/courier/maildropmysql.config devenuent obsoltes.
- maildrop : ajout dun workaround pour lerreur a la fin du make install de la
version 2.0.4.
3.5.3 05/09/2007
- Postfixadmin : ajout de la commande de redmarrage dapache la fin de la confi
guration SSL.
- SASL : modification des droits sur le /var/spool/postfix/run/saslauthd de
770 en 710.
3.5.2 02/09/2007
- sa-learn : modification du script pour liminer les messages dalertes inutile
s par email.
3.5.1 29/08/2007
- Vacation : correction dune erreur dans le fichier /etc/postfix/transport :
oubli du :
3.5 28/08/2007
- Postfix Mysql : correction dune erreur dans le fichier /etc/postfix/virtual
_domains_maps.cf : la place de SELECT description il fallait lire SELECT domain
3.4.2 24/08/2007
- Postfixadmin : correction dune erreur sur la commande svn (merci ARk0 !) (
un - inutile devant le co
3.4.1 23/08/2007
- Gnral : Modification de la base debian :: on prend dsormais la version testin
g comme rfrence.
- Clamav : modification des prrequis de compilation : paquet renomm dans la ve
rsion lenny : libgmpxx4ldbl

3.4 21/08/2007
- Maildrop : modification de la version en 2.0.4.
- Maildrop : Ajout de make la liste de packages ncessaires linstallation.
- Maildrop : Explication sur le message derreur la fin du make install et sur
le temps ncessaire au ./configure.
- Maildrop : retrait du paragraphe sur le fichier obsolte maildropmysqlconfig
- Maildrop : ajout de prcisions sur la procdure de test.
- TLS : ajout dun chmod sur le dossier /etc/postfix/tls
- SASL : modification du fichier /etc/init.d/postfix pour tenir compte des m
ises jour debian. (dans la ligne FILE, le fichier etc/nss_mdns.config a t ajout par
linstalleur)
- Postfix : mise jour du master.cf original pour correspondre la dernire vers
ion de linstalleur.
- Postfixadmin : [rouge]refonte totale[/rouge]. Installation de la version S
VN. Mise jour des commentaires.
- Postfixadmin : ajout dune section sur linstallation du SSL dans apache
- Clamav : Mise jour version 0.91.2 et mise jour des fichiers de configurati
on dexemple.
- Clamav : modification des prrequis de compilation. (changement de version d
u paquet debian libgmpxx4)
- Ramdisk : modification du mount pour les ramdisk (mount tmfs)
- Vacation : modification/simplification de la procdure (ajout de wget) et mo
dification du lien vers postfixadmin dans cette section en https:// (ajout du ss
l)
3.3 19/08/2007
- retrait de scores obsoltes dans local.cf pour SA : (HTML_60_70 et HTML_SHOU
TING3)
3.2 11/08/2007
- modification de la structure des tables SQL de postfixadmin : correction d
es index.
- ajout de sa-compile dans linstallation de SA
3.1 08/08/2007
- ajout de la section sur les mises jour des rgles SA et installation des rgle
s SARE.
- ajout de la section sur linstallation des signatures supplmentaires de Clam
: sanesecurity.
- mise jour du ficher amavisd.conf dexemple (lien)
3.0 06/08/2007
- ajout dune section Firewall avec un exemple.
- modification des liens pointant sur le tuto webmail (tuto cre ce jour)
2.8 30/07/2007
- retrait du paragraphe sur la modification damavisd 2.50 et antrieures pour f
onctionner avec dspam 3.8.0. On utilise amavisd 2.52 par dfaut dsormais. Si ncessai
re, la modification effectuer est toujours documente dans larticle spcifique sur DS
PAM.
- typos
- prcision sur le fichier maildropmysql.config dans la partie sur Maildrop
2.7 27/07/2007
- retrait des commandes postmap inutiles sur les fichiers de lookup Mysql
- mise jour de certains lookup sql qui taient nots avec lancienne syntaxe de po
stfix.
2.6 18/07/2007
- Mise jour du lien pour clamav 0.91.1

2.5 09/07/2007
- Modification du master.cf pour eviter le filtrage et les body/header check
s sur le pickup.
2.4 03/07/2007
- ajout de la modification de /etc/init.d/courier-authdaemon sous ubuntu pou
r viter le changement des droits chaque lancement.
- simplification du paragraphe sur les RBL. Seules 2 listes restent en fonct
ion par dfaut.
2.3 30/06/2007
- modification du lien de clamd pour la version 0.91rc2 en raison du bug de
demarrage de la version 0.90.3.
2.2 29/06/2007
- ajout dun paragraphe dans courier-imap sur lutilisation de ENHANCEDIDLE.
- ajout dun paragraphe dans courier-imap sur le nombre de process maximum
- ajout dun paragraphe dans courier-imap sur le fonctionnement des fichiers d
e configuration imapd et imapd-ssl
2.1 28/06/2007
- Typo
2.0 27/06/2007
- Partie antispam, paramtrage de postfix (stmd_recipient_restrictions..) : Re
fonte complte du paragraphe pour ajouter des rgles pour viter le spoofing des adres
ses expditrices.
- Postfix main.cf (au dbut du tuto) : ajout de $smtpd_sender_login_maps dans
proxy_read_maps.
- Mise jour des liens pour Amavisd-2.5.2
1.3 26/06/2007 Merci Guillain pour son aide !
- Typos : type Mime
- Headers/body/tyme Mime : modification des noms de fichiers pour quils aient
tous la terminaison .cf
- SASL : Ajout du START=yes dans le /etc/default/saslauthd
- Maildrop : ajout de libpcre3-dev dans les paquets ncessaires installer (com
patibilit Ubuntu)
- Maildrop : ajout de linstallation de la commande mail pour les systmes Ubunt
u
1.2 06/06/2007
- Modification du script dapprentissage SA
- ajout des botes email dapprentissage Spam et Ham
- ajout des rpertoires par dfaut dans les botes imap : SpamToLearn et SpamFalse
1.1 31/05/2007
- Modification du Main.cf et dplacement du reject_unauth_pipelining sous smtp
d_data_restrictions.
- Modification de postfixadmin pour corriger le bug denvoi de lemail de confir
mation li a la restriction sur le pipelining.
1.0 Article Original

Das könnte Ihnen auch gefallen