Réseau - Web - GNU/Linux

2011 13 mai

Contrôle de l'espace disque utilisé : les quotas - Debian 5.0 Lenny

Rédigé par Marc GUILLAUME | Aucun commentaire
Article précédent Mail façon FAI - Debian 5.0 Lenny Article suivant

Utiliser la gestion des quotas d'espace disque de Dovecot.

Votre serveur mail ne dispose pas d'un espace disque infini. Surtout si vous utilisez IMAP, les utilisateurs apprécieront le confort de laisser leurs mails sur le serveur. Et il y a même des utilisateurs IMAP qui ne savent pas que des mails juste marqués pour effacement utilisent encore de l'espace disque. Alors, sauf si vous avez vraiment peu d'utilisateurs ou des utilisateurs très disciplinés, vous pouvez vouloir limiter l'espace disque que chaque utilisateur peut occuper. Dovecot peut stocker la taille de la boîte aux lettres d'un utilisateur et le nombre de mails qu'elle peut contenir dans son le dossier virtuel.

Activer l'extension de quota de Dovecot

Il faut activer cette extension de quotas à trois endroits dans le fichier /etc/dovecot/dovecot.conf (extrait de la documentation de Dovecot) :

protocol imap {
  mail_plugins = quota imap_quota
}
protocol pop3 {
  mail_plugins = quota
}
protocol lda {
  mail_plugins = quota
}

Configuration globale des quotas

Le cas le plus simple est d'avoir un quota limite identique pour tous les utilisateurs. Disons que vous accordez à chaque utilisateur 1 GB d'espace avec pas plus de 1000 mails. La configuration dans votre fichier /etc/dovecot/dovecot.conf sera :

plugin {
  quota = maildir:storage=1000000:messages=1000
} 

Souvenez vous que les paramètres de stockage doivent être indiqués en KB. Vous pouvez même omettre le paramètre messages si vous ne voulez pas limiter le nombre de mails.

Configuration des quotas pour chaque utilisateur

Si vous avez certains utilisateurs qui ont des quotas différents des quotas globaux, alors vous pouvez stocker les règlabes de quota dans votre table virtual_users. Utilisez cette commande SQL pour ajouter deux colonnes à la table virtual_users.

mysql>
 ALTER TABLE `virtual_users` ADD `quota_kb` INT NOT NULL,
 ADD `quota_messages` INT NOT NULL ;

Et vous devrez activer la requête user_query dans votre fichier /etc/dovecot/dovecot-sql.conf. Tout au long de ce guide il vous était suggéré d'utiliser l'approche "userdb static" dans votre fichier /etc/dovecot/dovecot.conf. Mais cela suppose que tous vos utilisateurs ont des configurations semblables. Dans le cas d'une configuration spécifique par utilisateur vous devrez désactiver "userdb static" et activer "userdb sql" pour obliger Dovecot à faire une requête supplémentaire afin de récupérer les informations d'utilisateur dans la base de données :

#userdb static {
 #  args = uid=5000 gid=5000 home=/var/vmail/%d/%n allow_all_users=yes
 #
 
 userdb sql {
     args = /etc/dovecot/dovecot-sql.conf
 }

Et ajouter à votre fichier /etc/dovecot/dovecot-sql.conf cette ligne :

user_query = SELECT CONCAT('/var/vmail/',CONCAT(SUBSTRING_INDEX(email,'@',-1), 
'/',SUBSTRING_INDEX(email,'@',1))) AS home, 5000 AS uid, 5000 AS gid, 
CONCAT('maildir:storage=',quota_kb,':messages=',quota_messages) AS quota 
 FROM virtual_users WHERE email='%u';

Cette requête peut sembler assez moche, mais elle fait la même chose que

args = uid=5000 gid=5000 home=/var/vmail/%d/%n allow_all_users=yes

la ligne ci-dessus en récupérant en plus les informations de quota_kb et quota_messages.

Ce qui se passe si un utilisateur dépasse son quota

Les quotas dans Dovecot ne sont pas spécialement "user-friendly" (sympathiques pour l'utilisateur). Par exemple le destinataire ne reçoit pas d'avertissement lorsqu'il approche de sa limite de quota. L'utilisateur reçoit juste un mail de retour avec dans le sujet Automatically rejected mail qui lui dit "Your message to <john@example.com> was automatically rejected: Quota exceeded" (Votre message pour John@example.com a été automatiquement rejeté : quota d'espace disque dépassé).

Écrire un commentaire

Quelle est la première lettre du mot kaxl ?

Fil RSS des commentaires de cet article

À propos

Yakati.com - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.051s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.com
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml