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}