Inhaltsverzeichnis

Administration des Cyrus IMAP-Servers (Konsole)

Für die Administration unseres Cyrus IMAP-Servers unter CentOS 6.x verwenden wir im einfachsten Fall die

Zur Verwaltung unserer Nutzerkonten/Mailboxen steht und cyradm aus dem Paket cyrus-imapd-utils zur Verfügung.

Installation

Falls noch nicht geschehen, installieren wir das nötige Paket mit Hilfe von yum.

# yum install cyrus-imapd-utils -y

Den Inhalt des RPM-Paketes inspizieren wir bei Bedarf wie folgt:

# rpm -qil cyrus-imapd-utils
Name        : cyrus-imapd-utils            Relocations: (not relocatable)
Version     : 2.3.16                            Vendor: CentOS
Release     : 6.el6_1.4                     Build Date: Thu 01 Dec 2011 06:24:38 PM CET
Install Date: Mon 26 Dec 2011 10:27:06 PM CET      Build Host: c6b5.bsys.dev.centos.org
Group       : Applications/System           Source RPM: cyrus-imapd-2.3.16-6.el6_1.4.src.rpm
Size        : 733204                           License: BSD
Signature   : RSA/SHA1, Wed 07 Dec 2011 06:51:10 PM CET, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://cyrusimap.web.cmu.edu/
Summary     : Cyrus IMAP server administration utilities
Description :
The cyrus-imapd-utils package contains administrative tools for the
Cyrus IMAP server. It can be installed on systems other than the
one running the server.
/usr/bin/cyradm
/usr/bin/imtest
/usr/bin/installsieve
/usr/bin/lmtptest
/usr/bin/mupdatetest
/usr/bin/nntptest
/usr/bin/notifytest
/usr/bin/pop3test
/usr/bin/sieveshell
/usr/bin/sivtest
/usr/bin/smtptest
/usr/bin/synctest
/usr/lib64/perl5/vendor_perl/Cyrus
/usr/lib64/perl5/vendor_perl/Cyrus/IMAP
/usr/lib64/perl5/vendor_perl/Cyrus/IMAP.pm
/usr/lib64/perl5/vendor_perl/Cyrus/IMAP/Admin.pm
/usr/lib64/perl5/vendor_perl/Cyrus/IMAP/IMSP.pm
/usr/lib64/perl5/vendor_perl/Cyrus/IMAP/Shell.pm
/usr/lib64/perl5/vendor_perl/Cyrus/SIEVE
/usr/lib64/perl5/vendor_perl/Cyrus/SIEVE/managesieve.pm
/usr/lib64/perl5/vendor_perl/auto
/usr/lib64/perl5/vendor_perl/auto/Cyrus
/usr/lib64/perl5/vendor_perl/auto/Cyrus/IMAP
/usr/lib64/perl5/vendor_perl/auto/Cyrus/IMAP/IMAP.so
/usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE
/usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve
/usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve/managesieve.so
/usr/share/doc/cyrus-imapd-utils-2.3.16
/usr/share/doc/cyrus-imapd-utils-2.3.16/Changes
/usr/share/doc/cyrus-imapd-utils-2.3.16/README
/usr/share/doc/cyrus-imapd-utils-2.3.16/examples
/usr/share/doc/cyrus-imapd-utils-2.3.16/examples/auditmbox.pl
/usr/share/doc/cyrus-imapd-utils-2.3.16/examples/imapcollate.pl
/usr/share/doc/cyrus-imapd-utils-2.3.16/examples/imapdu.pl
/usr/share/doc/cyrus-imapd-utils-2.3.16/examples/test-imsp.pl
/usr/share/man/man1/cyradm.1.gz
/usr/share/man/man1/imtest.1.gz
/usr/share/man/man1/installsieve.1.gz
/usr/share/man/man1/lmtptest.1.gz
/usr/share/man/man1/mupdatetest.1.gz
/usr/share/man/man1/nntptest.1.gz
/usr/share/man/man1/pop3test.1.gz
/usr/share/man/man1/sieveshell.1.gz
/usr/share/man/man1/sivtest.1.gz
/usr/share/man/man1/smtptest.1.gz
/usr/share/man/man3/Cyrus::IMAP.3pm.gz
/usr/share/man/man3/Cyrus::IMAP::Admin.3pm.gz
/usr/share/man/man3/Cyrus::IMAP::IMSP.3pm.gz
/usr/share/man/man3/Cyrus::IMAP::Shell.3pm.gz
/usr/share/man/man3/Cyrus::SIEVE::managesieve.3pm.gz

Administration

Dank unserer Systemvorgaben in der /etc/imapd.conf beschränkt sich jedoch die Arbeit hier auf sehr wenig.

Gestartet wird der Zugang von der Konsole über:

 # cyradm --user cyrus --server localhost --auth CRAM-MD5
IMAP Password: 
nausch.org> 

Die Authentifizierung läuft dabei via saslauth gegen unseren LDAP-Server.

Befehlsübersicht

Eine Übersicht der möglichen Befehle erhält man durch Eingabe von help oder einem ?.

nausch.org> ?
authenticate, login, auth         authenticate to server
chdir, cd                         change current directory
createmailbox, create, cm         create mailbox
deleteaclmailbox, deleteacl, dam  remove ACLs from mailbox
deletemailbox, delete, dm         delete mailbox
disconnect, disc                  disconnect from current server
exit, quit                        exit cyradm
help, ?                           show commands
info                              display mailbox/server metadata
listacl, lam, listaclmailbox      list ACLs on mailbox
listmailbox, lm                   list mailboxes
listquota, lq                     list quotas on specified root
listquotaroot, lqr, lqm           show quota roots and quotas for mailbox
mboxcfg, mboxconfig               configure mailbox
reconstruct                       reconstruct mailbox (if supported)
renamemailbox, rename, renm       rename (and optionally relocate) mailbox
server, servername, connect       show current server or connect to server
setaclmailbox, sam, setacl        set ACLs on mailbox
setinfo                           set server metadata
setquota, sq                      set quota on mailbox or resource
subscribe, sub                    subscribe to a mailbox
unsubscribe, unsub                unsubscribe from a mailbox
version, ver                      display version info of current server
xfermailbox, xfer                 transfer (relocate) a mailbox to a different server

Konto anlegen

Wollte man eine neue Mailbox selber anlegen so benutzt man cm oder createmailbox.

nausch.org> cm user/username

Konto löschen

Damit eine Mailbox gelöscht werden kann, muss zuerst die Berechtigung für den Administrator cyrus übergeben werden. Dies erreicht man mit dem Befehl setaclmailbox oder kurz sam.

nausch.org> sam user/testuser cyrus all
nausch.org> dm user/testuser

Mailbox Quota setzen

In der Regel wird man seinen Nutzern keinen unbegrenzten Speicherplatz zur Verfügung stellen wollen und/oder können.

Zum Setzen der Quota nutz man den Befehl setquota, oder kurz sq.

nausch.org> sq user/django 4096000
quota:4096000

Mailbox Quota abfragen

Will man die aktuelle Belegung wie auch den maximalen Speicherplatz abfragen, greifen wir auf den Befehl listquota bzw. in Kurzform lq zurück.

nausch.org> lq user/django
STORAGE 682958/2048000 (33.34755859375%)

Mailbox Quota ändern

Verändert wird die Quota mittels wie schon beim Setzen mit Hilfe von setquota, oder kurz sq.

nausch.org> lq user/django
STORAGE 682958/2048000 (33.34755859375%)
nausch.org> sq user/django 4096000
quota:4096000
nausch.org> lq user/django
STORAGE 682963/4096000 (16.6739013671875%)

Fazit

Dank nachfolgender Konfigurationsoptionen in der /etc/imapd.conf können wir eigentlich auf die Arbeit mit dem manuellen Anlegen von Nutzerkonten verzichten.

# Ein Wert größer als Null setzt einen Quo in kByte. Ein Wert der nicht 0 ist, 
# erlaubt dem Benutzer das anlegen seiner eigenen INBOX
autocreatequota: 2048000
 
# Sobald 90% der Quota erreicht ist, gibt der Server Warnmeldungen aus
quotawarn: 90
 
# Postfach wird angelegt, wenn per lmtpd eine Nachricht angeliefert wird,
# für die noch kein Inbox besteht
createonpost: no
 
# Loggt sich ein User neu an, oder es wird eine Nachricht per lmtpd 
# angeliefert, für das noch kein Account besteht, so wird dieser automatisch 
# mit den definierten Ordnern angelegt
###autocreateinboxfolders: inbox|achive
autocreateinboxfolders: Archives | Drafts | Sent | Trash
 
# Loggt sich ein User neu an, oder es wird eine Nachricht per lmtpd 
# angeliefert, für das noch kein Account besteht, so werden automatisch 
# folgende Ordner abboniert
autosubscribeinboxfolders: Archives | Drafts | Sent | Trash

Haben wir einen neuen Nutzer in unserem zentralen LDAP-Verzeichnis angelegt und der Nutzer meldet sich das erste mal am IMAP-Server an, wird automatisch sein Nutzerkonto angelegt, die Quota vergeben, sowie die Defaut-Ordner angelegt und abboniert.

Links