Mar
6
2009

[Perdition] Proxy Imap / POP /IMAP SSL /POP SSL


On utilise un proxy IMAP pour des raisons de sécurité. Il permet de faire l’intermédiaire entre l’utilisateur qui veut synchroniser ses emails à partir d’internet et le serveur de messagerie. Ce proxy doit être placé dans la DMZ Publique.

Pré-requis :

Si vous voulez installer un serveur proxy IMAP SSL ou POP SSL, vous devez installer si ce n’est pas déjà le cas open-ssl et créer un certificat serveur.

Pour cela, suivez ce tutorial : Création d’un certificat serveur sur linux

Installation de perdition :

sudo apt-get install perdition

Configuration :

Je n’ai pas encore tester le POP SSL alors je vais vous montrer la configuration que j’ai utilisé pour créer un proxy IMAP SSL.

Créer un fichier /etc/perdition/perdition.imap4s.conf dans lequel j’ai placé cette configuration :

outgoing_server 192.168.0.1 # Serveur IMAP où il faut récupérer les mails
outgoing_port 143 # Port utilisé par ce serveur
debug # A activer si vous voulez tracer les connexions
listen_port 993 # port d’écoute de Perdition
ssl_mode ssl_listen # Le format des échanges sera SSL
ssl_cert_file /etc/ssl/server.crt # Certificat serveur précédemment créé
ssl_key_file /etc/ssl/server.key # Clé privée permettant de crypter les échanges

Pour mon exemple, perdition jouera le rôle de proxy seulement pour le protocole IMAP SSL. Pour l’informé, il faut aller dans le fichier  /etc/default/perdition et activer ou non les protocoles à utiliser :

RUN_PERDITION=yes
POP3=no
POP3_FLAGS=
POP3S=no
POP3S_FLAGS=
IMAP4=no
IMAP4_FLAGS=
IMAP4S=yes
IMAP4S_FLAGS=

Maintenant, vous pouvez démarrer le service perdition :

sudo /etc/init.d/perdition start

Configurez votre client Mail (Outlook, Smartphone…) pour effectuer du IMAP SSL. Pour vérifiez les logs d’utilisation de Perdition, allez voir dans /var/log/mail.log

Gérer plusieurs serveur IMAP / POP avec Perdition :

Si vous avez plusieurs serveurs IMAP, vous avez la possibilité d’attribuer un utilisateur à un serveur ou un domaine (Expression régulière) à un serveur. Pour cela, placez vous dans /etc/perdition puis tapez :

make

Plusieurs fichier sont ainsi créé :

popmap : Fichier permettant de définir les utilisateurs pointant sur tel ou tel serveur au cas par cas.
popmap.bdb.db : Base de donnée utilisateur
popmap.gdbm.db :base de donnée contenant les serveurs IMAP.
popmap.re : Permet de modifier les noms d’utilisateur à la volée par exemple ou bien attribuer un serveur IMAP à un domaine en particulier. C’est dans ce fichier que l’on place les expressions régulières

Définition des utilisateurs au cas par cas

Tout d’abord, nous souhaitons que l’utilisateur [email protected] puisse récupérer ses emails sur le serveur 192.168.0.15. Un autre utilisateur [email protected] doit pouvoir les récupérer sur le serveur 192.168.0.16.

Pour cela, nous allons éditer le fichier popmap et ajouter ces lignes :

[email protected]: 192.168.0.15
[email protected]: 192.168.0.16

Une fois le fichier popmap édité, il faut actualiser la base de compte en tapant :

make

Il faudra répéter cette commande à chaque modification. Vous n’avez pas besoin de redémarrer le service perdition après modification de la base.

N’oubliez pas d’activer le mode debug dans le fichier de configuration pour vérifier votre configuration.

 

Attribuer un serveur IMAP à un domaine en particulier :

Pour cela, nous allons utiliser les expressions régulières. Ceci signifie que le fichier de configuration que nous allons utilisé est “popmap.re”. Editez le et modifiez insérer les expressions régulière souhaité.

Dans notre exemple, nous souhaitons que les utilisateurs du domaine croc.fr puissent synchroniser leurs messages avec le serveur 192.168.0.15 et que ceux du domaine croc.com synchronisent avec le serveur 192.168.0.16.

Pour cela, nous allons ajouter dans le fichier popmap.re :

(.*)@croc.fr: 192.168.0.15
(.*)@croc.com: 192.168.0.16

Pas besoin de recompiler après ni de redémarrer perdition.

Il est possible d’utiliser un serveur LDAP pour l’authentification des utilisateurs. Je ne l’ai pas encore testé. Voici le lien : http://www.vergenet.net/linux/perdition/docs.shtml

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

1 Comment + Add Comment

  • Bonjour,

    Par contre si j’ai un backend exchange microsoft 2010 comment le serveur perdition pour lequel l’outgoing est l’exchange:993 que le port listen est 993 va faire justement pour relayer les mails de l’exchange vers le client thunderbird qui va se connecter vers le perdition vu que le certificat sera celui de perdition et non celui de l’exchange ?

    Ensuite au niveau de la conf pourquoi en impas surtout perdition ne communique pas avec l’exchange qui dialogue pourtant en 993 preuve en est avec un telnet depuis le serveur perdition vers l’exchange ??

    Merci pour votre réponse

Laissez un commentaire