Accueil > HowTo Mail > Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin, Dspam, (...)
vendredi 2 mai 2014, par
Cet article, initié en 2007, est mis à jour régulièrement.
Le système sur lequel est basé ce document est une DEBIAN stable (Jessie).
Le tuto est aussi entièrement compatible avec la version Testing (Stretch).
Ce tuto fonctionne également sous Ubuntu mais certains paquets présentent de légères différences. On essaiera de les indiquer si possible.
Mise à jour du 14/11/2016->http://www.starbridge.org/spip/spip.php?article12&artpage=12-12#outil_sommaire_22]

On prendra comme base pour l’exemple le domaine starbridge.org et le hostname du serveur de mail sera spike.
On met le système à jour :
aptitude update
aptitude full-upgradeOn vérifie les fichiers :
Le fonctionnement d’un serveur de mail nécessite l’utilisation intensive de requêtes DNS.
Pour des raisons de performances, il est très fortement conseillé d’installer un cache DNS local.
aptitude install unboundLa configuration de base sous Debian fournie un serveur cache (on peut bien sur le configurer pour gérer son domaine local voire son domaine public mais ce n’est pas le sujet de cet article).
On modifie le /etc/resolv.conf pour pointer en local :
on relance le serveur DNS :
/etc/init.d/unbound restart
Puis on teste la résolution avec nslookup ou dig
nslookup
>serverdoit retourner :
Default server: 127.0.0.1
Address: 127.0.0.1#53puis :
>yahoo.fr
La résolution doit se faire correctement.
On installe ensuite les outils pour la compilation, ils seront nécessaires tout au long de l’installation :
aptitude install bzip2 gcc libpcre3-dev libpcre++-dev g++ libtool libmysqlclient-dev make libssl-dev libmysqld-dev libdb-dev automake autoconf bzip2 lbzip2 libbz2-1.0 libbz2-dev curl libcurl3 libcurl4-openssl-dev libexpat1 libexpat1-devOn crée le dossier de configuration général :
mkdir /etc/caremailLa 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 n’impacte pas les fonctionnalités mises en place dans le tuto (retrocompatibilité), donc pour le moment il n’est pas forcément nécessaire de passer en 3.1 pour ceux qui sont en debian stable
On lance l’installation de postfix :
aptitude install postfix-mysql postfix-pcrel’installeur va demander l’effacement de exim que l’on valide
puis il va demander le type d’installation pour postfix, on laisse tout par défaut.
on installe ensuite les autres paquets nécessaires :
aptitude install mysql-client mysql-server libsasl2-2 libsasl2-modules sasl2-bin openssl ntpvoir le sujet sur le forum concernant l’optimisation de mysql :
https://www.starbridge.org/support/viewtopic.php?f=6&t=1599
On installe apache + php5 pour gérer plus tard le tout avec l’interface postfixadmin.
aptitude install libapache2-mod-php5 php5-mysqlNote : Il est fortement conseillé d’installer le SSL avec Apache pour sécuriser les échanges. Cette configuration sera détaillée plus loin lors de l’installation de Postfixadmin.
Pour ceux qui le préfère, on peut tout de suite installer Phpmyadmin pour effectuer l’étape suivante.
(on ne détaillera pas cette installation, en dehors du scope de ce document)
On passe donc à la création de la base sql Postfix :
Note : Si l’on a mis un password lors de l’installation du paquet mysql, il faut sauter la première commande ci dessous et exécuter directement la seconde.
mysqladmin -u root password '*****'
mysqladmin -u root --password='*****' create postfixCréation de l’user postfix :
$ mysql -u root -p
Enter password:
GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY '******';On crée 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.sqlExplications :
Seules 3 tables sont nécessaires à Postfix.
Le reste est pour l’interface Postfixadmin que l’on installera plus tard.
Le password (MD5) est "secret"
Le premier INSERT permet à Postfix de savoir que ce domaine est virtuel et qu’il doit donc le gérer.
Le 3ème INSERT est un alias virtuel pointant vers un user de la table mailbox. Cet alias vers lui même sera utilisé par Postfixadmin.
le 4ème INSERT est un simple alias virtuel.
Le 7ème INSERT est un compte (boite email) virtuel, qui utilise un mot de passe encrypté en MD5.
Les deux derniers INSERT permettent de créer le superadministrateur que l’on utilisera plus tard dans Postfixadmin.
#PAGINATION
On remplace tout le /etc/postfix/main.cf par le contenu ci dessous :
n’oubliez pas de remplacer myhostname = spike.starbridge.org par votre domaine
Ceux qui sont en postfix 2.10 et supérieur doivent ajouter cette ligne au dessus du bloc smtpd_recipient_restrictions
ce qui donne :
On modifie le /etc/postfix/master.cf comme ci dessous :
On crée le groupe et le user vmail avec l’uid et gid 20001, ainsi que le répertoire des mails :
groupadd -g 20001 vmail
useradd -g vmail -u 20001 vmail -d /home/virtual -mOn sécurise :
chown -R vmail: /home/virtual
chmod 770 /home/virtualOn crée les fichiers d’appel des tables par Postfix :
(la commande sed permet de specifier votre password d’accès à la base, dans l’exemple ici c’est toto)
cd /etc/postfix
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_maps.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_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_relay_recipients_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_domain_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_domain_catchall_maps.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_domain_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_maps.cf mysql_virtual_mailbox_maps.cf mysql_relay_domains_maps.cf mysql_relay_recipients_maps.cf mysql_virtual_alias_domain_maps.cf mysql_virtual_alias_domain_catchall_maps.cf mysql_virtual_alias_domain_mailbox_maps.cf mysql_transport.cf mysql_transport2.cfOn sécurise le tout :
chmod 640 /etc/postfix/mysql_*
chgrp postfix /etc/postfix/mysql_*Pour un serveur en production, il serait préférable d’utiliser un véritable certificat fourni et signé par une autorité de certification de confiance.
On édite la configuration de ssl pour pouvoir signer des certificats sur 10 ans, au lieu de 1 an par défaut :
vi /etc/ssl/openssl.cnfon change la ligne default_days en
On crée le Certificat Racine :
cd ~
/usr/lib/ssl/misc/CA.pl -newcaon entre les parametres requis, on choisis un pass phrase de son choix et on laisse "challenge password" vide.
Ce certificat racine sert à signer les certificats. Il est localisé dans le répertoire /demoCA.
On crée maintenant une clé privée pour le serveur ainsi qu’un csr (Certificate Signing Request : demande de signature de certificat).
mkdir ~/CERT
cd ~/CERT
openssl req -new -nodes -keyout starbridge-key.pem -out starbridge-req.pem -days 3650et on entre les paramètres comme ci dessous :
Note : le paramètre le plus important est le Common Name qui doit être le même que le nom avec lequel se connecte les clients sur le serveur. Ici il s’agit du FQDN : spike.starbridge.org.
cela génère 2 fichiers :
la clé privée, à protéger absolument
la demande de certificat, qui est pour faire simple un certificat public non signé
On signe maintenant notre certificat public avec le certificat racine :
cd ~
openssl ca -out CERT/starbridge-cert.pem -infiles CERT/starbridge-req.pemVoici la sortie de la signature :
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/postfix/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 :
On redémarre Postfix :
postfix reloadon testera le fonctionnement après l’installation de dovecot.
De "simple" serveur imap, Dovecot est devenu un ensemble d’outils indispensables pour la messagerie :
il permet de gérer le SASL très simplement au travers de Postfix afin de fournir à ce dernier un moyen d’authentifier les transactions SMTP,
il fournit un agent de livraison de mail très performant et parfaitement intégré à Postfix,
il permet de prendre en charge le langage Sieve pour le filtrage des mails lors de la livraison,
et bien sur, il demeure un serveur imap rapide et léger.
On va détailler ici son installation, fonction par fonction.
Installation de Dovecot :
On va utiliser la version 2.2 de Dovecot.
On compilera depuis les sources.
Créer 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-password --quiet dovenullon 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.tar.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 installOn copie les fichiers de configuration nécessaires :
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-sql.conf
chown vmail:dovecot dovecot-dict-quota-sql.conf
chmod 600 dovecot-sql.conf
chmod 640 dovecot-dict-quota-sql.confOn indique le password de la table postfix :
sed -i 's/\*\*\*\*\*/toto/g' dovecot-sql.conf dovecot-dict-quota-sql.confon ne relance pas encore dovecot pour le moment
La livraison des emails : Dovecot LDA
Nous avons maintenant besoin d’un MDA (mail delivery agent) pour livrer les mails dans les boîtes.
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 gérer les quotas, ce que ne sait pas faire Virtual.
Procmail est très bien pour le filtrage, mais ne supporte pas les users/domaines virtuels, car il ne sait pas communiquer avec une base de données.
Une méthode répandue pour les quotas est l’application du patch VDA sur Postfix, option que nous ne choisirons pas pour des raisons de fiabilité.
Maildrop convient bien, il a d’ailleurs longtemps été utilisé dans ce tuto, mais nous l’avons maintenant remplacé par le MDA inclus dans Dovecot, plus performant et surtout très bien maintenu.
C’est donc Dovecot LDA (Local Delivery Agent, le MDA de dovecot) qui s’occupera de la livraison des mails dans les home.
Il faut configurer Postfix pour qu’il utilise Dovecot comme MDA :
On ajoute ceci au /etc/postfix/main.cf :
et on ajoute un transport dovecot au /etc/postfix/master.cf :
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 Postfixadmin.
Le domaine par défaut, crée par le script sql du tuto, est déja paramétré pour utiliser Dovecot.
Dovecot est également préconfiguré pour utiliser les mêmes certificats SSL que Postfix, que l’on a généré dans l’étape précédente.
Il n’y a donc rien de particulier à configurer pour le SSL sauf si vous avez modifié les noms de fichiers des certificats ssl à l’étape postfix.
il faut maintenant créer 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/dovecotOn lance Dovecot :
/etc/init.d/dovecot starton relance Postfix
postfix reloadOn verifie dans les logs que tout a démarré correctement.
On teste cette première configuration de base en envoyant un mail a user@starbridge.org
mail user@starbridge.orgnote : 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 :
note : si la commande mail n’existe pas sur le système (Ubuntu par exemple) l’installer avec aptitude install mailx
Puis on teste en direct sur le port 25 :
(ce qu’il faut taper est précédé de --->, le reste c’est le retour du serveur) :
On regarde les logs pour vérifier.
on regarde dans le dossier /home/virtual/user@starbridge.org : on devrait trouver les dossiers suivants :
En regardant dans mailboxes on trouvera les dossiers par défaut qui sont crées automatiquement.
Sieve
Dovecot LDA permet d’utiliser le langage de filtrage Sieve.
Celui-ci offre la possibilité d’appliquer des règles spécifiques pour les utilisateurs (redirection dans les répertoires, etc).
Mais avant cela, nous avons besoin d’un fichier de filtre Sieve global (son utilisation est paramétrée dans dovecot.conf) qui permettra de rediriger les spams dans un dossier de l’utilisateur :
mkdir /home/virtual/sieve
chown vmail: /home/virtual/sieve
chmod 750 /home/virtual/sieveon crée le fichier global.sieve :
vi /home/virtual/sieve/global.sieve
on sécurise :
chown vmail: /home/virtual/sieve/global.sieve
chmod 600 /home/virtual/sieve/global.sievePour la création assistée et autonome (par les utilisateurs eux-mêmes) des fichiers Sieve personnels on pourra utiliser un module du Webmail horde.
L’article sur l’installation du Webmail traite ce point en détail.
Il est également possible d’utiliser le protocole Sieve pour créer/modifier les scripts depuis un client lourd, Thunderbird propose par exemple un plugin pour la gestion des scripts Sieve.
Le port de connection par défaut est le 4190.
Les users seront ainsi totalement autonomes sur la gestion de leur paramètres de filtrage.
Consultation des emails par IMAP
On teste l’imap en TLS sur le port 143 depuis un client mail.
Si tout fonctionne correctement on doit accéder aisément aux messages de tests précédents 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 :
On ajoute également "permit_sasl_authenticated" dans "smtpd_recipient_restrictions" pour valider les restrictions (attention à bien placer le paramètre exactement à l’endroit indiqué) :
on relance Postfix :
postfix reload
On vérifie le fonctionnement depuis un client mail configuré pour l’authentification SASL sur un chiffrement TLS avec les mêmes identifiants que pour la connexion IMAP (ne pas oublier le @starbridge.org).
Pour le type d’authentication, il faut sélectionner "en clair" (le terme dépend du client mail).
C’est le chiffrage de la connexion par le TLS qui sécurisera le transfert du password.
C’est pour cela qu’il ne faut pas dissocier TLS et authentification.
Note : la directive smtpd_tls_auth_only = yes impose l’usage d’une connexion sécurisée pour l’authentification SASL, ce qui limitera les erreurs de configuration des utilisateurs.
Pour faciliter la création des users et la gestion des boîtes et des comptes, on utilise Postfixadmin.
Nous utiliserons une version modifiée que nous prendrons par SVN.
Activation du SSL dans Apache
Le SSL est indispensable pour sécuriser les échanges, en particulier les mots de passe utilisateurs.
On active le SSL par la commande :
a2enmod ssl.confPuis on crée le virtual host :
vi /etc/apache2/sites-available/ssl.confEt on colle :
puis on active le virtual host :
a2ensite sslGénération des certificats :
Il est important de créer un certificat avec le même nom que celui utilisé pour la connection.
Par exemple si on se connecte au serveur web par www.starbridge.org il faut créer un certificat avec un Common Name en www.starbridge.org.
On part du principe que l’on utilise www.starbridge.org.
On crée 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.pem -days 3650On entre les informations en prenant soin de bien spécifier le Common Name en www.starbridge.org.
Il faut également respecter les informations entrées plus tôt dans le CA.
cd ~
openssl ca -out CERT/starbridge-cert-www.pem -infiles CERT/starbridge-req-www.pem
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 redémarre Apache :
/etc/init.d/apache2 restartOn teste la connexion par
Le navigateur va demander la validation du certificat car celui ci n’est pas reconnu par une autorité de confiance. Ceci est normal (c’est un certificat self-signed).
Pour un serveur en production, il serait donc préférable d’utiliser un véritable certificat (payant).
aptitude install subversion
cd /var/www
svn co http://smtp04.spamguard.fr/svn/Procmail/mailstorm/postfixadmin-relay postfixadmin-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 entrées starbridge dans le fichier de configuration par 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.phpOn sécurise ce fichier :
chown www-data: /var/www/postfixadmin-relay/config.inc.php
chmod 640 config.inc.phpOn se connecte ensuite à l’interface :
https://www.starbridge.org/postfixadmin-relay
(bien sur on remplace starbridge par votre domaine sinon vous vous connectez chez moi !!)
On s’identifie avec @starbridge.org (on l’a créé plus tôt lors des inserts sql - on rappelle que le password est ’secret’)
On retrouvera les éléments entrés en ligne de commande au début du document.
On crée un nouvel utilisateur pour valider.
[rouge]On rappelle que l’utilisation du SSL pour se connecter à Postfixadmin est INDISPENSABLE si on doit passer par internet pour gérer la plateforme. Sur un réseau local son utilisation serait préférable.[/rouge]
On l’a vu, on a installé dovecot LDA qui prend en charge les quotas et on a paramétré dans la base SQL des champs pour les gérer.
Il faut maintenant les paramétrer :
On crée un message d’alerte générique pour le dépassement de quotas :
(on pensera à l’adapter 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.shLe reste est déjà paramétré dans Dovecot.
Il suffit d’utiliser Postfixadmin pour régler un quota pour un utilisateur.
Le faire avec l’utilisateur user@starbridge.org qui par défaut n’a pas de quota.
On teste en envoyant un mail.
On regarde les logs.
Voila le serveur est configuré !
A ce stade le serveur est sécurisé mais ne filtre ni les virus, ni les spams.
Paramétrage de Postfix :
Une grande majorité des spams ne respecte pas les règles d’envoi d’email : HELO incorrect, MAILFROM d’un domaine inconnu, etc, etc...
Il est très fortement conseillé de lire des documents sur ce sujet, notamment les RFC pour bien comprendre le fonctionnement.
La première chose à faire est de renforcer Postfix pour qu’il soit beaucoup plus restrictif.
Pour cela on va utiliser les smtpd_recipient_restrictions.
On ne détaillera pas ici les actions précises de chaque règle. (la documentation de Postfix est très complète sur le sujet et l’article sur la gestion du serveur de mail revient sur tous les points en les détaillant).
On édite le main.cf et on remplace tout le smtpd_recipient_restrictions par celui ci :
on va aussi paramétrer 4 RBL (des blacklists) qui filtrent très efficacement.
Pour cela, on va se servir d’une fonctionnalité apparue depuis la version 2.8 de postfix : postscreen.
Toujours dans le main.cf, on ajoute tout en bas du fichier :
Dans le master.cf, on commente la première ligne :
et on décommente les suivantes :
Il vaut mieux gérer les RBL supplémentaires au travers de Spamassassin.
A noter que Postscreen effectue egalement une autre vérification (greet_action) qui est particulièrement efficace (voir la doc de Postfix pour en comprendre le fonctionnement)
Ensuite il faut limiter les possibilités de forging des expéditeurs en vérifiant les MAIL FROM (adresses expéditrices).
Toujours dans le main.cf, on place au dessus du bloc smtpd_recipient_restrictions = :
Cela permettra d’empécher des utilisateurs de mettre une autre adresse email dans le MAIL FROM. Ils seront obligés de passer par les domaines que l’on gère.
De même, les utilisateurs authentifiés par SASL seront tenus d’utiliser comme adresse email (MAIL FROM) un alias valide de leur mail principal (on détaillera ce fonctionnement dans le document sur la gestion du serveur).
Il faut maintenant créer les fichiers suivants :
cd /etc/postfix/
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/internal_networksOn édite ce fichier et on spécifie son réseau local et son adresse publique à l’intérieur :
Cela permet de spécifier la ou les plages IP de notre réseau, qui seront autorisées à envoyer un mail avec nos domaines dans le MAIL FROM.
Cela permet également de préciser les IP autorisées à envoyer un mail en se présentant avec notre HELO.
On bloquera ainsi les clients SMTP extérieurs qui se présentent avec un HELO qui est le notre :
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-check.cf
svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_our_domain_as_sender.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 :
On postmape les fichiers qui le nécessitent :
postmap /etc/postfix/internal_networks
postmap /etc/postfix/our_domain_as_senderOn modifie le password des fichiers de lookup (la commande sed permet de spécifier votre password d’accès à la base, dans l’exemple ici c’est toto) :
sed -i 's/\*\*\*\*/toto/g' mysql-hello.cf mysql-sender.cf mysql-client.cf mysql-sasl-sender-check.cf mysql_our_domain_as_sender.cf mysql_not_our_domain_as_sender.cfEt on sécurise les fichiers de lookup :
chown -R root:postfix /etc/postfix/mysql*
chmod 640 /etc/postfix/mysql*
On crée les tables en question :
Evidemment, on modifie la commande sed pour inclure son domaine. Ici c’est toto.com
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.sqlOn relance Postfix
postfix reloadon vérifie les logs et on teste.
On a inséré des exemples de blacklist et de whitelist.
Tout le détail du fonctionnement se trouve dans le document gestion serveur de mail.
On peut utiliser PhpMyadmin pour gérer ces tables SQL.
Postfix peut vérifier les mails entrants très simplement en analysant le header, le body et le type mime des pièces jointes.
Ce type de blocage est très efficace, plus rapide que de laisser faire Amavisd ou SA, mais manque de souplesse.
Il s’avère cependant très 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 CPU).
Cependant une trop grande quantité de règles et un fort trafic aurait l’effet inverse sur les performances.
Il faut donc utiliser ces règles avec précaution.
On crée les fichiers nécessaires :
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.cfOn édite le /etc/postfix/main.cf et on ajoute les lignes :
On relance Postfix :
postfix reloadOn teste en envoyant un mail classique puis un autre qui contient un des mots ou type bloqués par ces règles.
Le blocage est immédiat et se traduit par un retour d’erreur au moment de l’envoi.
on installe les prérequis d’amavisd :
aptitude install file libcompress-bzip2-perl nomarch arc p7zip-full arj zoo lzop tnef pax cabextractet les modules Perl :
Pour ceux qui le souhaitent, on peut installer tous les modules perl nécessaires par CPAN ce qui permet d’avoir les versions les plus récentes : Modules Perl Amavisd par CPAN
aptitude install libarchive-tar-perl libarchive-zip-perl libberkeleydb-perl libcompress-zlib-perl libconvert-tnef-perl libconvert-uulib-perl libdigest-md5-perl libio-stringy-perl libmailtools-perl libmime-base64-perl libmime-perl libnet-perl perl-modules libnet-server-perl libtime-hires-perl libunix-syslog-perl libmail-dkim-perl liblog-log4perl-perl liblog-dispatch-perl libgetopt-argvfile-perl libconvert-binhex-perl libemail-sender-perl libnet-libidn-perlOn installe les dépendances de SA :
Pour ceux qui le souhaitent, on peut installer tous les modules perl nécessaires par CPAN ce qui permet d’avoir les versions les plus récentes : Modules perl pour SA par CPAN
aptitude install razor pyzor libhtml-parser-perl libnet-dns-resolver-programmable-perl liberror-perl libmail-spf-perl libmail-sendmail-perl libnetaddr-ip-perl libdbi-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-perlNote : IP ::Country n’existe pas en paquet, il faut l’installer par CPAN
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 installOn lance toute de suite l’update des règles de SA (obligatoire depuis la version 3.3.0) :
sa-update -DCela aura pour effet de télécharger les règles à jour. Elles seront installées dans /var/lib/spamassassin/3.004001 (ce qui correspond à la version 3.4.1 de SA)
Télécharger les sources d’amavisd :
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.1Créer le user et le groupe amavis :
groupadd -g 1002 amavis
useradd -g amavis -u 1002 amavis -d /var/amavis -mCréer les sous répertoires dans le home d’amavis :
mkdir /var/amavis/tmp /var/amavis/var /var/amavis/db /var/amavis/home
chown -R amavis: /var/amavisOn crée 2 lecteur tmpfs pour héberger les répertoires db et tmp d’amavis. Cela accroît notablement les performances de traitement :
Modifier /etc/fstab :
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 dépendant du nombre d’instances d’amavisd et de la taille maximale d’un message. Les paramètres mis ici sont ok pour 5 instances et un message_size_limit de 10 Mo, ce qui est largement suffisant dans la config par défaut d’amavisd (2 instances)
Puis :
mount /var/amavis/tmp
mount /var/amavis/dbon vérifie par un
mount -lCopier les exécutables :
cp amavisd amavisd-nanny amavisd-signer /usr/sbin/
chown root /usr/sbin/amavisd*
chmod 755 /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_sitewideLe fichier de configuration /etc/amavisd.conf fourni ici est modifié pour coller à nos besoins :
Evidemment il faut éditer tout de même ce fichier pour préciser :
son réseau 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 domaine.
Les domaines supplémentaires s’ajoutent en respectant le même format, un domaine par ligne.
On désactive temporairement l’antivirus pour tester :
On décommente pour cela les lignes (au début du fichier de conf) :
Démarrer amavisd en console pour voir si il manque des prérequis :
/usr/sbin/amavisd debugNoter les erreurs éventuelles.
Si amavisd ne démarre pas, arrêter la et résoudre les problèmes.
Si c’est ok, arrêter amavisd par CTRL + C.
On configure Postfix :
On ajoute à la fin du master.cf :
et on modifie toujours dans le master.cf la section sur le port 587 comme ceci :
(on ajoute en fait la ligne sur le content_filter)
Cette dernière modification permettra d’utiliser une configuration distincte dans Amavisd pour les utilisateurs se connectant en SASL de l’extérieur.
En effet ceux ci sont en dehors de notre LAN et ne sont donc pas considérés par Amavisd comme locaux (MYNETS pour amavisd)
En spécifiant un port d’écoute supplémentaire pour Amavisd (10026) on se connecte avec la configuration de la policy_bank ORIGINATING, qui dispose par défaut du tag ORIGINATING comme la policy bank MYNETS, qui permet à Amavisd de savoir que le client est de confiance.
Les utilisateurs identifiés par SASL hors du lan et les utilisateurs du LAN (identifiés SASL ou pas) seront donc considérés de la même facon. (on note que l’on pourra même modifier le comportement d’Amavisd très précisement de cette facon. Voir l’article suivant sur le sujet.
On édite maintenant le main.cf et on ajoute :
Relancer postfix :
postfix reloadSurveiller les logs :
tail -f /var/log/mail.logSi tout est ok, lancer à nouveau amavisd debug
/usr/sbin/amavisd debuget taper en console :
telnet 127.0.0.1 10024Il doit répondre :
quit pour sortir
Pareil pour tester le retour de Postfix :
telnet 127.0.0.1 10025
Il doit répondre un truc du style :
QUIT pour sortir (en majuscules)
Si les connections sont ok :
Tester le fonctionnement de base (ce qu’il faut taper est précédé de ---> , le reste c’est le retour du serveur) :
L’aller-retour postfix/amavisd fonctionne bien !
(on peut arrêter le debug d’amavisd par un CTRL + C)
Installation de la base SQL d’amavisd
Amavisd va être couplé à une base sql pour permettre notamment la mise en quarantaine des emails.
On crée la base :
On importe la base sql :
cd ~
svn export http://smtp04.spamguard.fr/svn/Procmail/amavisd/amavis.sql
mysql -u root -p amavis < /root/amavis.sqlOn édite amavisd.conf et on ajoute/modifie les lignes suivantes :
Installation de la base de réputation d’amavisd
Grosse nouveauté depuis la version 2.8.2, la gestion d’une liste de réputation dans une base Redis
Pour l’installer si vous utilisez la version testing faite simplement un
aptitude install redis-serversi vous utilisez la version stable il faut le prendre dans les backports :
ajouter cette ligne a votre /etc/apt/sources.list
puis
aptitude update
aptitude -t wheezy-backports install redis-serverrien de particulier à paramétrer pour l’usage que l’on va faire, pas de schéma à installer.
Il suffit de parametrer amavisd pour utiliser Redis :
on ajoute cela au amavisd.conf (juste sous les instructions pour le storage sql)
Prérequis :
aptitude install zlib1g zlib1g-dev libgmpxx4ldbl libgmp3-devOn compile depuis les sources :
cd ~
wget https://www.clamav.net/downloads/production/clamav-0.99.2.tar.gz
cd clamav-0.99.2
./configure --prefix=/usr --sysconfdir=/etc --with-user=amavis --with-group=amavis --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/clamavOn 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.confUne tache cron sera utilisée pour planifier la mise à jour de la base antivirale.
On fera cela en fin de tuto.
Créer :
mkdir /var/log/clamav
chown -R amavis:amavis /var/log/clamavCréer 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/clamdOn fait la mise à jour de la base virale :
freshclamOn vérifie que les fichiers soient bien présents dans le répertoire :
ls -la /var/lib/clamavOn lance clamd :
/etc/init.d/clamd startEt on vérifie les logs :
tail -f /var/log/clamav/clamd.logEt on vérifie bien que Clam tourne :
ps aux | grep clamOn teste le fonctionnement (le dossier "test" est dans le répertoire clamav-0.98) :
cd /root/clamav-0.99.2/test/
clamscan -l scan.txt clam-x.yzclamav-x.yz etant un des fichiers de test présents dans le répertoire test
Installation des signatures additionnelles pour Clam (détection du spam, phising...)
Il s’agit de fichiers supplémentaires que l’on 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-sigs.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-sigsOn lance le script :
su -c '/usr/sbin/clamav-unofficial-sigs.sh' amavisOn vérifie que les fichiers sont bien présents dans le répertoire de Clam :
ls -la /var/lib/clamavOn doit trouver les fichiers suivants :
-rw-r--r-- 1 amavis amavis 54185 28 oct. 21:28 bytecode.cvd
-rw-r--r-- 1 amavis amavis 6645011 28 oct. 21:27 daily.cvd
-rw-r--r-- 1 amavis amavis 38237 29 oct. 19:45 doppelstern.hdb
-rw-r--r-- 1 amavis amavis 22549 15 févr. 2012 honeynet.hdb
-rw-r--r-- 1 amavis amavis 155 23 juil. 13:09 INetMsg-SpamDomains-2w.ndb
-rw-r--r-- 1 amavis amavis 5441471 29 oct. 10:56 junk.ndb
-rw-r--r-- 1 amavis amavis 18380023 29 oct. 19:55 jurlbla.ndb
-rw-r--r-- 1 amavis amavis 812167 29 oct. 19:55 jurlbl.ndb
-rw-r--r-- 1 amavis amavis 242835 25 juil. 12:53 lott.ndb
-rw-r--r-- 1 amavis amavis 30750647 28 oct. 21:27 main.cvd
-rw-r--r-- 1 amavis amavis 156 29 oct. 20:02 mirrors.dat
-rw-r--r-- 1 amavis amavis 3233016 29 oct. 17:29 phish.ndb
-rw-r--r-- 1 amavis amavis 28806 29 oct. 16:57 rogue.hdb
-rw-r--r-- 1 amavis amavis 9164 19 juin 10:56 sanesecurity.ftm
-rw-r--r-- 1 amavis amavis 11717910 29 oct. 19:45 scamnailer.ndb
-rw-r--r-- 1 amavis amavis 1805097 28 sept. 13:54 scam.ndb
-rw-r--r-- 1 amavis amavis 200405 21 août 10:16 securiteinfobat.hdb
-rw-r--r-- 1 amavis amavis 300559 30 mai 22:28 securiteinfodos.hdb
-rw-r--r-- 1 amavis amavis 86504 21 août 12:07 securiteinfoelf.hdb
-rw-r--r-- 1 amavis amavis 13939950 29 oct. 12:25 securiteinfo.hdb
-rw-r--r-- 1 amavis amavis 1389724 29 oct. 12:27 securiteinfohtml.hdb
-rw-r--r-- 1 amavis amavis 314920 10 févr. 2012 securiteinfooffice.hdb
-rw-r--r-- 1 amavis amavis 468241 16 août 11:12 securiteinfopdf.hdb
-rw-r--r-- 1 amavis amavis 29520 21 août 12:26 securiteinfosh.hdb
-rw-r--r-- 1 amavis amavis 57676 2 mars 2012 spamimg.hdb
-rw-r--r-- 1 amavis amavis 19002 11 avril 2011 spam.ldb
-rw-r--r-- 1 amavis amavis 2000207 29 oct. 19:50 spear.ndb
-rw-r--r-- 1 amavis amavis 660 29 oct. 19:45 winnow.complex.patterns.ldb
-rw-r--r-- 1 amavis amavis 2878686 29 oct. 19:45 winnow_malware.hdb
-rw-r--r-- 1 amavis amavis 1498085 29 oct. 19:45 winnow_malware_links.ndb
-rw-r--r-- 1 amavis amavis 260787 29 oct. 19:45 winnow_phish_complete_url.ndb
-rw-r--r-- 1 amavis amavis 513146 29 oct. 19:45 winnow_spam_complete.ndbUne tache cron sera utilisée pour mettre à jour ces fichiers (on le fera en fin de tuto)
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 installUne tache cron sera utilisée (on le fera en fin de tuto)
Les binaires de SA ont été installés à l’étape précédente.
Sa configuration de base se fait dans le fichier /etc/mail/spamassassin/local.cf mais pour la plupart des paramètres, c’est le fichier amavisd.conf qui sera prioritaire.
Lorsqu’on 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.cfOn édite le fichier pour adapter les parametres internal_networks et trusted_networks.
internal_networks et trusted_networks sont des paramètres très importants pour la pertinence de la détection. Il faut absolument les configurer correctement.
On sécurise :
chown amavis: /etc/mail/spamassassin/local.cf
chmod 640 /etc/mail/spamassassin/local.cfSA fonctionne sur 2 types de tests :
Pour le filtre bayesien, depuis la version 3.4 de SA, on utilise une base redis.
Le serveur redis etant deja installé, il n’y a rien a faire, le fichier local.cf est paramétré !
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 prépare l’installation 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.KEYOn met à jour :
sa-update -D --gpgkey 6C6191E3 --channel sought.rules.yerp.org
sa-update -D --gpgkey C0FB2D51 --channel updates.starbridge.orgLes fichiers seront placés dans /var/lib/spamassassin :
ls -la /var/lib/spamassassin/3.004000/on vérifie que les rules Starbridge soient bien présentent directement dans le sous répertoire updates_starbridge_org.
Attention : ces rules Starbridge comportent des éléments essentiels pour le bon fonctionnement de l’antispam, il faut être sur qu’elles soient présentes dans ce sous répertoire
On vérifie que tout soit OK :
su -c "spamassassin -D --lint" amavisCompilation des Rulesets
La compilation des règles permet d’accélèrer sensiblement le traitement.
Pour cela il faut installer au préalable le paquet re2c :
aptitude install re2con lance ensuite la commande
sa-compile -Dcela prend un certain temps avant de se terminer.
Les règles compilées seront placées dans le répertoire /var/lib/spamassassin/compiled.
Il faut maintenant activer l’usage de ces règles grace au plugin Rule2XSBody :
On édite /etc/mail/spamassassin/v320.pre et on décommente la ligne suivante :
on vérifie que tout soit ok :
su -c 'spamassassin -D --lint' amavisPour une mise à jour des rules et une compilation régulière (1 fois par jour maximum) on créera une tache cron spécifique en fin de tuto.
Le script mettra à jour les différentes 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 impérativement en dehors des heures de service.
On démarre en debug-sa :
/usr/sbin/amavisd debug-saon 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 3Bayes n’est pas encore disponible car il n’a pas analysé assez de mails pour fonctionner. Ceci est normal.
On envoie un mail et on doit voir dans le debug le bon fonctionnement.
On arrête 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 véritable spam.
_C’est le score attribué qui décide de ce statut.
Par défaut, Amavisd mets les spams en quarantaine, c’est à dire qu’au dessus du score de 10, il envoie les mails dans un espace de stockage en base. Il ne sont donc pas livrés dans la boite du destinataire.
Au dessus de 4.3 et jusqu’à 10, les mails sont considérés comme spammy et sont tout de même livrés dans la boite de destinataire, mais avec le sujet modifié et des entêtes spécifiques.
Au dessous de 4.3, le mail est clean.
Pour faire la distinction entre mail clean et spammy, on traitera le mail plus loin par Sieve.
Lancement d’amavisd
On crée 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/amavison lance amavisd :
/etc/init.d/amavis startOn regarde les logs.
On envoie un mail et on regarde l’entête de celui ci.
on doit voir les X-Spam- headers.
On rappelle que Dovecot LDA est parametré pour déposer le courier détecté comme spam dans le dossier spam de chaque utilisateur.
Il crée également les dossiers spéciaux.
le Dossier Spam recevra tous les Spammy.
Les 2 dossiers SpamToLearn et SpamFalse pourront etre utilisés pour transmettre des mails à apprendre au systeme.
L’apprentissage des bases Bayes de SA se fait automatiquement lors de la réception mais peut aussi etre fait manuellement en alimentant les dossiers spéciaux.
On crée deux boite spéciale dédiées à la gestion du spam :
spamtrap@starbridge.org
hamtrap@starbridge.org
Ces deux serviront à l’admin pour trier les mails classés par les users dans leurs dossiers spamfalse et spamtolearn
On crée deux boites et deux répertoires spéciaux de transit + deux répertoires de stockage :
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-backuples deux répertoires de backup permettent de disposer d’un corpus de spam/ham pour l’apprentissage en cas de migration ou de remise à zero de la base bayes.
on crée 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-sdboxOn modifie à l’intérieur de ce fichier les 2 boites de destination pour ajuster à son installation.
Il suffira d’indiquer aux utilisateurs de déplacer les emails non détectés comme Spam dans le dossier SpamToLearn et de copier les email légitimes détectés à tort comme Spam dans le Dossier SpamFalse.
Le script déplacera lors de son exécution tous ces emails dans les boites spamtrap et hamtrap
Une tache sera ajoutée en fin de tuto pour lancer automatiquement ce script.
Attention : TOUS les mails déposés dans les dossiers SpamTolearn et SpamFalse sont déplacés c’est à dire qu’ils seront EFFACES de ces dossiers.
L’admin pourra alors consulter ces emails, et une fois validés, il lancera un script manuellement qui fera l’apprentissage soit comme spam soit comme ham (non spam).
on crée le script d’apprentissage pour l’admin /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-sdboxActivation de Clam dans Amavisd
Le fichier amavisd.conf fourni dans ce tuto est modifié pour ne prendre en charge que l’antivirus Clamav.
Pour info voici les paramètres modifiés (à la fin du fichier) :
Pour activer Clam on commente au début du fichier :
On relance amavisd :
/etc/init.d/amavis restartL’antivirus est chargé.
On crée grace à postfixadmin l’alias email : virusalert@starbridge.org vers admin@starbridge.org.
On teste le fonctionnement :
On doit voir dans les logs :
On peut aussi tester l’envoi d’un mail infecté dans une archive (pour tester le travail de décompression) en récupérant des fichiers de test sur eicar.com et en les envoyant par email.
Beaucoup considère Dspam comme une alternative plus performante de SA.
Je trouve qu’ils sont plutôt complémentaires.
Amavisd permet de gérer les 2 en parallèle.
cd ~
wget http://heanet.dl.sourceforge.net/project/dspam/dspam/dspam-3.10.2/dspam-3.10.2.tar.gz
tar xvzf dspam-3.10.2.tar.gz
cd dspam-3.10.2
./configure --prefix=/usr --disable-dependency-tracking --includedir=/usr/include --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-preferences-extension --enable-daemon --enable-debug
make
make installCréer la base sql :
mysql -u root -pOn 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.sqlOn modifie le fichier de conf dspam.conf original (toto étant votre password d’acces a la base sql dspam que vous venez de paramétrer) :
cd /etc/
mv dspam.conf dspam.conf-orig
svn export http://smtp04.spamguard.fr/svn/Procmail/dspam.conf
sed -i 's/\*\*\*\*\*\*/toto/g' dspam.confOn 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 dspamOn active le démarrage automatique :
insserv -v /etc/init.d/dspam
Modifier les droits sur les exécutables (même user qu’amavisd) 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/dspamSécuriser le répertoire de dspam dans le home d’amavisd :
chown -R amavis: /var/amavis/dspamon edite le /etc/amavisd.conf et on ajoute le bloc suivant juste avant la ligne "$sa_tag_level_deflt"
On passe les paramètres par défaut de dspam (ils vont s’insérer 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 crée le user virtuel avec le meme uid qu’amavisd (ici c’est 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 démon dspam
/etc/init.d/dspam startOn verifie qu’il tourne
ps aux | grep dspamrelancer amavisd :
/etc/init.d/amavis restartOn vérifie les logs. On doit voir :
On envoie un email :
On vérifie les logs, les headers des email pour les tags X-DSPAM et le remplissage de la base de données.
Principe de fontionnement :
Dans cette configuration, Dspam marque simplement les mails (il ajoute un tag dans le header).
Avant la version 2.6.3 d’amavisd, le score etait transmis à SA.
Désormais, le score est ajouté APRES Spamassassin, par amavisd.
Les scores par défaut sont inscrits en dur dans le binaire d’amavisd : 3.8 pour un spam, 0.1 pour un ham.
Actuellement l’autolearn n’est pas pris en charge dans cette implémentation.
Il faudra donc alimenter manuellement la base de dspam depuis un corpus.
On crée les taches de maintenance de dspam :
On crée un fichier /etc/caremail/dspam-purge-4.1.sql
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/dspam-purge-4.1.sqlune 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 dans amavisd, indépendamment de l’antivirus.
Ce blocage est très efficace et peut être complémentaire du premier blocage par Postfix sur ces fichiers (headers, body, type mime), car il utilise cette fois les capacités de décodage et de décompression d’Amavisd.
Par exemple, on pourra facilement bloquer un fichier exe à l’intérieur d’un fichier zip.
Voir mon fichier amavisd.conf pour des exemples de type mime et d’extensions de fichiers.
Voila le serveur de mail et le filtrage sont configurés !
Maintenant que l’on a un système fonctionnel articulé autour d’Amavis, on peut ajouter 2 fonctions intéressantes :
Penpals : qui permet de maintenir une liste des messages auquels un user a déjà répondu et ainsi moduler les scores en fonction
Gestions des users dans Amavisd par Mysql : cela permet de gérer par utilisateur les grandes fonctions d’Amavisd (désactivation de l’antivirus, de l’antispam, maintien de whitelist et de blacklist personnelles...)
La base mysql est déja créée et fonctionnelle.
Pour l’instant seul penpals fonctionne automatiquement.
En revanche la fonction users demande d’être paramétrée :
Pour cela, on pourra utiliser le module SAM de horde (voir le tuto horde pour cela) soit alimenter manuellement la base SQL.
Un exemple pour un paramétrage pour un utilisateur :
Ici on a crée un parametre pour un user de notre domaine test@starbridge.org.
On voit dans la table users qu’on lui donne l’id 1 et on lui associe la policy 1.
Une policy reprend tous les paramètres présents dans amavisd.conf.
On les retrouve dans la table policy. Si la valeur est NULL alors c’est celle du fichier amavisd.conf qui sera utilisée. Sinon c’est celle de la table.
Ici on a modifié le score de détection spam (5 au lieu de 4.3)
Ensuite on a ajouté une entrée a la table mailaddr où l’on spécifie des expéditeurs, par exemple toto@toto.com avec l’id 1.
Grâce à la table wblist on pourra maintenir une liste de score à attribuer en fonction de ces adresses d’expéditeurs ET de users (le destinataire dans notre réseau), ce qui rend ces listes entièrement personnelles.
Ainsi dans notre exemple, wblist pour rid 1 (recipient id 1 = test@starbridge.org) et le sid 1 (sender id 1 =toto@toto.com) on attribue un score positif de 15.
C’est l’équivalent 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 lieu du score.
On verra le module horde SAM pour laisser gérer facilement ces options par l’utilisateur lui même (SAM ne gère que le hard whitelisting/blacklisting).
On peut également utiliser cette table sql pour paramétrer finement non pas par users mais par domaine.
Pour cela il faudra juste utiliser le @starbridge.org pour prendre en compte tous les users de celui ci.
par exemple :
En résumé, on crée un user général qui englobe tous les comptes dans
starbridge.org.
On lui attribue la policy 4 qui correspond à toutes les options par
défaut, sauf les 2 options de vérification des fichiers bannis, qui sont sur bypass.
Ainsi tous les users du domaine starbridge.org pourront recevoir les fichiers bannis.
Les users qui le désirent pourront toujours personnaliser ces options dans Horde au travers du module SAM car la priorité du user général est de 6 alors que celle des users crées par le module SAM est de 7.
Leur paramétrage personnel sera donc prioritaire à celui du user général.
On peut également mixer avec la table wblist et mailaddr pour créer des whitelist/blacklist par domaines.
Maintenance des bases SQL d’amavisd
Les tables vont grossir au fur et à mesure des réceptions, il faut donc regulièrement les purger.
On utilise le champ partition_tag comme élément de sélection, cela permet de limiter le temps des requêtes de purge.
Ce champ contient le numéro de la semaine de l’enregistrement sql. Il est inséré par amavisd pour chaque INSERT dans la base.
On crée un fichier amavis-purgesql :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/amavis-purgesqlUne tache cron assurera l’activation réguliere de la purge (en fin de tuto)
Installation du gestionnaire de quarantaine : Mailzu
Pour gérer la quarantaine et pour permettre aux utilisateurs de la consulter, on installe Mailzu.
_Il s’agit ici d’une version modifiée intégrant des patches de la communauté (gestion des admins par exemple) mais aussi des modification persos sur les requêtes SQL pour prendre en compte le partition_tag d’amavisd.
On installe les prérequis :
aptitude install php5-imap php5-mcrypt php5-gd php-pearon 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 Cacheon télécharge depuis SVN :
cd /var/www
svn co http://smtp04.spamguard.fr/svn/Procmail/mailzu quarantineNOTE : Cette version de mailzu est compatible avec php 5.4
pour l’utiliser avec php 5.3, il suffit de revenir sur la modification de deux lignes dans le fichier suivant :
https://smtp04.spamguard.fr/websvn/diff. ... hp&rev=237
On sécurise :
chown -R www-data: /var/www/quarantine
chmod 640 /var/www/quarantine/config/config.phpOn modifie les paramètres (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.phple parametre $conf[’auth’][’s_admins’] permet de lister les admins de site, c’est a dire ceux qui auront acces a toutes les quarantaines de tous les utilisateurs.
Modifier l’entrée admin@starbridge.org pour utiliser votre admin global et laisser l’entrée @. qui est l’admin global par défaut.
Les admins de domaine sont ceux qui ont accès à un seul domaine.
Cette version de Mailzu récupere la liste des admins depuis celle de postfixadmin.
on crée le fichier de log :
touch /var/log/mailzu.log
chown www-data: /var/log/mailzu.logOn se connecte sur l’interface :
https://www.starbridge.org/quarantine
L’utilisateur est admin@starbridge.org (c’est votre email d’administrateur admin@votredomaine.com) et le password ’secret’.
On teste la quarantaine pour voir si tout fonctionne.
Vérification et signatures des messages par DKIM
Cette technique est désormais quasi indispensable pour assurer une meilleure délivrabilité des emails, et depuis la version 2.6, amavisd propose désormais d’exécuter l’intégralité des tâches DKIM : Vérification des messages reçus et signatures des messages sortants.
La vérification DKIM des mails recus et faites par defaut dans amavisd.
Pour la génération des signatures, il faut configurer amavisd :
On génére la clé :
mkdir /var/amavis/dkim
cd /var/amavis/dkim
amavisd genrsa /var/amavis/dkim/starbridge.key.pemles droits du fichier sont mis correctement par amavisd.
Si l’on a plusieurs domaines on répète la procédure pour chaque.
On ajoute ceci au /etc/amavisd.conf :
A partir d’ici Amavisd est capable de signer les messages sortants.
Mais le serveur destinataire ne sera pas capable de les vérifier, car il faut publier la clé publique dans les DNS :
Pour cela, on lance la commande suivante pour afficher la clé publique du ou des domaines que l’on a parametré plus haut.
amavisd showkeys
on fait un copier/coller du résultat pour le domaine et on le colle tel quel dans la zone DNS.
Le serveur DNS Unbound gère bien sûr cet enregistrement (TXT) et il suffira de l’enregistrer dans le fichier de zone et de la recharger.
Si les DNS sont gérés par l’hébergeur, la plupart d’entre eux propose de modifier les champs TXT, mais ce n’est pas le cas de tous.
Il faudra donc vérifier ce point.
On teste l’enregistrement avec une commande d’amavisd :
amavisd testkeysDepuis la version 2.7, Amavisd propose un programme externe de signature.
Pour le moment la configuration se fait directement dans le binaire amavisd-signer :
vi /usr/sbin/amavisd-signerOn édite les lignes suivantes :
et on ajoute juste sous les exemple de dkim_key, la même entrée que dans amavisd.conf :
On crée un init.d pour cet exécutable :
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-signerOn lance le signer :
/etc/init.d/amavisd-signer startOn relance amavisd.
Pour pouvoir signer les messages il faut que ceux ci proviennent pour amavisd d’une source de confiance, c’est à dire en provenance du réseau spécifié dans amavisd comme étant local (policy bank MYNETS), ou bien depuis le port 587 dans postfix en TLS + SASL (policy bank ORIGINATING).
On teste en envoyant un mail et on vérifie dans les logs que la signature s’applique bien.
On retrouvera cette signature dans les headers du message envoyé.
Notes :
On peut aller plus loin dans la configuration d’Amavisd mais pour ne pas surcharger le tuto nous n’aborderons pas ces points ici.
La configuration d’amavisd doit également être modifiée en fonction de la charge du serveur. Par défaut 2 instances sont actives ($max_servers = 2 ;). Le calcul du nombre d’instances nécessaires demande certains ajustements à l’usage et doit être considéré comme un prérequis sur la mise en production d’un serveur susceptible de traiter des volumes conséquents.
On peut consulter la doc d’amavisd sur ce point.
Dans notre configuration on filtre (antispam, antivirus) sur les mails entrants ET sortants. On peut économiser des ressources systèmes en désactivant l’antispam sur les mails sortants en provenance d’utilisateurs authentifiés. Voir la configuration dans cet article
Pour info, les mails soumis localement (pickup) bypassent tous les tests : spams, AV, header/body. C’est le cas pour les mails système comme ceux de cron, logwatch ou autres. Cette configuration a été faite dans la partie pickup en début de tuto.
Policyd V2 est un policy service de Postfix qui permet entre autres de contrôler les clients qui se connectent sur le serveur de mail (nombre d’email/heures....), en contrôlant le volume des email envoyés.
Policyd V2 est surtout très utile pour lutter contre les mail bombing, les ddos, les spywares et les abus en tout genre (limitation entrées/sorties)
on installe les prérequis perl :
aptitude install libconfig-inifiles-perl libcache-fastmmap-perlOn crée un user policyd :
groupadd -g 20002 policyd
useradd -g policyd -u 20002 policyd -s /bin/falsecd ~
wget http://download.policyd.org/v2.1.x-201310261831/cluebringer-v2.1.x-201310261831.tar.gz
tar xvzf cluebringer-v2.1.x-201310261831.tar.gz
cd cluebringer-v2.1.x-201310261831On 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/cbpolicydCréer la base sql :
On importe la base sql :
svn export http://smtp04.spamguard.fr/svn/Procmail/cluebringer/policyd.mysql
mysql -u root -p policyd2 < policyd.mysqlOn installe le /etc/cluebringer.conf et on modifie le password (ici votre password serait toto) :
cd /etc/
svn export http://smtp04.spamguard.fr/svn/Procmail/cluebringer/cluebringer.conf
sed -i 's/\*\*\*\*/toto/g' cluebringer.confOn sécurise le fichier :
chmod 640 /etc/cluebringer.conf
On crée 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/policyd2On lance le daemon :
/etc/init.d/policyd2 startOn vérifie qu’il tourne bien et avec le bon user :
ps aux | grep cluebringeret on vérifie les logs :
tail -f /var/log/cbpolicyd/cbpolicyd.logOn ajoute plusieurs entrees policy service au /etc/postfix/main.cf :
en dessous du bloc has_our_domain_as_sender :
avant le bloc smtpd_recipient_restrictions :
on modifie l’entree du smtpd_restriction_classes :
apres le bloc smtpd_data_restrictions :
puis dans le master.cf on modifie l’entree du port 587 :
On relance postfix :
postfix reloadon copie l’ihm 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/webuion modifie les credentials de la base dans /var/www/webui/includes/config.php
puis on sécurise le fichier :
chmod 400 /var/www/webui/includes/config.php[rouge]Attention : par défaut il n’y a pas d’authentification sur cette interface, on a donc mis un .htaccess avec un deny from all pour sécuriser l’installation, mais pour utiliser l’interface il faudra que vous modifiez ce htaccess pour accepter soit par votre ip, soit par un login/password
Dans tous les cas, bien s’assurer que l’acces ne soit pas possible directement par un navigateur !
ATTENTION : si l’on n’a pas configuré le AllowOverride All dans le virtualhost d’apache comme indiqué au début du tuto, le .htaccess ne sera pas pris en compte et l’IHM sera librement accessible !![/rouge]
on se connecte sur l’interface et on modifie les parametres comme on le souhaite (l’aide en ligne est disponible)
Un premier paramétrage est livré par défaut.
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 crée un fichier policydv2-purge.sql :
cd /etc/caremail/
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/policydv2-purge.sqlUne tache cron assurera le lancement. (en fin de tuto)
Toutes les taches cron du tuto sont réunies 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-purgesql.sh
svn export http://smtp04.spamguard.fr/svn/Procmail/caremail/cron/sa-update.sh
chmod 755 /etc/caremail/sa-compileil 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 sécurise
chmod 700 /etc/caremail/cron/*Enfin on fait un lien dans /etc/cron.d :
ln -s /etc/caremail/CAReMAILcron /etc/cron.d/On peut éventuellement activer un système de réponse automatique en cas absence.
Note : Il est fortement déconseillé d’utiliser ce genre d’autoréponse car il peut générer un trafic illégitime. (Backscatter Mails).
Voir ces liens pour plus d’informations :
http://www.spamcop.net/fom-serve/cache/329.html
http://www.rfc-editor.org/rfc/rfc3834.txt
Pour limiter ce risque il est nécessaire d’installer le mécanisme d’autoreply au plus proche de la boite email, au moment de la livraison, une fois que tous les tests antispams ont été effectués.
On utilisera donc Sieve pour cela.
Un autoreply n’ayant réellement de sens que s’il peut etre géré directement par l’utilisateurs, il faut utiliser une interface graphique pour générer le code du filtre Sieve.
Le webmail Horde propose un excellent module pour cela (ingo).
Ce point est traité dans le tuto sur horde.
Pour suivre les logs que génèrent le serveur de mail, il est conseillé d’utiliser des outils particuliers.
on installe :
aptitude install logcheck logwatch
- Logcheck :
Son utilisation est automatique après l’installation sous debian.
Toutes les heures il envoie un rapport des logs du serveurs ne contenant que les points qui doivent attirer l’attention.
- Logwatch :
son installation est également automatisé par la debian.
Il envoie un rapport journalier sur les logs.
Pour des résultats pertinent avec postfix/amavis, il faut ajouter les modifications suivantes :
cd ~
wget http://downloads.sourceforge.net/project/logreporters/amavis-logwatch/release/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/release/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 génére des graphiques sur l’utilisation 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 n’est pas necessaire.
On se connecte pour les graphiques avec l’url :
https://www.starbridge.org/cgi-bin/mailgraph.cgi
- Volume des mails d’alertes
Au début du tuto, on a parametré Postfix pour alerter le postmaster par mail pour la plupart des évènements, en particulier les bounces.
Une fois la période de tests terminés, il est conseillé de désactiver ces options car l’on risque d’être rapidement submergé par les mails à destination du Postmaster.
Pour cela il faut éditer le main.cf et commenter la ligne suivante :
puis
postfix reload
Il est capital de protéger le serveur par un firewall.
On utilisera iptables..
Ci dessous un exemple pour un serveur standalone.
Il faudra bien sur l’adapter à la topologie du réseau.
ne pas oublier d’activer ce script au démarrage !
Logwatch : Mise à jour en amavis-logwatch-1.48.27
--enable-maildropmysql et --with-mysqlconfig=/etc/courier/maildropmysql.config devenuent obsolètes.
:SELECT description il fallait lire SELECT domainco.cf
Voir en ligne : Support de l’article sur le forum
1 Message