Installation réalisée sur bulbe.nos-oignons.net le 21 avril 2013.

Création de l'adresse « superadmin »

Schleuder a besoin d'une adresse globale pour y envoyer des messages d'erreur si tout le reste déconne.

On va donc ajouter un alias schleuder-admins dans /etc/aliases pointant sur des admins sys. (ici lunar, nicoo, jvoisin et corl3ss). Et on pense à faire newaliases pour la prise en compte.

Installation

Pour installer Schleuder, on installe le paquet Debian :

apt-get install schleuder

Il faut ensuite déplacer les données vers /srv. Pour cela, on utilisera un lien symbolique :

mv /var/lib/schleuder /srv
ln -s /srv/schleuder /var/lib/schleuder

Configuration globale

La configuration globale se trouve dans /etc/schleuder/schleuder.conf.

On modifie :

log_file: syslog
C'est plus facile de faire du monitoring ainsi.
log_level: ERROR
On peut utiliser INFO pour le débug, mais il faut faire attention à ne pas le garder des années comme ça ;)
superadminaddr: schleuder-admins@nos-oignons.net
On indique que l'adresse créée précédement doit recevoir les messages d'erreurs.

On va également modifier la configuration par défaut pour les listes dans /etc/schleuder/default-list.conf :

log_syslog: true
On va également mettre les journaux des listes dans syslog.
log_file: ""
Et on désactive l'enregistrement des journaux dans des fichiers.

Interface avec Postfix

Afin que Postfix livre les messages à Schleuder, on va d'abord lui dédier un transport en modifiant le fichier /etc/postfix/master.cf :

schleuder  unix  -       n       n       -       -       pipe
  flags=DRhu user=schleuder argv=/usr/bin/schleuder ${recipient}

(Pour les curieux·ses, la syntaxe de cette ligne est documenté dans master(8) et pipe(8).

Dans /etc/postfix/main.cf, on va également ajouter :

schleuder_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transports

La première ligne sert à ne donner qu'une adresse de destination à la fois. La seconde nous permet de maintenir une table d'adresses qui utiliseront le transport que nous avons défini auparavant.

Une autre subtilité : vu qu'on veut utiliser transport_maps avec des adresses qui sont normalement géré par le transport local(8), il est nécessaire d'expliquer à ce dernier qu'elles existent bien. On va donc modifier, également dans /etc/postfix/main.cf :

alias_maps = hash:/etc/postfix/transports, […]

Vu que nous mettons notre table en premier, Postfix acceptera les mails à destination de ses adresses.

On va initialiser ce dernier fichier :

touch /etc/postfix/transports
postmap /etc/postfix/transports

On recharge ensuite Postfix :

service postfix restart

Créations des listes

On peut ensuite créer nos premières listes.

Filtrage anti-spam

Afin de filtrer les spams à l'entrée de Schleuder, on va utiliser un petit script qui enverra les mails vers SpamAssassin avant de poursuivre le traitement si le mail ne ressemble pas trop à un spam.

Ce dernier se trouve dans /usr/local/bin/schleuder-spamc. Pour fonctionner, il utilise la gem RubySpamAssassin, installée via gem install RubySpamAssassin.

Dans /etc/postfix/master.cf, le transport devient :

schleuder  unix  -       n       n       -       -       pipe
  flags=DRhu user=schleuder argv=/usr/local/bin/schleuder-spamc ${recipient}