Installer Postgrey
Auteur : Olivier BOYER - oboyer () ajoute ! org
Mots clés
OpenBSD, OpenBSD 3.8, postfix, postgrey, greylist, spam
Introduction
Page du projet : http://isg.ee.ethz.ch/tools/postgrey/
Page de Postfix : http://www.postfix.org/
Le greylisting est une technique qui permet de lutter contre le spam.
Pour plus d'informations sur le greylisting, lisez la page suivante (en Anglais) : http://projects.puremagic.com/greylisting/
Dans notre implémentation, on se sert du script perl Postgrey développé par David Schweikert. Il s' interface avec le MTA Postfix (développé par Wietse Venema).
Le produit va être installé via les ports.
Note
Toutes les commandes présentées ici, sont à exécuter, sauf mention contraire, en tant qu'administrateur de la machine.
Installer Postgrey
Installer le produit
Pour installer Prostgrey via les ports, exécutez les commandes suivantes :
# cd /usr/ports/mail/postgrey # make install
Créer un utilisateur dédié
Le script de greslisting, dans notre configuration, va tourner en tant que daemon. Pour limiter les problèmes de sécurité, il faut créer un utilisateur dédié. Procédez comme suit :
# groupadd -g 601 _postgrey # useradd -d /nonexistent -s /sbin/nologin -u 601 -g 601 _postgrey
Créer un répertoire de stockage
Créez le répertoire de stockage des mails en attente de validation :
# mkdir /var/spool/postfix/postgrey # chown _postgrey:_postgrey /var/spool/postfix/postgrey # chmod 750 /var/spool/postfix/postgrey
Copier les fichiers de greylist
Copiez les fichiers de whitelist (c'est à dire les clients connus comme non spammeur) fournis avec le produit. Procédez comme suit :
# cd /usr/ports/mail/postgrey/w-postgrey-1.18/postgrey-1.18 # cp postgrey_whitelist_clients /etc/postfix # cp postgrey_whitelist_recipients /etc/postfix
Par défaut, Postgrey lit aussi le fichier : /etc/postfix/postgrey_whitelist_clients.local
Vous pouvez donc ajouter vos entrées de clients autorisés dans ce fichier. Par exemple :
# touch /etc/postfix/postgrey_whitelist_clients.local # echo "un_domaine_ami.org" >> /etc/postfix/postgrey_whitelist_clients.local
Nettoyer l'installation de Postgrey
Exécutez les commandes suivantes :
# cd /usr/ports/mail/postgrey # make clean clean-depends
Modifier la configuration de Postfix
Le script de greylisting s'interface avec Postfix. Il agit sur les règles de filtrage des destinataires des messages.
Dans le fichier de configuration de Postfix, /etc/postfix/main.cf, ajoutez à l'entrée smtpd_recipient_restrictions les lignes suivantes :
smtpd_recipient_restrictions = [ ... ], reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, [ ... ], permit
Intégrer le service Postgrey au système
Créer un script de démarrage pour Postgrey
Le script de greylisting tourne en tant que daemon. Le produit installé par les ports contient uniquement le script Perl de greylisting. Pour le démarrer en tant que daemon, il faut créer un script de démarrage. Ce script sera installé, par exemple, dans le répertoire /etc/rc.d. Ce répertoire n'existe pas par défaut sous OpenBSD.
Créer le répertoire /etc/rc.d
Pour le créer, procédez comme suit :
# mkdir /etc/rc.d # chown root:wheel /etc/rc.d # chmod 750 /etc/rc.d
Créer le script /etc/rc.d/postgrey
Créez le script de démarrage /etc/rc.d/postrey.
Puis, fixez les permissions comme suit :
# chown root:wheel /etc/rc.d/postgrey # chmod 750 /etc/rc.d/postgrey
Modifier le fichier /etc/rc.conf.local
le fichier /etc/rc.conf.local contient les paramètres d'activation des services exécutés au démarrage de la machine. Ajouter la ligne suivante à la fin du fichier :
# Start postgrey (greylist daemon for postfix) postgrey_flags="YES"
Modifier le fichier /etc/rc.local
Pour activer le daemon postgrey à chaque démarrage, modifiez comme suit le fichier /etc/rc.local :
# Start postgrey (postfix greylisting daemon)
if [ -x /etc/rc.d/postgrey ]; then
echo -n ' postgrey'; /etc/rc.d/postgrey start
fi
Modifier le fichier /etc/rc.shutdown
Pour stopper le daemon postgrey à chaque arrêt du système, modifiez comme suit le fichier /etc/rc.shutdown :
# Stop postgrey (postfix greylisting daemon)
if [ -x /etc/rc.d/postgrey ]; then
echo -n ' postgrey'; /etc/rc.d/postgrey stop
fi
Modifier le fichier /etc/changelist
OpenBSD offre la fonctionnalité de sauvegarde et de suivi de modifications des fichiers de configuration. Pour cela, le système s'appuie sur le fichier /etc/changelist, voir changelist(5), qui est lu par le script /etc/daily(8).
Pour suivre les fichiers créés dans ce document, ajoutez les lignes suivantes au fichier /etc/changelist :
# postgrey (greylisting) daemon /etc/postgrey.conf /etc/rc.d/postgrey
Activer Postgrey
Démarrer Postgrey
Pour activer dès maintenant postgrey, exécutez la commande suivante :
# /etc/rc.d/postgrey start
Relire la configuration de Postfix
Exécutez la commande suivante :
# postfix reload
Documentation
Page de manuel
$ perldoc /usr/local/libexec/postgrey