Un serveur de messagerie Cyrus-imap avec replication
Transcription
Un serveur de messagerie Cyrus-imap avec replication
Un serveur de messagerie Cyrusimap avec replication Introduction La structure du système CYRUS Le contexte local Les étapes d'installation La mise en marche L'administration quotidienne 16/03/07 Sandrine Layrisse - IMB UMR 5251 1 Introduction Le projet Cyrus a démarré à l'université Carnegie Mellon en 1994. Cyrus IMAP (Internet Message Access Protocol) Basé sur IMAP4, reconnu comme un standard (RFC 1730) 16/03/07 Sandrine Layrisse - IMB UMR 5251 2 Introduction Cahier des charges : − un système d'accès aux messages utilisable à partir de protocoles implémentés dans des logiciels standards tels que : IMAP(s), POP3(s), ou KPOP que l'on trouve dans les logiciels de lecture de courrier électronique − Pas de connexion des utilisateurs sur le serveur − Toutes les données des boîtes aux lettres sont accessibles uniquement au système Cyrus IMAP, et à des administrateurs identifiés clairement 16/03/07 Sandrine Layrisse - IMB UMR 5251 3 Introduction Cahier des charges (suite) : − accès simultanés en lecture et en écriture à chaque boîte aux lettres − Possibilité de gérer des ACL (liste d'accès aux b.a.l.), et des quotas par b.a.l. − recherche d'un système efficace, robuste et facilement administrable (comme d'hab !) 16/03/07 Sandrine Layrisse - IMB UMR 5251 4 Introduction Cet outil vous intéresse si : − vous gérez le courrier de votre structure − la majorité de vos utilisateurs sont prêts à abandonner POP pour IMAP (car peut-être commencent-ils à accéder à leur mail depuis plusieurs machines) − vous disposez d'un serveur (voire 2) à dédier pour le mail − vous avez du matériel de sauvegarde 16/03/07 Sandrine Layrisse - IMB UMR 5251 5 La structure du système CYRUS La structure du système : − Format des BAL : Maildir <=> une arborescence de fichiers, un fichier correspondant à un mail complet exemples : /var/spool/imap/mail/user/layrisse/1. où /var/spool/imap est le « partition-default » /var/spool/imap/mail/user/layrisse/mathrice/1. − 16/03/07 Des bases de données et de l'indexation afin de garantir la cohérence du système Sandrine Layrisse - IMB UMR 5251 6 La structure du système CYRUS Les bases de données − au niveau de l'arborescence : les fichiers cyrus.* dans chaque répertoire de l'arborescence de la BAL /var/spool/imap/mail/user/layrisse/cyrus.index /var/spool/imap/mail/user/layrisse/cyrus.cache /var/spool/imap/mail/user/layrisse/cyrus.header /var/spool/imap/mail/user/layrisse/mathrice/cyrus.index ... Ces fichiers contiennent des informations sur la BAL et chaque message de chaque dossier 16/03/07 Sandrine Layrisse - IMB UMR 5251 7 La structure du système CYRUS Les bases de données (suite) : − au niveau de /var/imap pour la gestion des BAL /var/imap/mailboxes.db : C'est un fichier très important. Il contient toute l'arborescence de toutes les BAL (le sauvegarder très régulièrement). Extrait avec la cmd « ctl_mboxlist -d » : user.layrisse.Ext.mathrice default layrisse lrswipcda depouill l /var/imap/user/x/layrisse.seen « ou » .sub : contient l'état de tous les messages de chaque BAL et la structure des sous-dossiers de la BAL. 16/03/07 Sandrine Layrisse - IMB UMR 5251 8 La structure du système CYRUS Les bases de données (suite) : − Dans /var/imap (suite) : annotations.db, deliver.db, tls_sessions.db : gèrent les « duplicate delivery », les attributs de session TLS /var/imap/quota/ : contient les informations sur les quotas 16/03/07 Sandrine Layrisse - IMB UMR 5251 9 Le contexte local Installation minimale de Linux mandriva 2007 Un annuaire LDAP d'authentification SSL requis 16/03/07 Sandrine Layrisse - IMB UMR 5251 10 Les étapes d'installation Mes notes d'installation: ici Une présentation intéressante : http://www.whitemiceconsulting.com/system/files?f 16/03/07 Sandrine Layrisse - IMB UMR 5251 11 Les étapes d'installation Comprendre /etc/imapd.conf : configdirectory: /var/imap partition-default: /var/spool/imap les bases de données du système les messages 16/03/07 Sandrine Layrisse - IMB UMR 5251 12 Les étapes d'installation /etc/imapd.conf : admins: cyrus, moi allowanonymouslogin: no les comptes des administrateurs pas de login anonyme sieveuserhomedir: no sievedir: /usr/sieve sieve_admins: moi La configuration de sieve (pour les filtres) 16/03/07 Sandrine Layrisse - IMB UMR 5251 13 Les étapes d'installation /etc/imapd.conf : sasl_pwcheck_method: saslauthd sasl_mech_list: plain authentification des utilisateurs tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem le certificat du service pour des communications sécurisées 16/03/07 Sandrine Layrisse - IMB UMR 5251 14 Les étapes d'installation /etc/imapd.conf (suite) : # Car transport_agent de postfix (/etc/postfix/main.cf) = lmtp lmtpsocket:/var/spool/postfix/var/imap/socket/lmtp Attention ! si postfix est chrooté 16/03/07 Sandrine Layrisse - IMB UMR 5251 15 La mise en marche Outil de création/administration des B.A.L. : cyradm cm Create mailbox Les commandes disponibles 16/03/07 dam Delete ACL on mailbox dm Delete mailbox exit Quit cyradm lam List ACLs on mailbox lm List mail boxes lq List quota information lqm List quota on mailbox lqr List quota on root renm Rename mailbox sam Set ACL on mailbox sq Set quota Sandrine Layrisse - IMB UMR 5251 16 La mise en marche Outils de migration d'un ancien système vers le nouveau : - Format des boîtes Mailbox -> Maildir - UW-Imap -> Cyrus-Imap - Courier-Imap -> Cyrus-Imap - Migration vers une nouvelle machine 16/03/07 Sandrine Layrisse - IMB UMR 5251 17 La mise en marche Mise en route de la réplication la 1ère fois : - faire un rsync des répertoires /var/imap et /var/spool/imap - ou un script qui va lancer la synchronisation pour chaque BAL sur le master. Par exemple : for i in `ls -d /var/spool/imap/mail/user/*|cut -d\/ -f7` do echo $i /usr/cyrus/bin/sync_client -u $i done Ensuite, sync_client est lancé en mode rolling sur le master, le réplica écoute grâce à sync_server. 16/03/07 Sandrine Layrisse - IMB UMR 5251 18 L'administration quotidienne La création des nouvelles BAL, ou la destruction des BAL avec cyradm Sauvegarder les répertoires /var/imap et surtout mailboxes.db, puis /var/spool/imap (pour les éventuelles restoration de courriers) 16/03/07 Sandrine Layrisse - IMB UMR 5251 19 L'administration quotidienne Reconstruire éventuellement (rarement) des BAL avec la commande « reconstruct » Vérifier la place disque restante sur les partitions du système (/var/imap, /var/spool/imap, /var/spool/postfix) Vérifier « sync_client -r » sur le master 16/03/07 Sandrine Layrisse - IMB UMR 5251 20 Conclusion Cyrus Imap est un MDA (Mail Delivery agent) conçut pour gérer les protocoles les plus courants/performants (imaps, mais aussi pop3s). Il répond bien aux objectifs de : − − 16/03/07 multi-accès (pour les personnes itinérantes), avec possibilité de mode online/offline autonomie, en intégrant la gestion de filtres, de quota, de gestion de flags (lu/non lu, important, répondu), des outils de réparation/reconstruction Sandrine Layrisse - IMB UMR 5251 21 Conclusion − sécurité : écoute sur le port 993 avec TLS, au lieu de 143 Utilise un mécanisme d’authentification SASL qui permet d’isoler les comptes utilisateurs du serveur de courrier Enfin, grâce à son succès auprès des grandes universités, ou des fournisseurs de messageries électroniques, cet un outil qui évolue et qui est très bien documenté : − − 16/03/07 intégration de la réplication, de la clusterisation (murder) nouvelle fonction “undelete” Sandrine Layrisse - IMB UMR 5251 22