Cyrus c'est quoi?
Cyrus est essentiellement un serveur IMAP pour le messagerie mais possède
des caractéristiques hors du commun par rapport aux logiciels concurrents.
Les caractéristiques de Cyrus sont les suivantes:
- Cyrus fournit son propre MDA (Mail Delivery Agent) qui s'occupe de gérer
le filtrage et les quotas. Le message peut transiter du MTA vers Cyrus soit
par protocole LMTP (ils peuvent donc être sur deux machines différentes) soit
par processus pipé (sur la même machine donc et c'est moins performant). Il
n'est donc pas possible d'utiliser des filtres comme procmail ou
maildrop.
- Le format de stockage de Cyrus est propre à lui-même: chaque message est
stocké dans un fichier numéroté (commençant à 1 et s'incrémentant), chaque
dossier de l'arborescence est stocké dans un sous-répertoire. Chaque
répertoire contient en plus des messages trois fichiers (cyrus.header,
cyrus.index et cyrus.cache contenant divers caches et index
afin d'accélérer le traitement). La conséquence est qu'il n'est pas possible
d'utiliser un MUA accédant directement au spool. Seuls les accès POP et IMAP
sont autorisés.
- Cyrus intègre le filtrage Sieve en natif (le protocole est défini par les
mêmes auteurs). Celui-ci permet de gérer des conditions (sur les en-têtes ou
taille du mail) et des actions (rejet, destruction, classement, répondeur,
forward, etc.).
- Cyrus fournit en natif la gestion des quotas par utilisateur et
dossiers.
-
- Cyrus fournit les ACL permettant de partager les boîtes et sous-boîtes
entre utilisateurs.
- Une option permet de supprimer automatiquement les message dupliqués: si
un utilisateur reçoit plusieurs fois le même message (copie multiples ou par
mailing-list par exemple), le serveur peut le détecter lors de la délivrance
du mail et supprimer le mail entrant si celui-ci est déjà présent dans la
boîte de l'utilisateur.
- Une option permet de réduire la taille du spool en utilisant les liens
hard lorsque le même message a été envoyé à plusieurs
utilisateurs.
-
- IL n'y a aucun lien entre les comptes systèmes et les comptes mail: Cyrus
est prévu pour être une plate-forme de toast-mail.
- L'authentification peut se faire par SASL ou PAM ce qui
permet tout type d'authentification.
-
- La gestion des boîtes et des quotas se fait par procole IMAP directement
sur le serveur par l'administrateur, une interface CLI est fournie, on peut
trouver des modules perl, python ou php. En
effet il est nécessaire de créer la boîte mail d'un utilisateur en plus
de l'ajouter à la source d'authentification (comme un annuaire LDAP par
exemple).
- Les serveurs POP et IMAP gèrent naturellement le TLS et le SSL; ainsi
que la fonctionnalité IDLE et la recherche côté serveur.
- le serveur est très optimisé ce qui lui permet de suporter des charges
très élevées: en moyenne un serveur peut supporter jusqu'à 50'000 boîtes,
certains montent à plus de 200'000 en utilisant du matériel haut de gamme et
des optimisations spécifiques.
- Le serveur utilisant avec abondance les locks et les appels mmap
il n'est pas possible d'utiliser Cyrus avec un stockage réseau (comme NFS) à
moins que celui-ci gère parfaitement les locks et mmap en écriture
(comme certains systèmes de fichiers type Veritas, ou à la rigueur
NFSv4 mais cela reste encore déconseillé car non testé).
- Le serveur est évolutif car un fonctionnement en mode cluster est possible.
De plus, l'évolution d'un serveur autonome vers le mode cluster est possible
sans modifier le serveur autonome initial. En mode cluster, l'architecture
comprends des serveurs IMAP de stockage (identiques à un serveur autonome),
un serveur référent (possédant la localisation des boîtes utilisateur et les
acl) et des serveurs IMAP frontaux.