Proxy POP[s]/IMAP[s] : pourquoi ? comment ?

Un proxy POP/IMAP est, comme son nom l’indique, un relai pour les 4 protocoles POP et IMAP, sécurisés ou non. Ca sert à placer un relai entre les clients mail et votre vrai serveur POP3 et/ou IMAP4 et/ou POP3s et/ou IMAP4s.

Pourquoi donc ? par exemple pour ne rendre visible dans une DMZ que les relais et non pas les serveurs POP/IMAP directement. Ca peut permettre aussi (dans le cas du logiciel PERDITION que je vais montrer ci-dessous) de faire une répartition par utilisateur (donc par exemple par origine) entre différents serveurs POP ou IMAP de votre infrastructure, pour de la répartition de charge ou toute autre raison qui vous semble intéressante.

Bon là, si ça ne vous parle pas, l’article ne vous servira à rien, revenez plus tard. Sinon, let’s go pour une introduction par un exemple de mise en place du logiciel PERDITION.

En deux mots, le principe d’un relai comme ça est de prendre les demandes d’authentification, de les relayer au vrai serveur de mail et suivant le résultat, de faire ou non un « pipe » vers le vrai serveur de mail (selon le protocole voulu).

Commencez donc par installer l’application. Sous Debian : apt-get install perdition par exemple.

Ensuite, allez dans /etc/perdition/ et dupliquez votre fichier perdition.conf en perdition.imap.conf suivant vos besoins. Le manuel préconise en fait de créer un fichier par protocole utilisé. A la limite, le fichier d’origine perdition.conf ne sert plus à rien à la fin. Vous pouvez le conserver néanmoins si vous n’utiliserez dans votre proxy qu’un seul des 4 protocoles.

Il faut maintenant éditer ce(s) fichier(s) pour chaque protocole. Tous les paramètres sont par défaut en commentaire. A vous de choisir ce qu’il faut. Le minimum vital pour de l’IMAP4s par exemple est, (dans le fichier /etc/perdition/perdition.imap4s.conf du coup 😉 :

protocol IMAP4S
outgoing_port 993
outgoing_server imap.mondomaine.com # votre vrai serveur IMAP
ssl_mode ssl_listen # ou ssl_all, voyez la doc
ssl_ca_file /etc/ssl/certs/masociete.crt
ssl_cert_file /etc/ssl/certs/mon_imap.cert
ssl_key_file /etc/ssl/certs/mon_imap.key

Quelques remarques :
1) Vous n’êtes pas obligé d’utiliser une « Certification Authority », donc dans ce cas, pas besoin de "ssl_ca_file".
2) Les chemins et noms de fichiers des certificats/clefs sont arbitraires.
3) Pour de l’IMAP non sécurisé, vous n’auriez qu’à modifier les 3 premières lignes et laisser en commentaire celles commençant par "ssl".
4) Pour du POP ou POP3s, c’est le même principe.
5) Enfin, le fichier de config /etc/perdition/perdition*conf contient pas mal d’aide sur chaque paramètre, et le man perdition aussi.

Enfin, dernière brique, préciser quels protocoles on prend en charge et vérifier que perdition est bien lancé par le système. Ca se passe dans le fichier /etc/default/perdition où vous irez contrôler ça :

RUN_PERDITION=yes
POP3=no #ou yes
POP3S=no #ou yes
IMAP4=no #ou yes
IMAP4S=yes #ou no

Pour chaque protocole que vous utilisez, vous aurez donc créé le /etc/perdition/perdition.protocole.conf qui va bien. Relancez le service via "/etc/init.d/perdition restart" et vérifiez que les processus "perdition.protocole" qui vous intéressent tournent.

Evidemment, vous vérifierez enfin que toute votre configuration firewall ressemble à quelque chose et permet notamment l’accès aux ports qui vont bien de votre proxy POP/IMAP.

J’oubliais, pour faire de la répartition par utilisateur (tel utilisateur sur tel serveur), il faut éditer le fichier "/etc/perdition/popmap". Quelques exemples sont donnés, genre :

horms:mailserver1
tymm:mailserver2

Puis créer une « base de données » (un fichier .db) via un "make" basé sur le Makefile disponible dans /etc/perdition/Makefile.
(C’est un peu le même principe, en plus glauque, que le fichier /etc/aliases et sa version base de données générée par la commande postalias).
Personnellement, je n’ai pas mis en place ce système de répartition, mais ça ne doit pas être bien plus compliqué que ça.

Voilou.

3 comments

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.