Installation d'une solution de messagerie sous GNU/Linux Debian SpamAssassin, Postgrey, et les RBL Table des matières Introduction :...2 Ce qu'il faut savoir :...2 Configuration de Postfix :...2 Configuration de postgrey :......3 Configuration de Spamassassin :...3 Configuration de Procmail :...4 Création des comptes de messagerie :...5 Test de notre configuration :......6
Introduction : Ce howto me sert d'aide mémoire pour la mise en place d'un serveur de messagerie sous GNU/Linux Debian, avec le maximum de protection en terme de SPAM. Ce qu'il faut savoir : Je vais vous resumer ici rapidement le fonctionnement d'une messagerie et de ses differents occupants. le MTA : Mail Transport Agent, c'est lui qui transporte vos mail. (ex: Postfix, Sendmail) le MDA : Mail Delivery Agent, c'est lui qui dépose les mails dans votre BAL. (ex: procmail) le MUA : Mail User Agent, autrement votre logiciel de messagerie. (ex: IceDove, Outlook) Pour résumer vous allez grace a ce howto mettre en place votre propre MTA (Postfix) qui se chargement de recevoir vos mail et de les router vers votre MDA (procmail) qui après certaines vérifications déposera vos mails dans votre boite de reception, prets à être réceptionné par votre MUA. En effet revenons sur un point important, avant d'être déposé dans votre boite de reception, vos mails seront passés à la moulinette. Tout d'abord le MTA va vérifier le mail, voir si sont FQDN est correct (auquel cas il le refusera), il vérifiera si le FQDN est blacklisté, puis si le mail passe ce test (qui permet de réduire considérablement le spam dans vos bal), il sera délivré au MDA, qui lui l'enverra à SpamAssassin qui fera sa popotte. Ensuite et seulement si le mail est ok, sera délivré dans votre boite de réception. Et dire que tout cela se fait à la vitesse de l'eclair :o) Maintenant mettons tout cela en place. Nous commencerons par installer les paquets suivant : postfix, spamassassin, postgrey, procmail, xmail. Configuration de Postfix : /etc/postfix/main.cf #CONFIGURATION POSTFIX + RBL + ANTISPAM #Ncrapoulet 2006 2007 #Déja on se présente smtpd_banner = $myhostname ESMTP $mail_name Spammer Sux biff = no #exige la commande helo et peut être découragera quelques serveurs de spam smtpd_helo_required = yes myorigin = fqdn.tld myhostname = ma_machine.fqdn.tld
alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = fqdn.tld relayhost = mynetworks = 127.0.0.0/8 192.168.1.0/24 # Indique qu'il faudrat consulter le daemon procmail pour obtenir les information de délivrance du courrier. mailbox_command = procmail a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all #Configuration des RBL # Rejeter tout mail mal formatéou le nom de domaine est inconnu smtpd_helo_restrictions = reject_non_fqdn_hostname # Puis on check un peu la forme du mail et on regarde si l'expéteur est connu comme spammer. On a avant le permit un ligne relative a POSTGREY. smtpd_recipient_restrictions =reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_sender_domain,reject_unknow n_recipient_domain,permit_mynetworks,reject_unauth_destination,reject_unauth_pipelining,reject_i nvalid_hostname,reject_rbl_client relays.ordb.org,reject_rbl_client opm.blitzed.org,reject_rbl_client sbl xbl.spamhaus.org,reject_rbl_client bl.spamcop.net,check_policy_service inet:127.0.0.1:60000,permit Configuration de postgrey : Aucune configuration n'est à effectuer, tout se configurer dans le fichier main.cf de postfix que nous venons de voir. Le seul gros travail consiste à editer les whitelist de Postgrey dans /etc/postgrey/... et à y inscrire les FQDN que vous voulez ne pas se voir controlés par postgrey. Configuration de Spamassassin : /etc/spamassassin/local.cf ################################################# ## Configuration de Spam Assassin #
################################################## # ## Mettre le spam en pièce jointe du message d'avertissement de spam (0=no, 1=yes, 2=safe) report_safe 1 ## Activation de l'utilisation du filtre de Bayes use_bayes 1 ## Active le filtre d'auto apprenstissage de Bayes bayes_auto_learn 1 ## Nombre de hits requit par le mail avant d'etre considéré comme spam required_hits 6 ## Réécruture du sujet du mail rewrite_header Subject *****SPAM***** report_safe 1 ## Réseau non filtré trusted_networks 192.168.1. #Whitelist (mieux vaut privilégier les whitelists de Postgrey) whitelist_from *@lineis.fr whitelist_from *@techdata.fr whitelist_from *@actebis* whitelist_from *@autodesk.com whitelist_from *@eur.autodesk.com* whitelist_from *@matfor.fr whitelist_from *@manandmachine.fr whitelist_from *@aiga fr.com whitelist_from *@batiweb.com whitelist_from *@hitechpro.com whitelist_from *@softeurope.com Configuration de Procmail : /home/<utilisateur>/.procmailrc # Quelques variables d'environement VERBOSE=Yes SHELL=/bin/bash PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:. MAILDIR=/home/<utilisateur>/Maildir/
DEFAULT=$MAILDIR ORGMAIL=$MAILDIR LOGFILE=$MAILDIR/.procmail.log LOCKFILE=$HOME/.lockmail LOGNAME=$USERNAME # SpamAssassin # # Cette recette limite le contrôle aux mails inféeurs à102400 ko (1024 x 100) elles est expriméen octets, # # :0 indique le début d 'une recette, f pour que le programme appelé agisse en tant que filtre et w pour attendre la fin de l'exétion avant la suite. :0fw * < 102400 # exécution de spamc /usr/bin/spamc f { EXITCODE=$? # renvoie du code de sortie } # #On filtre du contenu pour allé plus vite que spamassassin sur certains mots interdits :0 * ^Subject:.*(price mortgage doctor viagra sex casino spam spam alert pharmacy pharma doctor money bank penis enlargment sperm) ## Si le mail répond à une des règles précédentes, on l'envoi à l'adresse ci dessous! spambox@lineis.fr ## Sinon on le délivre dans la mailbox de l'utilisateur :0 $MAILDIR Création des comptes de messagerie : Dans le /home de chaques utilisateurs, nous allons créer un dossier Maildir qui contiendra les mails. Ce même répertoire utilisateur contiendra un fichier.procmailrc que nous venons de voir précédement (Attention il est important de vérifier que le.procmailrc de l'utilisateur possède les bons chemins dans les variables). Création du la BAL du l'utilisateur foo : Dans le /home/foo : maildirmake Maildir (la commande maildirmake fait partie du paquet xmail)
Nous possédons maintenant notre répertoire qui contiendra nos mails. Rappelons que notre postfix est configurer pour interroger procmail sur les methode de délivrance du courrier. Créons dont un fichier.procmailrc dans /home/foo. Le contenu de ce répertoire sera le même que celui vu ci dessus. Attention à ne pas oublier de modifier la variable MAILDIR en remplacant <utilisateur> par foo dans notre exemple : MAILDIR=/home/<utilisateur>/Maildir/ Notre démonstration touche à sa fin, nous allons vérifier les droits sur le fichiers.procmailrc et le dossier Maildir : Fichier Utilisateur Groupe Droits Maildir foo foo 770.procmailrc foo foo 600 Test de notre configuration : Envoyons un mail à l'aide de la commande : > mail s test_messagerie foo Puis vérifions la presence du mail dans la boite de reception : > ls /home/foo/maildir/new 1187368392.28665_1.machine.fqdn.tld Nous avons bien recu notre mail