Installer le serveur IMAP Cyrus sur Debian 4.0 Etch et 5.0 Lenny
Le serveur e-mail Cyrus est l'un des meilleurs serveurs IMAP disponible sous Linux. Je l'utilise avec bonheur depuis plus de 5 ans. Son principale avantage est de supporter parfaitement le filtrage des emails par le serveur, ainsi que le langage Sieve qui permet de paramétrer ce filtrage.
Installation
En premier lieu, nous installons le serveur SMTP. Mon choix s'est porté sur Exim 4. Pour ce faire, suivez mon guide:
Configurer Exim 4 sur Debian 4.0 Etch
Ensuite, nous installons le serveur Cyrus IMAP et le client MySQL:
/usr/bin/apt-get install cyrus-imapd-2.2 cyrus-admin-2.2 mysql-client \
libsasl2-modules-sql openssl apg
Mise en place de la base de données
Nous allons utiliser MySQL pour stocker les domaines et les utilisateurs de notre serveur e-mail. Pour ce faire, installez un serveur MySQL et créez une base de données CYRUS. Cela peut être fait en suivant mon guide:Une fois la base de donnée créée, nous plaçons une valeur par défaut pour le nom d'hôte du serveur de la base de données:
if [ -z "$MYSQL_HOST" ]; then
MYSQL_HOST=localhost
fi
Attention : Si vous avez suivi mon guide sur le même hôte que votre serveur Cyrus Imap, vous pouvez passer ces lignes de commandes, sinon, remplacer les informations en gras par celles correspondant à votre base de données MySQL :
MYSQL_HOST=localhost
MYSQL_DB=CYRUS
MYSQL_USERNAME=cyrus
MYSQL_USERPWD=cyrus_password
Puis, nous créons les tables nécessaires:
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-le-serveur-imap-cyrus-sur-debian-4-0-etch/cyrus-schema.sql \
--output-document=/tmp/cyrus-schema.sql
/bin/cat /tmp/cyrus-schema.sql | /usr/bin/mysql --user=$MYSQL_USERNAME --password=$MYSQL_USERPWD --host=$MYSQL_HOST $MYSQL_DB
Création des certificats SSL
Pour accéder à votre serveur IMAP, je vous recommande de créer le sous-domaine suivants:
- imap.domaine.com
Pour compléter ces sous-domaines, créez le certificat SSL correspondant à ces deux sous-domaines en suivant mon guide:
Créer un certificat SSL multi-domaines
De même, pour accéder à votre serveur SMTP, je vous recommande la création du sous-domaine suivant ainsi que du certificat SSL associé:
- smtp.domaine.com
Et nous rendons les clefs privées uniquement lisibles par les utilisateurs qui en ont besoin:
/bin/chmod go+rx /etc/openssl/PRIVATE_KEYS
/bin/chown cyrus:mail /etc/openssl/PRIVATE_KEYS/imap_key.pem
/bin/chmod go-rwx /etc/openssl/PRIVATE_KEYS/imap_key.pem
/bin/chown Debian-exim:mail /etc/openssl/PRIVATE_KEYS/smtp_key.pem
/bin/chmod go-rwx /etc/openssl/PRIVATE_KEYS/smtp_key.pem
Configuration du serveur IMAP
Création de l'administrateur
En premier lieu, nous configurons le domaine par défaut de notre serveur e-mail:
DEFAULT_DOMAIN=main-domain.com
Et nous configurons l'utilisateur destiné à administrer notre serveur:
ADMIN_USERNAME=cyrus
ADMIN_PASSWORD=`/usr/bin/apg -q -a 0 -n 1 -M NCL`
Nous affichons les informations de connexion ainsi créées:
/bin/echo "L'administrateur de votre serveur IMAP a pour identifiant '$ADMIN_USERNAME' et pour mot de passe '$ADMIN_PASSWORD'."
Nous insérons ces informations dans la base de données MySQL:
/bin/echo "INSERT INTO domain(name) VALUES ('$DEFAULT_DOMAIN');
INSERT INTO user (domain_id, username, password, enabled, has_mailbox) VALUES (
(SELECT id FROM domain WHERE name='$DEFAULT_DOMAIN'),
'$ADMIN_USERNAME', '$ADMIN_PASSWORD', 1, 0);" \
| /usr/bin/mysql --user=$MYSQL_USERNAME --password=$MYSQL_USERPWD --host=$MYSQL_HOST $MYSQL_DB
Configuration de Cyrus
Nous faisons en sorte que Cyrus puisse se servir de la base de données de SASL:
/usr/sbin/adduser cyrus sasl
Nous configureons les services de Cyrus que nous allons utiliser (ou pour être plus exact, ceux que nous n'allons pas désactiver):
/bin/sed -i -e 's/^\([ \t]*\)\(pop3[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^\([ \t]*\)\(nntp[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^\([ \t]*\)\(imaps[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^\([ \t]*\)\(pop3s[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^#*\([ \t]*\)#*\(imap[ \t]\{1\}.*imapd.*\)$/\1\2/' \
-e 's/^#*\([ \t]*\)#*\(lmtp[ \t]\{1\}.*lmtpd.*\)$/\1\2/' \
-e 's/^#*\([ \t]*\)#*\(lmtpunix[ \t]\{1\}.*lmtpd.*\)$/\1\2/' \
/etc/cyrus.conf
Nous faisons en sorte que l'authentification ne soit pas nécessaire pour les connexions TCP au port lmtp :
/bin/sed -i -e 's/^\(.*lmtp[ \t]\{1\}.*cmd="\)[^"]*\(".*$\)/\1lmtpd -a\2/' \
/etc/cyrus.conf
Nous définissons le port pour lmtp :
/bin/echo -e "lmtp\t\t2003/tcp\t\t\t# Cyrus IMAP lmtp" | /usr/bin/tee -a /etc/services
Nous configurons Cyrus pour autoriser les points dans les noms d'utilisateurs (c.a.d. les points dans les adresses électroniques) :
/bin/sed -i -e 's/^\(unixhierarchysep:\).*/\1 yes/' /etc/imapd.conf
Nous configurons le serveur IMAP pour utiliser l'identification via SASL, ainsi pour que l'utilisateur cyrus soit parmis les administrateurs:
/bin/sed -i -e "s/^[#]*\(admins:\).*/\1 $ADMIN_USERNAME/" \
-e 's/^[#]*\(sasl_mech_list:\).*/\1 PLAIN DIGEST-MD5 CRAM-MD5/' \
-e 's/^[#]*\(sasl_minimum_layer:\).*/\1 0/' \
-e 's/^[#]*\(sasl_pwcheck_method:\).*/\1 auxprop/' \
-e 's/^[#]*\(sasl_pwcheck_method:\).*/\1 auxprop/' \
-e 's/^[#]*\(sasl_pwcheck_method:\).*/\1 auxprop/' \
-e 's/^[#]*\(virtdomains:\).*/\1 userid/' \
-e "s/^[#]*\(defaultdomain:\).*/\1 $DEFAULT_DOMAIN/" \
/etc/imapd.conf
Nous configurons maintenant le serveur Cyrus pour récupérer les utilisateurs dans la base de données MySQL:
/bin/sed -i -e 's/^[#]*\(sasl_auxprop_plugin:\).*/\1 sql/' \
-e "/^[#]*\(sasl_auxprop_plugin:\).*/a\\
sasl_sql_engine: mysql\\
sasl_sql_hostnames: $MYSQL_HOST\\
sasl_sql_user: $MYSQL_USERNAME\\
sasl_sql_passwd: $MYSQL_USERPWD\\
sasl_sql_database: $MYSQL_DB\\
sasl_sql_select: SELECT user.password AS userPassword FROM user JOIN domain ON (user.domain_id = domain.id) WHERE (domain.name='%r' OR ('%r' = 'cyrus' AND domain.name='$DEFAULT_DOMAIN')) AND user.username='%u' AND user.enabled=1;\\
sasl_sql_update: UPDATE user SET user.password = '%v' FROM domain WHERE user.username = '%u' AND user.domain_id = domain.id AND (domain.name='%r' OR ('%r' = 'cyrus' AND domain.name='$DEFAULT_DOMAIN')) AND user.enabled=1;" \
/etc/imapd.conf
Nous configurons maintenant le cryptage TLS:
/bin/sed -i -e 's|^[#]*\(tls_cert_file:\).*|\1 /etc/openssl/CERTIFICATES/imap_cert.cert|' \
-e 's|^[#]*\(tls_key_file:\).*|\1 /etc/openssl/PRIVATE_KEYS/imap_key.pem|' \
-e 's|^[#]*\(allowplaintext:\).*|\1 no|' \
/etc/imapd.conf
Nous redémarrons le serveur afin de prendre en compte ces modifications:
/etc/init.d/cyrus2.2 restart
Gestion des filtres de messages depuis un client distant
Cyrus dispose d'un langage de description des filtres de messages : Sieve. Ainsi, il est possible de configurer des filtres de message coté serveur à l'aide de certain clients (Thunderbird, Horde, etc). Personnellement, je me sert du Webmail Horde (que vous pouvez installer en suivant mon guide ) pour ce faire. Cependant, si le webmail (ou le client) est installé sur une machine différente de celle du serveur, il est nécessaire de configurer le démon timsieved pour qu'il écoute les connexions en provenance du réseau. Cela se fait à l'aide de cette ligne de commande :
/bin/sed -i -e 's/localhost:sieve/sieve/' /etc/cyrus.conf
Une fois ceci fait, redémarrez Cyrus pour prendre en compte les modifications :
/etc/init.d/cyrus2.2 restart
Création automatique des boîtes e-mails
La base de données permet de stocker de manière simple et lisibles les informations de connexion des utilisateurs. Il faut cependant explicitement créer une boîtes e-mail une fois l'utilisateur ajouté à la base de données.
Nous allons donc mettre en place un script qui effectue cette manipulation automatiquement:
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-le-serveur-imap-cyrus-sur-debian-4-0-etch/cyrus_create_mailboxes \
--output-document=/etc/cron.hourly/cyrus_create_mailboxes
/bin/sed -i -e "s/MSQL_HOST/$MYSQL_HOST/" \
-e "s/MSQL_DB/$MYSQL_DB/" \
-e "s/MSQL_USERNAME/$MYSQL_USERNAME/" \
-e "s/MSQL_USERPWD/$MYSQL_USERPWD/" \
-e "s/ADMIN_LOGIN/$ADMIN_USERNAME/" \
-e "s/ADMIN_PWD/$ADMIN_PASSWORD/" \
/etc/cron.hourly/cyrus_create_mailboxes
/bin/chmod 500 /etc/cron.hourly/cyrus_create_mailboxes
Configuration d'Exim 4
Nous allons maintenant configurer Exim 4.
Configuration de la réception des méls
Commençons par définir la connexion à la base de données MySQL :
/bin/echo "
### main/02_exim4-config_mysql
#################################
# mysql auth
hide mysql_servers = $MYSQL_HOST/$MYSQL_DB/$MYSQL_USERNAME/$MYSQL_USERPWD
" | /usr/bin/tee /etc/exim4/conf.d/main/02_exim4-config_mysql
Nous configurons aussi les requêtes SQL utilisées :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-le-serveur-imap-cyrus-sur-debian-4-0-etch-et-5-0-lenny/02_exim4-config_mysql_queries \
--output-document=/etc/exim4/conf.d/main/02_exim4-config_mysql_queries
En premier lieu, nous configurons le transport permettant à Exim de déposer les méls dans les boîtes aux lettres Cyrus :
/bin/echo "
### transport/30_exim4-config_cyrus_ltcp
#################################
# Use this if you want to to deliver to Cyrus mailboxes.
#
cyrus_ltcp:
driver = smtp
protocol = lmtp
hosts = 127.0.0.1
allow_localhost" \
| /usr/bin/tee /etc/exim4/conf.d/transport/30_exim4-config_cyrus_ltcp
Nous créons la règle de routage qui place les méls des domaines locaux dans les boîtes aux lettres Cyrus :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-le-serveur-imap-cyrus-sur-debian-4-0-etch-et-5-0-lenny/010_exim4-config_cyrus_vdom \
--output-document=/etc/exim4/conf.d/router/010_exim4-config_cyrus_vdom
Nous mettons en place des règles de vérification de l'existance de l'adresse e-mail :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-le-serveur-imap-cyrus-sur-debian-4-0-etch/exim4_cyrus_mailbox_checks.conf \
--output-document=/tmp/exim4_cyrus_mailbox_checks.conf
/bin/sed -i -e '/hosts[ \t]*=[ \t]*:/r /tmp/exim4_cyrus_mailbox_checks.conf' /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
Redémarrez Exim 4:
/etc/init.d/exim4 restart
Votre configuration devrait maintenant être fonctionnelle, et vous devriez pouvoir recevoir vos méls. Un bon moyen de tester cela est d'installer le paquet mailx :
/usr/bin/apt-get install mailx
Et d'envoyer un e-mail de test à l'une des adresses électroniques que vous avez configuré dans la base de données MySQL.
/bin/echo "test" | /usr/bin/mail -s "e-mail de test" username@domain.com
Si votre configuration fonctionne correctement, vous devriez retrouver ce mél dans la boîte aux lettres de l'utilisateur "username@domain.com"
Configuration de l'envoi de méls
Afin que les utilisateurs puissent envoyer des méls quelque soit leur connexion internet, il est recommender de mettre en place un serveur SMTP avec authentification pour l'envoi de méls. C'est ce que présente cette section. Elle n'est pas obligatoire, seulement recommendée.
Nous signalons à Exim les fichiers du certificat SSL à utiliser:
/bin/echo '
### main/02_exim4-config_tlscert
#################################
# ENABLING TLS
MAIN_TLS_ENABLE = true
# SSL private key
MAIN_TLS_PRIVATEKEY = /etc/openssl/PRIVATE_KEYS/smtp_key.pem
# SSL public key
MAIN_TLS_CERTIFICATE = /etc/openssl/CERTIFICATES/smtp_cert.cert
# Disabling certificate verification to avoid problems with some
# mail clients when using CACert (or self signed) certificates.
# Concerned mail clients : Outlook 2003, Mail for Mac OS X...
MAIN_TLS_VERIFY_CERTIFICATES = /dev/null
' | /usr/bin/tee /etc/exim4/conf.d/main/02_exim4-config_tlscert
Une fois ceci fait, activez l'authentification basée sur notre base de données MySQL :
/bin/echo '
### auth/10_exim4-config_mysql
#################################
plain_mysql:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = "${if and { \
{!eq{$2}{}} \
{!eq{$3}{}} \
{eq{$3}{${lookup mysql{MYSQL_Q_PASSWORD_PLAIN}{$value}fail}} }} {yes}{no}}"
server_set_id = $2
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
login_mysql:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = "${if and { \
{!eq{$1}{}} \
{!eq{$2}{}} \
{eq{$2}{${lookup mysql{MYSQL_Q_PASSWORD_LOGIN}{$value}fail}} }} {yes}{no}}"
server_set_id = $1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
' | /usr/bin/tee /etc/exim4/conf.d/auth/10_exim4-config_mysql
Enfin, configurez Exim 4 pour qu'il soit â l'écoute de connexion en provenance d'Internet :
MAINDOM_IP=$(/sbin/ifconfig eth0 | /bin/grep "inet adr" | /bin/sed -e 's/^.*inet adr:\([^ ]*\) .*$/\1/')
/bin/sed -i -e "s|dc_local_interfaces=.*\$|dc_local_interfaces='127.0.0.1;${MAINDOM_IP}'|" \
/etc/exim4/update-exim4.conf.conf
Une fois ceci fait, mettez à jour la configuration Exim 4, et redémarrez le serveur :
/usr/sbin/update-exim4.conf
/etc/init.d/exim4 restart
Remarque : Si la connexion TLS échoue avec l'erreur "Base64 decoding error.", il suffit de supprimer le fichier gnutls-params :
/bin/rm /var/spool/exim4/gnutls-params
Contourner le blocage du port 25
De nombreux fournisseurs d'accès bloquent le port 25 de façon à bloquer la diffusion des Spams. Cela pose problème aux personnes utilisant un serveur SMTP autre que celui du fournisseur d'accès. Pour contourner ce problème, la RFC 4409 (Message Submission for Mail) a été mise en place. Cette RFC autorise l'utilisation du port 587 en complément du port 25 pour le protocole SMTP.
Pour implémenter cette RFC sur votre serveur SMTP, utilisez la commande suivante :
/bin/echo '
### main/00_exim4-local_settings
#################################
# ENABLING RFC 4409
# see http://www.isi.edu/in-notes/rfc4409.txt
daemon_smtp_ports = smtp : submission
' | /usr/bin/tee /etc/exim4/conf.d/main/00_exim4-local_settings
N'oubliez pas de rédémarrer le serveur SMTP :
/etc/init.d/exim4 restart
Remarque : n'oubliez pas d'ouvrir le port 587 de votre pare-feu.
Activer le protocole SSMTP
Si vous ne souhaitez pas utiliser la mécanique TLS, considérée comme préférable au protocole SSMTP, voici la marche à suivre. Ce protocole, similaire dans son principe au HTTPS, utilise le port 465.
Pour implémenter cette fonctionnalité sur votre serveur SMTP, configurez Exim pour écouter sur le port 465 :
/bin/echo '
### main/00_exim4-local_settings
#################################
# ENABLING RFC 4409 and SSMTP
# see http://www.isi.edu/in-notes/rfc4409.txt
daemon_smtp_ports = smtp : submission : ssmtp
' | /usr/bin/tee /etc/exim4/conf.d/main/00_exim4-local_settings
Et forcez le SSL sur le port ssmtp :
/bin/echo '
### main/04_exim4-ssmtp
#################################
# ENABLING SSMTP
tls_on_connect_ports = 465
' | /usr/bin/tee /etc/exim4/conf.d/main/04_exim4-ssmtp
N'oubliez pas de rédémarrer le serveur SMTP :
/etc/init.d/exim4 restart
Remarque : n'oubliez pas d'ouvrir les porst 465 et 587 de votre pare-feu.
Sauvegardes
Pour sauvegarder vos comptes méls gérés par Cyrus, élément très important puisque les méls sont des données sensibles, je vous conseille d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:
Installer et configurer Backup Manager sur Debian 4.0 Etch et 5.0 Lenny
Une fois Backup Manager installé, vous pouvez configurer la sauvegarde des fichiers de Cyrus avec les commandes suivantes:
/usr/bin/update-bm-folders add /var/spool/cyrus
/usr/bin/update-bm-folders add /var/spool/sieve
/usr/bin/update-bm-folders add /var/lib/cyrus
Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans mon article Installer et configurer MySQL sur Debian 4.0 Etch et 5.0 Lenny.
Pour aller plus loin
Diagnostiquer les problèmes du serveur Cyrus IMAP
Si vous rencontrez des problèmes pour vous connecter à votre serveur IMAP, vous pouvez obtenir des détails supplémentaires sur la source du problème en augmentant le niveau de verbosité des fichiers journaux. Cela peut être fait via l'exécution de ces lignes de commande :
/bin/sed -i -e 's/^.*\(CYRUS_VERBOSE.*\)$/\1/g' /etc/default/cyrus2.2
/etc/init.d/cyrus2.2 restart
Vous pouvez maintenant observer les messages de debug de Cyrus a l'aide de la commande :
/usr/bin/tail -f /var/log/mail.log
Une fois le problème de votre serveur IMAP diagnostiqué, vous pouvez revenir à la configuration par défaut à l'aide de la commande :
/bin/sed -i -e 's/^\(CYRUS_VERBOSE.*\)$/#\1/g' /etc/default/cyrus2.2
/etc/init.d/cyrus2.2 restart
Réparer une boite mail
Si vous vous retrouvez dans une situation ou une boite mail est corrompue, il est possible de réparer cette boite à l'aide de la commande suivante :
/bin/su cyrus -c "/usr/lib/cyrus/bin/reconstruct -r 'user/mon.email@domaine.fr'"
Il suffit ensuite de relancer le client Mail pour retrouver le bon fonctionnement de ses emails.
Les messages lus redeviennent non lus
Dans certains cas, il arrive que le fichier .seen contenant les informations de lecture des emails d'un compte soit corrompu. Le moyen le plus simple pour réparer ce problème est de supprimer ce fichier et de redémarrer le serveur Cyrus. Par exemple pour un utilisateur john.doe@mon-domaine.fr :
/bin/rm /var/lib/cyrus/domain/m/mon-domaine.fr/john^doe.seen
/etc/ini.d/cyrus2.2 restart
Source : Merci à Nothinman pour sa réponse à Cyrus .seen file is corrupt - How do i repair it ?.
Restaurer des emails supprimés.
Si l'un de vos utilisateur a supprimé des emails par mégarde, il est possible de les restaurer à partir de la sauvegarde créée par Backup Manager. Les emails sont sauvegarder dans l'arborescence /var/spool/cyrus. Voici les étapes à suivre :
- Décompresser tout ou partie de la dernière sauvegarde /var/archives/cyrus-var-spool-cyrus.date.master.tar.bz2.
- Créez à nouveau les dossiers supprimés dans votre client mail habituel.
- Copiez le contenu des dossiers à restaurer vers le dossier adéquat de l'arborescence /var/spool/cyrus.
- Changez le propriétaire des fichiers copiés :
chown -R cyrus:mail /var/spool/cyrus/mail/
- Vos emails devrait être restaurés.
Remarque : Une autre possiblité est l'usage de la commande cyrreconstruct, mais je n'ai pas réussi à la faire fonctionner.
Synchronisation de 2 comptes Imap
Si vous disposiez déjà d'un serveur IMAP et que votre nouveau serveur est destiné à le remplacer, il est nécessaire de récupérer les anciens e-mails. ImapSync est un outil facilitant ce travail. En premier lieu, installez ce logiciel :
/usr/bin/apt-get install imapsync
Une fois ceci fait, vous pouvez utiliser une ligne de commande comme celle qui suit pour syncronyser deux comptes mél. Par exemple :
/usr/bin/imapsync --syncinternaldates --subscribe \
--host1 "imap.domain.com" --port1 993 --ssl1 --authmech1 PLAIN \
--user1 "some-user" --password1 "some-password" \
--host2 "localhost" --port2 143 --authmech2 CRAM-MD5 \
--user2 "local-user" --password2 "local-password"
Récupération de méls depuis un compte tiers
Si vous disposez de plusieurs comptes méls, chez différents fournisseurs, il est intéressant de les regrouper sur votre serveur IMAP, ne serait-ce que pour garder le contrôle de vos données. L'outil fetchmail a été conçu dans ce but. Installez fetchmail :
/usr/bin/apt-get install fetchmail
Créez ensuite le fichier /etc/fetchmailrc destiné à contenir les configurations des comptes à rappatrier. Voici un exemple de contenu pour ce fichier :
set daemon 300
set no bouncemail
poll pop.mail.yahoo.fr with protocol POP3
user "my-user" there with password "my-password" is "my-imap-account@my-email-domain.com" fetchall
poll pop.free.fr with protocol POP3
user "my-user" there with password "my-password" is "my-imap-account@my-email-domain.com" fetchall
user "my-other-user" there with password "my-other-password" is "my-imap-account@my-email-domain.com" fetchall
Activez le démon de récupération du courrier "fetchmail" :
/bin/sed -i -e 's/START_DAEMON=.*/START_DAEMON=yes/' /etc/default/fetchmail
Il ne vous reste plus qu'a redémarrer fetchmail pour prendre en compte les modifications :
/etc/init.d/fetchmail restart
Supprimer une boite mél
Pour supprimer une boite mél de votre serveur, il ne suffit pas de supprimer la ligne de l'utilisateur dans la base de données MySQL, il faut explicitement supprimer les fichiers de la boite mél sur le serveur Cyrus. Pour ce faire, récuperez les paramètres de connexion à l'outil d'administration de Cyrus :
CYRUS_ADMIN_USERNAME=$(/bin/grep "^CYRUS_ADMIN_USERNAME" /etc/cron.hourly/cyrus_create_mailboxes \
| /usr/bin/cut --characters=22-)
CYRUS_ADMIN_PASSWORD=$(/bin/grep "^CYRUS_ADMIN_PASSWORD" /etc/cron.hourly/cyrus_create_mailboxes \
| /usr/bin/cut --characters=22-)
Lancez l'outil d'administration de Cyrus en utilisant ces paramètres :
/usr/bin/cyradm --server localhost \
--user $CYRUS_ADMIN_USERNAME \
--password $CYRUS_ADMIN_PASSWORD \
--auth DIGEST-MD5
Vous pouvez a présent gérer les boites méls de vos utilisateurs. Vous pouvez obtenir la liste des commandes en tappant :
help
Pour lister les boites méls présentes sur le serveur, utilisez :
listmailbox
Pour supprimer une boite mél :
deletemailbox user/adresse.email@mon-domaine.com
Remarque : Si cette commande vous affiche l'erreur "permission denied", il est nécessaire de modifier les droits d'accés (acl) pour donner à l'utilisateur cyrus la permission de supprimer cette boite mail. Cela peut être réalisé à l'aide des commandes suivantes :
setaclmailbox user/adresse.email@mon-domaine.com cyrus c
deletemailbox user/adresse.email@mon-domaine.com
Vous pouvez maintenant quitter l'outil d'administration de Cyrus :
exit
Source : Vous trouverez plus d'information sur les opérations de maintenance d'un serveur de courrier Cyrus en lisant la page Maintenance du howto Cyrus IMAP.
Thunderbird en IMAP avec TLS et Kaspersky Antivirus est installée.
Si vous utilisez la suite Kaspersky Anti-virus, et que le certificat SSL de votre serveur IMAP n'est pas signé par une autorité de certification reconnue, vous ne pourrez pas vous connecter à moins de désactiver le filtrage du protocole IMAP dans les paramètres réseaux avancés de Kaspersky. Une photo d'écran de l'endroit ou il faut faire cela est disponible à cette adresse (en allemand) :
KIS 2009 und IMAP m. Thunderbird
Remerciements
- Merci aux auteurs du guide ISP-style Email Server with Debian-Etch and Postfix 2.3.
- Merci à flash42 sur irc.freenode.net#sed pour son aide.
- Merci à l'auteur du guide ISP Mail Server mit Exim 4, Dovecot, MySQL und SpamAssassin auf Debian GNU/Linux etch.
- Merci à l'auteur du guide Mail server HOWTO - Postfix and Dovecot with MySQL and TLS/SSL, Postgrey and DSPAM
- Merci à l'auteur du guide Building a fully fledged mail server with Exim, Cyrus-IMAP, SASL, TLS, MySQL and Debian
- Merci aux auteurs de la page Cyrus Imap sur le Wiki Exim.
- Merci aux auteurs de la page Authenticated Smtp Using Mysql sur le Wiki Exim.
- Merci à l'auteur de l'article Howto setup a Virtual Mail System with Exim, MySQL, SpamAssassin, ClamAV and Dovecot.
- Merci à Jopa pour son article Installation d’un serveur mail brique par brique… (OpenLDAP, Postfix, Cyrus-imap, TLS, SASL, Spamassassin, Amavis, etc…).
- Merci à Artisan Numérique pour son article Architecture Domestique - Le stockage centralisé du courrier avec IMAP.
- Merci à Uggy pour son article OfflineIMAP - Synchronisation Imap/Maildir.
- Merci à Cristian Mitrana pour sa réponse au message Regarding dot in username.
- Merci à Wil Cooley pour son howto Cyrus IMAP.
- Merci à Lee Maguire pour son article Quick setup for Exim4 TLS/SMTP-AUTH.
- Merci à hswong3i pour son article Exim4 + Courier + SSL on Debian etch mini-HOWTO.
authentification
Je pense que ton problème vient de la. Comme tu ne donne pas la partie après l'@ dans l'identifiant, le système retombe sur le nom de domaine par défaut du système.
Merci pour ton retour, je suis heureux que mon guide t'ai servi :)
re: authentification
J'avais pensé que c'était ca mais meme en rajoutant le domaine apres le @, cela ne fonctionne pas. cela renvoi toujours le hostname de la machine.
Pourtant, je pense que mes fichiers hosts et resolv.conf sont bien renseignés. La commande dnsdomainname me renvoi bien mon domaine.
J'ai dû faire une erreur quelque part, je vais continuer à chercher. :)
Default domain
virtdomains: userid
defaultdomain: mon-domaine.com
A part ca, je ne voit pas d'ou pourrait venir le soucis.
Pas pour les debutants
Cependant ... il y a bcp de sous-entendu d'expert ...
vous n'indiquez pas les fichier a modifier ...cela peut etre un peu deroutant pour un debutant presser de mettre en oeuvre et avide de comprehension.
Quand meme je tiens a vous dire merci pour tout votre effort de partage. Merci bcp.
Connexion au shell Cyrus
Je suis sur une Debian 6 (Squeeze) et je rencontre un problème bloquant :
Impossible de me connecter au shell Cyrus !
Quand je fais :
cyradm --user cyrus --server localhost --password *******
Login failed: generic failure at /usr/lib/perl5/Cyrus/IMAP/Admin.pm line 119
cyradm: cannot authenticate to server with plain as cyrus
Hors, quand je vérifie dans la base de donnée MySQL de Cyrus je vois bien mon user (cyrus) et mon mot de passe ... en clair (curieux !)
Une idée ?
Mot de passe
Concernant le stockage en clair des mots de passes, je suis conscient du problème, mais à l'époque de la rédaction de ce guide, je ne connaissais pas suffisament Exim et SASL pour mettre en place un stockage chiffré. Si vous trouvez une solution à ce problème, je vous serais grès de m'en faire par.
Bonne continuation.
Lone Wolf
variable "%r"
Tout d'abord merci pour ce how-to clair. il m'a beaucoup servi. :)
Par contre, j'aurais une question concernant la variable "%r", que l'on trouve dans la configuration sasl_sql_select et sasl_sql_update.
En fait, sur mon serveur, cette variable renvoi le hostname de ce dernier et non le domain name, j'ai verfié dans les log de mysql. Du coup, l'authentification ne fonctionne pas. lorsque que je remplace dans le fichier de conf "%r" par mon nom de domaine, tout fonctionne bien.
Peux tu me dire où est renseigné cette variable stp?
Merci d'avance