Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:cyrus_centos_6

Dies ist eine alte Version des Dokuments!


Cyrus CentOS 6

Der IMAP-Mailserver Cyrus ist einer der beliebtesten IMAP-Mailserver. Cyrus wird an der Carnegie-Mellon Universität entwickelt und entstand aus dem Andrew Mail an Bulletin Board System welches in den 90er Jahren an der Universität entwickelt und eingesetzt wurde.

Der Cyrus-IMAP-Mailserver kann zum abholen und verwalten von e-Mails, welche durch einen Mail Transport Agent wie Postfix entgegengenommen wurden, genutzt werden.

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Installation

Jede ernst zunehmende Linux-Distribution sollte ein vorkonfiguriertes Cyrus-Paket mit sich bringen. Deswegen ist eine Installation auch unter CentOS eine Sache des Paket-Managers yum.

Zur Installation eines Cyrus-IMAP-Mailservers wird nachfolgendes Paket benötigt:

  • cyrus-imapd - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete cyrus-imapd installiert:

# yum install cyrus-imapd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base                                                     | 3.7 kB     00:00     
cr                                                       | 3.5 kB     00:00     
extras                                                   | 3.0 kB     00:00     
updates                                                  | 3.5 kB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cyrus-imapd.x86_64 0:2.3.16-6.el6_1.3 will be installed
--> Processing Dependency: cyrus-imapd-utils = 2.3.16-6.el6_1.3 for package: cyrus-imapd-2.3.16-6.el6_1.3.x86_64
--> Processing Dependency: file for package: cyrus-imapd-2.3.16-6.el6_1.3.x86_64
--> Running transaction check
---> Package cyrus-imapd-utils.x86_64 0:2.3.16-6.el6_1.3 will be installed
--> Processing Dependency: make for package: cyrus-imapd-utils-2.3.16-6.el6_1.3.x86_64
---> Package file.x86_64 0:5.04-11.el6 will be installed
--> Running transaction check
---> Package make.x86_64 1:3.81-19.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch         Version                  Repository  Size
================================================================================
Installing:
 cyrus-imapd             x86_64       2.3.16-6.el6_1.3         cr          11 M
Installing for dependencies:
 cyrus-imapd-utils       x86_64       2.3.16-6.el6_1.3         cr         254 k
 file                    x86_64       5.04-11.el6              cr          45 k
 make                    x86_64       1:3.81-19.el6            base       389 k

Transaction Summary
================================================================================
Install       4 Package(s)

Total download size: 12 M
Installed size: 45 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): cyrus-imapd-2.3.16-6.el6_1.3.x86_64.rpm           |  11 MB     00:00     
(2/4): cyrus-imapd-utils-2.3.16-6.el6_1.3.x86_64.rpm     | 254 kB     00:00     
(3/4): file-5.04-11.el6.x86_64.rpm                       |  45 kB     00:00     
(4/4): make-3.81-19.el6.x86_64.rpm                       | 389 kB     00:00     
--------------------------------------------------------------------------------
Total                                            18 MB/s |  12 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : file-5.04-11.el6.x86_64                                      1/4 
  Installing : 1:make-3.81-19.el6.x86_64                                    2/4 
  Installing : cyrus-imapd-utils-2.3.16-6.el6_1.3.x86_64                    3/4 
  Installing : cyrus-imapd-2.3.16-6.el6_1.3.x86_64                          4/4 

Installed:
  cyrus-imapd.x86_64 0:2.3.16-6.el6_1.3                                         

Dependency Installed:
  cyrus-imapd-utils.x86_64 0:2.3.16-6.el6_1.3     file.x86_64 0:5.04-11.el6    
  make.x86_64 1:3.81-19.el6                      

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket cyrus-imapd installiert wurden.

# rpm -qil cyrus-imapd
Name        : cyrus-imapd                  Relocations: (not relocatable)
Version     : 2.3.16                            Vendor: CentOS
Release     : 6.el6_1.3                     Build Date: Mon 26 Sep 2011 03:06:00 AM CEST
Install Date: Fri 09 Dec 2011 09:35:39 AM CET      Build Host: c6b6.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: cyrus-imapd-2.3.16-6.el6_1.3.src.rpm
Size        : 45641267                         License: BSD
Signature   : RSA/SHA1, Wed 28 Sep 2011 02:33:57 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://cyrusimap.web.cmu.edu/
Summary     : A high-performance mail server with IMAP, POP3, NNTP and SIEVE support
Description :
The cyrus-imapd package contains the core of the Cyrus IMAP server.
It is a scaleable enterprise mail system designed for use from
small to large enterprise environments using standards-based
internet mail technologies.

A full Cyrus IMAP implementation allows a seamless mail and bulletin
board environment to be set up across multiple servers. It differs from
other IMAP server implementations in that it is run on "sealed"
servers, where users are not normally permitted to log in and have no
system account on the server. The mailbox database is stored in parts
of the file system that are private to the Cyrus IMAP server. All user
access to mail is through software using the IMAP, POP3 or KPOP
protocols. It also includes support for virtual domains, NNTP,
mailbox annotations, and much more. The private mailbox database design
gives the server large advantages in efficiency, scalability and
administratability. Multiple concurrent read/write connections to the
same mailbox are permitted. The server supports access control lists on
mailboxes and storage quotas on mailbox hierarchies.

The Cyrus IMAP server supports the IMAP4rev1 protocol described
in RFC 3501. IMAP4rev1 has been approved as a proposed standard.
It supports any authentication mechanism available from the SASL
library, imaps/pop3s/nntps (IMAP/POP3/NNTP encrypted using SSL and
TLSv1) can be used for security. The server supports single instance
store where possible when an email message is addressed to multiple
recipients, SIEVE provides server side email filtering.
/etc/cron.daily/cyrus-imapd
/etc/cyrus.conf
/etc/imapd.conf
/etc/logrotate.d/cyrus-imapd
/etc/pam.d/csync
/etc/pam.d/imap
/etc/pam.d/lmtp
/etc/pam.d/mupdate
/etc/pam.d/nntp
/etc/pam.d/pop
/etc/pam.d/sieve
/etc/pki/cyrus-imapd
/etc/pki/cyrus-imapd/cyrus-imapd.pem
/etc/rc.d/init.d/cyrus-imapd
/etc/sysconfig/cyrus-imapd
/usr/lib/cyrus-imapd
/usr/lib/cyrus-imapd/arbitron
/usr/lib/cyrus-imapd/arbitronsort.pl
/usr/lib/cyrus-imapd/chk_cyrus
/usr/lib/cyrus-imapd/compile_sieve
/usr/lib/cyrus-imapd/convert-sieve.pl
/usr/lib/cyrus-imapd/ctl_cyrusdb
/usr/lib/cyrus-imapd/ctl_deliver
/usr/lib/cyrus-imapd/ctl_mboxlist
/usr/lib/cyrus-imapd/cvt_cyrusdb
/usr/lib/cyrus-imapd/cvt_cyrusdb_all
/usr/lib/cyrus-imapd/cyr_dbtool
/usr/lib/cyrus-imapd/cyr_df
/usr/lib/cyrus-imapd/cyr_expire
/usr/lib/cyrus-imapd/cyr_synclog
/usr/lib/cyrus-imapd/cyrdump
/usr/lib/cyrus-imapd/cyrfetchnews
/usr/lib/cyrus-imapd/cyrus-master
/usr/lib/cyrus-imapd/deliver
/usr/lib/cyrus-imapd/dohash
/usr/lib/cyrus-imapd/fud
/usr/lib/cyrus-imapd/idled
/usr/lib/cyrus-imapd/imapd
/usr/lib/cyrus-imapd/ipurge
/usr/lib/cyrus-imapd/lmtpd
/usr/lib/cyrus-imapd/lmtpproxyd
/usr/lib/cyrus-imapd/make_md5
/usr/lib/cyrus-imapd/make_sha1
/usr/lib/cyrus-imapd/masssievec
/usr/lib/cyrus-imapd/mbexamine
/usr/lib/cyrus-imapd/mbpath
/usr/lib/cyrus-imapd/migrate-metadata
/usr/lib/cyrus-imapd/mkimap
/usr/lib/cyrus-imapd/mknewsgroups
/usr/lib/cyrus-imapd/mupdate
/usr/lib/cyrus-imapd/mupdate-loadgen.pl
/usr/lib/cyrus-imapd/nntpd
/usr/lib/cyrus-imapd/notifyd
/usr/lib/cyrus-imapd/pop3d
/usr/lib/cyrus-imapd/proxyd
/usr/lib/cyrus-imapd/ptdump
/usr/lib/cyrus-imapd/ptexpire
/usr/lib/cyrus-imapd/ptloader
/usr/lib/cyrus-imapd/quota
/usr/lib/cyrus-imapd/reconstruct
/usr/lib/cyrus-imapd/rehash
/usr/lib/cyrus-imapd/sievec
/usr/lib/cyrus-imapd/sieved
/usr/lib/cyrus-imapd/smmapd
/usr/lib/cyrus-imapd/squatter
/usr/lib/cyrus-imapd/sync_client
/usr/lib/cyrus-imapd/sync_reset
/usr/lib/cyrus-imapd/sync_server
/usr/lib/cyrus-imapd/timsieved
/usr/lib/cyrus-imapd/tls_prune
/usr/lib/cyrus-imapd/translatesieve
/usr/lib/cyrus-imapd/undohash
/usr/lib/cyrus-imapd/unexpunge
/usr/lib/cyrus-imapd/upgradesieve
/usr/share/cyrus-imapd
/usr/share/cyrus-imapd/rpm
/usr/share/cyrus-imapd/rpm/db.cfg
/usr/share/cyrus-imapd/rpm/magic
/usr/share/doc/cyrus-imapd-2.3.16
/usr/share/doc/cyrus-imapd-2.3.16/COPYRIGHT
/usr/share/doc/cyrus-imapd-2.3.16/README
/usr/share/doc/cyrus-imapd-2.3.16/README.autocreate-cyrus-2.3
/usr/share/doc/cyrus-imapd-2.3.16/README.autosievefolder
/usr/share/doc/cyrus-imapd-2.3.16/README.rpm
/usr/share/doc/cyrus-imapd-2.3.16/altnamespace.html
/usr/share/doc/cyrus-imapd-2.3.16/anoncvs.html
/usr/share/doc/cyrus-imapd-2.3.16/bugs.html
/usr/share/doc/cyrus-imapd-2.3.16/changes.html
/usr/share/doc/cyrus-imapd-2.3.16/conf
/usr/share/doc/cyrus-imapd-2.3.16/conf/cmu-backend.conf
/usr/share/doc/cyrus-imapd-2.3.16/conf/cmu-frontend.conf
/usr/share/doc/cyrus-imapd-2.3.16/conf/normal.conf
/usr/share/doc/cyrus-imapd-2.3.16/conf/prefork.conf
/usr/share/doc/cyrus-imapd-2.3.16/conf/small.conf
/usr/share/doc/cyrus-imapd-2.3.16/contrib
/usr/share/doc/cyrus-imapd-2.3.16/cyrusv2.mc
/usr/share/doc/cyrus-imapd-2.3.16/faq.html
/usr/share/doc/cyrus-imapd-2.3.16/feedback.html
/usr/share/doc/cyrus-imapd-2.3.16/index.html
/usr/share/doc/cyrus-imapd-2.3.16/install-admin-mb.html
/usr/share/doc/cyrus-imapd-2.3.16/install-auth.html
/usr/share/doc/cyrus-imapd-2.3.16/install-compile.html
/usr/share/doc/cyrus-imapd-2.3.16/install-configure.html
/usr/share/doc/cyrus-imapd-2.3.16/install-murder.html
/usr/share/doc/cyrus-imapd-2.3.16/install-netnews.html
/usr/share/doc/cyrus-imapd-2.3.16/install-perf.html
/usr/share/doc/cyrus-imapd-2.3.16/install-prereq.html
/usr/share/doc/cyrus-imapd-2.3.16/install-replication.html
/usr/share/doc/cyrus-imapd-2.3.16/install-sieve.html
/usr/share/doc/cyrus-imapd-2.3.16/install-snmpmon.html
/usr/share/doc/cyrus-imapd-2.3.16/install-testing.html
/usr/share/doc/cyrus-imapd-2.3.16/install-upgrade.html
/usr/share/doc/cyrus-imapd-2.3.16/install-virtdomains.html
/usr/share/doc/cyrus-imapd-2.3.16/install.html
/usr/share/doc/cyrus-imapd-2.3.16/internal
/usr/share/doc/cyrus-imapd-2.3.16/internal/bytecode
/usr/share/doc/cyrus-imapd-2.3.16/internal/database-formats.html
/usr/share/doc/cyrus-imapd-2.3.16/internal/hacking
/usr/share/doc/cyrus-imapd-2.3.16/internal/internationalization.html
/usr/share/doc/cyrus-imapd-2.3.16/internal/locking
/usr/share/doc/cyrus-imapd-2.3.16/internal/mailbox-format.html
/usr/share/doc/cyrus-imapd-2.3.16/internal/master-state-machine.fig
/usr/share/doc/cyrus-imapd-2.3.16/internal/prot-events
/usr/share/doc/cyrus-imapd-2.3.16/internal/prot.html
/usr/share/doc/cyrus-imapd-2.3.16/internal/replication_examples
/usr/share/doc/cyrus-imapd-2.3.16/internal/replication_protocol
/usr/share/doc/cyrus-imapd-2.3.16/internal/specials
/usr/share/doc/cyrus-imapd-2.3.16/internal/uuid
/usr/share/doc/cyrus-imapd-2.3.16/internal/var_directory_structure
/usr/share/doc/cyrus-imapd-2.3.16/mailing-list.html
/usr/share/doc/cyrus-imapd-2.3.16/man.html
/usr/share/doc/cyrus-imapd-2.3.16/murder.fig
/usr/share/doc/cyrus-imapd-2.3.16/murder.png
/usr/share/doc/cyrus-imapd-2.3.16/netnews.fig
/usr/share/doc/cyrus-imapd-2.3.16/netnews.png
/usr/share/doc/cyrus-imapd-2.3.16/notes.html
/usr/share/doc/cyrus-imapd-2.3.16/os.html
/usr/share/doc/cyrus-imapd-2.3.16/overview.html
/usr/share/doc/cyrus-imapd-2.3.16/questions.html
/usr/share/doc/cyrus-imapd-2.3.16/readme.html
/usr/share/doc/cyrus-imapd-2.3.16/sieve-protocol.html
/usr/share/doc/cyrus-imapd-2.3.16/sieve.html
/usr/share/doc/cyrus-imapd-2.3.16/specs.html
/usr/share/doc/cyrus-imapd-2.3.16/text
/usr/share/doc/cyrus-imapd-2.3.16/text/altnamespace
/usr/share/doc/cyrus-imapd-2.3.16/text/anoncvs
/usr/share/doc/cyrus-imapd-2.3.16/text/bugs
/usr/share/doc/cyrus-imapd-2.3.16/text/changes
/usr/share/doc/cyrus-imapd-2.3.16/text/faq
/usr/share/doc/cyrus-imapd-2.3.16/text/feedback
/usr/share/doc/cyrus-imapd-2.3.16/text/index
/usr/share/doc/cyrus-imapd-2.3.16/text/install
/usr/share/doc/cyrus-imapd-2.3.16/text/install-admin-mb
/usr/share/doc/cyrus-imapd-2.3.16/text/install-auth
/usr/share/doc/cyrus-imapd-2.3.16/text/install-compile
/usr/share/doc/cyrus-imapd-2.3.16/text/install-configure
/usr/share/doc/cyrus-imapd-2.3.16/text/install-murder
/usr/share/doc/cyrus-imapd-2.3.16/text/install-netnews
/usr/share/doc/cyrus-imapd-2.3.16/text/install-perf
/usr/share/doc/cyrus-imapd-2.3.16/text/install-prereq
/usr/share/doc/cyrus-imapd-2.3.16/text/install-replication
/usr/share/doc/cyrus-imapd-2.3.16/text/install-sieve
/usr/share/doc/cyrus-imapd-2.3.16/text/install-snmpmon
/usr/share/doc/cyrus-imapd-2.3.16/text/install-testing
/usr/share/doc/cyrus-imapd-2.3.16/text/install-upgrade
/usr/share/doc/cyrus-imapd-2.3.16/text/install-virtdomains
/usr/share/doc/cyrus-imapd-2.3.16/text/mailing-list
/usr/share/doc/cyrus-imapd-2.3.16/text/man
/usr/share/doc/cyrus-imapd-2.3.16/text/notes
/usr/share/doc/cyrus-imapd-2.3.16/text/os
/usr/share/doc/cyrus-imapd-2.3.16/text/overview
/usr/share/doc/cyrus-imapd-2.3.16/text/questions
/usr/share/doc/cyrus-imapd-2.3.16/text/readme
/usr/share/doc/cyrus-imapd-2.3.16/text/sieve
/usr/share/doc/cyrus-imapd-2.3.16/text/sieve-protocol
/usr/share/doc/cyrus-imapd-2.3.16/text/specs
/usr/share/man/man5/cyrus.conf.5.gz
/usr/share/man/man5/imapd.conf.5.gz
/usr/share/man/man5/krb.equiv.5.gz
/usr/share/man/man8/arbitron.8.gz
/usr/share/man/man8/chk_cyrus.8.gz
/usr/share/man/man8/ctl_cyrusdb.8.gz
/usr/share/man/man8/ctl_deliver.8.gz
/usr/share/man/man8/ctl_mboxlist.8.gz
/usr/share/man/man8/cvt_cyrusdb.8.gz
/usr/share/man/man8/cyr_dbtool.8.gz
/usr/share/man/man8/cyr_df.8.gz
/usr/share/man/man8/cyr_expire.8.gz
/usr/share/man/man8/cyr_synclog.8.gz
/usr/share/man/man8/cyrfetchnews.8.gz
/usr/share/man/man8/cyrus-master.8.gz
/usr/share/man/man8/deliver.8.gz
/usr/share/man/man8/fud.8.gz
/usr/share/man/man8/idled.8.gz
/usr/share/man/man8/imapd.8cyrus.gz
/usr/share/man/man8/ipurge.8.gz
/usr/share/man/man8/lmtpd.8.gz
/usr/share/man/man8/make_md5.8.gz
/usr/share/man/man8/make_sha1.8.gz
/usr/share/man/man8/mbexamine.8.gz
/usr/share/man/man8/mbpath.8.gz
/usr/share/man/man8/nntpd.8.gz
/usr/share/man/man8/notifyd.8.gz
/usr/share/man/man8/pop3d.8cyrus.gz
/usr/share/man/man8/quota.8.gz
/usr/share/man/man8/reconstruct.8.gz
/usr/share/man/man8/rmnews.8.gz
/usr/share/man/man8/smmapd.8.gz
/usr/share/man/man8/squatter.8.gz
/usr/share/man/man8/sync_client.8.gz
/usr/share/man/man8/sync_reset.8.gz
/usr/share/man/man8/sync_server.8.gz
/usr/share/man/man8/timsieved.8.gz
/usr/share/man/man8/tls_prune.8.gz
/usr/share/man/man8/unexpunge.8.gz
/var/lib/imap
/var/lib/imap/backup
/var/lib/imap/db
/var/lib/imap/log
/var/lib/imap/md5
/var/lib/imap/meta
/var/lib/imap/msg
/var/lib/imap/proc
/var/lib/imap/ptclient
/var/lib/imap/quota
/var/lib/imap/rpm
/var/lib/imap/sieve
/var/lib/imap/socket
/var/lib/imap/sync
/var/lib/imap/user
/var/spool/imap

Installation: cyrus-sasl-plain

Der Cyrus-IMAP-Mailserver, beherrscht verschiedene Methoden zur Authentifizierung der einzelnen Benutzer bzw. e-Mail-Konten. Ein dieser Methoden ist die Authentifizierung durch „Klartext“-Passwörter (welche die Übertragungsart des Passworts bezeichnet).

Zur Installation der Authentifizierungsmethode plain durch den Cyrus-IMAP-Mailservers wird nachfolgendes Paket benötigt:

  • cyrus-sasl-plain - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete cyrus-sasl-plain installiert:

# yum install cyrus-sasl-plain
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cyrus-sasl-plain.x86_64 0:2.1.23-8.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch          Version                Repository   Size
================================================================================
Installing:
 cyrus-sasl-plain        x86_64        2.1.23-8.el6           base         30 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 30 k
Installed size: 33 k
Is this ok [y/N]: y
Downloading Packages:
cyrus-sasl-plain-2.1.23-8.el6.x86_64.rpm                 |  30 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : cyrus-sasl-plain-2.1.23-8.el6.x86_64                         1/1 

Installed:
  cyrus-sasl-plain.x86_64 0:2.1.23-8.el6                                        

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket cyrus-sasl-plain installiert wurden.

# rpm -qil cyrus-sasl-plain
Name        : cyrus-sasl-plain             Relocations: (not relocatable)
Version     : 2.1.23                            Vendor: CentOS
Release     : 8.el6                         Build Date: Thu 11 Nov 2010 05:11:37 AM CET
Install Date: Fri 09 Dec 2011 01:16:59 PM CET      Build Host: c6b3.bsys.dev.centos.org
Group       : System Environment/Libraries   Source RPM: cyrus-sasl-2.1.23-8.el6.src.rpm
Size        : 34000                            License: BSD
Signature   : RSA/8, Sun 03 Jul 2011 06:09:12 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://asg.web.cmu.edu/sasl/sasl-library.html
Summary     : PLAIN and LOGIN authentication support for Cyrus SASL
Description :
The cyrus-sasl-plain package contains the Cyrus SASL plugins which support
PLAIN and LOGIN authentication schemes.
/usr/lib64/sasl2/liblogin.so
/usr/lib64/sasl2/liblogin.so.2
/usr/lib64/sasl2/liblogin.so.2.0.23
/usr/lib64/sasl2/libplain.so
/usr/lib64/sasl2/libplain.so.2
/usr/lib64/sasl2/libplain.so.2.0.23

Installation: cyrus-sasl-md5

Der Cyrus-IMAP-Mailserver, beherrscht verschiedene Methoden zur Authentifizierung der einzelnen Benutzer bzw. e-Mail-Konten. Ein dieser Methoden ist die Authentifizierung durch auf dem Algorithmus von „MD5-Verschlüsselten“-Passwörter (CRAM-MD5 und DIGEST-MD5) (welche die Übertragungsart des Passworts bezeichnet).

Zur Installation der Authentifizierungsmethode CRAM-MD5 und DIGEST-MD5 durch den Cyrus-IMAP-Mailservers wird nachfolgendes Paket benötigt:

  • cyrus-sasl-md5 - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete cyrus-sasl-md5 installiert:

# yum install cyrus-sasl-md5
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cyrus-sasl-md5.x86_64 0:2.1.23-8.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch           Version               Repository    Size
================================================================================
Installing:
 cyrus-sasl-md5         x86_64         2.1.23-8.el6          base          46 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 46 k
Installed size: 67 k
Is this ok [y/N]: y
Downloading Packages:
cyrus-sasl-md5-2.1.23-8.el6.x86_64.rpm                   |  46 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : cyrus-sasl-md5-2.1.23-8.el6.x86_64                           1/1 

Installed:
  cyrus-sasl-md5.x86_64 0:2.1.23-8.el6                                          

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket cyrus-sasl-md5 installiert wurden.

# rpm -qil cyrus-sasl-md5
Name        : cyrus-sasl-md5               Relocations: (not relocatable)
Version     : 2.1.23                            Vendor: CentOS
Release     : 8.el6                         Build Date: Thu 11 Nov 2010 05:11:37 AM CET
Install Date: Fri 09 Dec 2011 01:18:40 PM CET      Build Host: c6b3.bsys.dev.centos.org
Group       : System Environment/Libraries   Source RPM: cyrus-sasl-2.1.23-8.el6.src.rpm
Size        : 68592                            License: BSD
Signature   : RSA/8, Sun 03 Jul 2011 06:09:09 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://asg.web.cmu.edu/sasl/sasl-library.html
Summary     : CRAM-MD5 and DIGEST-MD5 authentication support for Cyrus SASL
Description :
The cyrus-sasl-md5 package contains the Cyrus SASL plugins which support
CRAM-MD5 and DIGEST-MD5 authentication schemes.
/usr/lib64/sasl2/libcrammd5.so
/usr/lib64/sasl2/libcrammd5.so.2
/usr/lib64/sasl2/libcrammd5.so.2.0.23
/usr/lib64/sasl2/libdigestmd5.so
/usr/lib64/sasl2/libdigestmd5.so.2
/usr/lib64/sasl2/libdigestmd5.so.2.0.23

Installation: cyrus-sasl-ldap

Der Cyrus-IMAP-Mailserver, soll mit einer Anbindung an LDAP zur Authentifizierung der einzelnen Benutzer bzw. e-Mail-Konten betrieben werden.

Wie ein OpenLDAP-Server installiert und grundlegend konfiguriert werden kann, kann unter nachfolgendem Link innerhalb dieses DokuWiki nachgelesen werden:

:!: HINWEIS - Die Konfiguration des Cyrus-IMAP-Mailserver soll nachfolgend NUR gegen LDAP erfolgen!

Zur Installation einer LDAP-Anbindung des Cyrus-IMAP-Mailservers wird nachfolgendes Paket benötigt:

  • cyrus-sasl-ldap - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete cyrus-sasl-ldap installiert:

# yum install cyrus-sasl-ldap
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package cyrus-sasl-ldap.x86_64 0:2.1.23-8.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                 Arch           Version              Repository    Size
================================================================================
Installing:
 cyrus-sasl-ldap         x86_64         2.1.23-8.el6         base          28 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 28 k
Installed size: 18 k
Is this ok [y/N]: y
Downloading Packages:
cyrus-sasl-ldap-2.1.23-8.el6.x86_64.rpm                  |  28 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : cyrus-sasl-ldap-2.1.23-8.el6.x86_64                          1/1 

Installed:
  cyrus-sasl-ldap.x86_64 0:2.1.23-8.el6                                         

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket cyrus-sasl-ldap installiert wurden.

# rpm -qil cyrus-sasl-ldap
Name        : cyrus-sasl-ldap              Relocations: (not relocatable)
Version     : 2.1.23                            Vendor: CentOS
Release     : 8.el6                         Build Date: Thu 11 Nov 2010 05:11:37 AM CET
Install Date: Fri 09 Dec 2011 01:20:08 PM CET      Build Host: c6b3.bsys.dev.centos.org
Group       : System Environment/Libraries   Source RPM: cyrus-sasl-2.1.23-8.el6.src.rpm
Size        : 18240                            License: BSD
Signature   : RSA/8, Sun 03 Jul 2011 06:09:05 AM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://asg.web.cmu.edu/sasl/sasl-library.html
Summary     : LDAP auxprop support for Cyrus SASL
Description :
The cyrus-sasl-ldap package contains the Cyrus SASL plugin which supports using
a directory server, accessed using LDAP, for storing shared secrets.
/usr/lib64/sasl2/libldapdb.so
/usr/lib64/sasl2/libldapdb.so.2
/usr/lib64/sasl2/libldapdb.so.2.0.23

SASL-Module

Mit nachfolgendem Befehl kann überprüft werden, welche SASL-Module installiert sind:

# /usr/sbin/pluginviewer 
Installed SASL (server side) mechanisms are:
DIGEST-MD5 LOGIN ANONYMOUS CRAM-MD5 PLAIN EXTERNAL
List of server plugins follows
Plugin "digestmd5" [loaded],    API version: 4
        SASL mechanism: DIGEST-MD5, best SSF: 128, supports setpass: no
        security flags: NO_ANONYMOUS|NO_PLAINTEXT|MUTUAL_AUTH
        features: PROXY_AUTHENTICATION
Plugin "login" [loaded],        API version: 4
        SASL mechanism: LOGIN, best SSF: 0, supports setpass: no
        security flags: NO_ANONYMOUS
        features:
Plugin "anonymous" [loaded],    API version: 4
        SASL mechanism: ANONYMOUS, best SSF: 0, supports setpass: no
        security flags: NO_PLAINTEXT
        features: WANT_CLIENT_FIRST
Plugin "crammd5" [loaded],      API version: 4
        SASL mechanism: CRAM-MD5, best SSF: 0, supports setpass: no
        security flags: NO_ANONYMOUS|NO_PLAINTEXT
        features: SERVER_FIRST
Plugin "plain" [loaded],        API version: 4
        SASL mechanism: PLAIN, best SSF: 0, supports setpass: no
        security flags: NO_ANONYMOUS
        features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION
Installed auxprop mechanisms are:
sasldb
List of auxprop plugins follows
Plugin "sasldb" ,       API version: 4
        supports store: yes
 
Installed SASL (client side) mechanisms are:
DIGEST-MD5 LOGIN ANONYMOUS CRAM-MD5 PLAIN EXTERNAL
List of client plugins follows
Plugin "digestmd5" [loaded],    API version: 4
        SASL mechanism: DIGEST-MD5, best SSF: 128
        security flags: NO_ANONYMOUS|NO_PLAINTEXT|MUTUAL_AUTH
        features: PROXY_AUTHENTICATION|NEED_SERVER_FQDN
Plugin "login" [loaded],        API version: 4
        SASL mechanism: LOGIN, best SSF: 0
        security flags: NO_ANONYMOUS
        features: SERVER_FIRST
Plugin "anonymous" [loaded],    API version: 4
        SASL mechanism: ANONYMOUS, best SSF: 0
        security flags: NO_PLAINTEXT
        features: WANT_CLIENT_FIRST
Plugin "crammd5" [loaded],      API version: 4
        SASL mechanism: CRAM-MD5, best SSF: 0
        security flags: NO_ANONYMOUS|NO_PLAINTEXT
        features: SERVER_FIRST
Plugin "plain" [loaded],        API version: 4
        SASL mechanism: PLAIN, best SSF: 0
        security flags: NO_ANONYMOUS
        features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION
Plugin "EXTERNAL" [loaded],     API version: 4
        SASL mechanism: EXTERNAL, best SSF: 0
        security flags: NO_ANONYMOUS|NO_PLAINTEXT|NO_DICTIONARY
        features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION

Dienst/Deamon-Start einrichten

Um einen Cyrus-IMAP-Server, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# chkconfig cyrus-imapd on

Eine Überprüfung, ob beim Neustart des Server der cyrus-imapd-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# chkconfig --list | grep cyrus-imapd
cyrus-imapd     0:off   1:off   2:on    3:on    4:on    5:on    6:off

iptables Regel

Damit der Cyrus-IMAP-Server auch erreichbar ist und nicht die e-Mail-Verwaltung über IMAP-Abfragen vom Paketfilter iptables blockiert werden, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     3073   13M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        7   224 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination          
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 1793 packets, 1175K bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgende Befehle, fügen folgende iptables-Regeln dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 993 -j ACCEPT
  • -A INPUT -p tcp --dport 143 -j ACCEPT
  • -A INPUT -p tcp --dport 24 -j ACCEPT

und hier die Befehle:

# iptables -I INPUT 5 -p tcp --dport 993 -j ACCEPT
# iptables -I INPUT 5 -p tcp --dport 143 -j ACCEPT
# iptables -I INPUT 5 -p tcp --dport 24 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     3110   13M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:24
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 
7        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993 
8        8   256 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 3 packets, 348 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neuen Zeilen sind an Position 5 (INPUT), Position 6 (INPUT) und Position 7 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:24
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143 
7        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Basis-Konfiguration

Die Grundlage der Konfiguration des Cyrus-IMAP-Servers ist in zwei Dateien hinterlegt:

  • /etc/cyrus.conf und
  • /etc/imapd.conf

Zusätzlich ist daruaf zu achten ab CentOS in der Version 6.x die Konfigurationsdatei

  • /etc/services

anzupassen!

/etc/cyrus.conf

Die Konfigurationsdatei /etc/cyrus.conf gliedert sich in drei von geschweiften Klammern umschlossene Bereiche:

  • START{}
  • SERVICES{}
  • EVENTS{}

START{}

Der Bereich START{}, ist für Dienste und Hilfsprogramme zuständig.

Nachfolgend nur informationstechnisch in der Konfigurationsdatei /etc/cyrus.conf der Abschnitt START{} (nur relevanter Ausschnitt):

...
START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -r"
 
  # this is only necessary if using idled for IMAP IDLE
  idled         cmd="idled"
}
...

:!: HINWEIS - In diesem Bereich sind normalerweise KEINE Änderungen erforderlich

SERVICES{}

Der Bereich SERVICES{}, stellt die Dienste für die Kommunikation zur Verfügung.

Je nach Einsatzvorstellung, können hier Dienste aktiviert oder dekativiert werden. In dem hier gezeigten Beispiel, sollen nur IMAP-Dienste angeboten werden, der Zugriff über das POP3-Protokoll soll nicht angeboten werden!

Nachfolgende Anpassungen sollen deshalb an der Konfigurationsdatei /etc/cyrus.conf im Abschnitt SERVCIES{} durchgeführt werden (nur relevanter Ausschnitt):

...
# UNIX sockets start with a slash and are put into /var/lib/imap/sockets
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=5
  imaps         cmd="imapd -s" listen="imaps" prefork=1
# Tachtler
# default: pop3         cmd="pop3d" listen="pop3" prefork=3
#  pop3         cmd="pop3d" listen="pop3" prefork=3
# Tachtler
# default: pop3s                cmd="pop3d -s" listen="pop3s" prefork=1
#  pop3s                cmd="pop3d -s" listen="pop3s" prefork=1
  sieve         cmd="timsieved" listen="sieve" prefork=0
 
  # these are only necessary if receiving/exporting usenet via NNTP
#  nntp         cmd="nntpd" listen="nntp" prefork=3
#  nntps                cmd="nntpd -s" listen="nntps" prefork=1
 
  # at least one LMTP is required for delivery
# Tachtler
# default: #  lmtp              cmd="lmtpd" listen="lmtp" prefork=0
  lmtp          cmd="lmtpd -a" listen="lmtp" prefork=0
# Tachtler
# default:  lmtpunix    cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
#  lmtpunix     cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
 
  # this is only necessary if using notifications
# Tachtler
# default: #  notify    cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
  notify        cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}
...

Folgende Änderungen wurden erfasst, mit nachfolgenden Hintergründen:

Deaktivieren des Zugriffs auf den Cyrus-IMAP-Servers über das POP3-Protokoll soll nicht angeboten werden, deshalb werden die Entsprechenden Einträge auskommentiert:

...
# Tachtler
# default: pop3         cmd="pop3d" listen="pop3" prefork=3
#  pop3         cmd="pop3d" listen="pop3" prefork=3
# Tachtler
# default: pop3s                cmd="pop3d -s" listen="pop3s" prefork=1
#  pop3s                cmd="pop3d -s" listen="pop3s" prefork=1
...

Da sich in diesem Beispiel der Cyrus-IMAP-Server nicht auf dem selben Server wie der MTA (Mail Transport Agent, z.B. Postfix befindet, kann hier die Verbindung via lmtp NICHT über einen Socket erfolgen, deshalb muss hier der entsprechende Eintrag auskommentiert werden und der dafür richtige Eintrag, welcher standardmäßig auskommentiert ist, aktiviert werden:

...
  # at least one LMTP is required for delivery
# Tachtler
# default: #  lmtp              cmd="lmtpd" listen="lmtp" prefork=0
  lmtp          cmd="lmtpd -a" listen="lmtp" prefork=0
# Tachtler
# default:  lmtpunix    cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
#  lmtpunix     cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
...

:!: WICHTIG - Falls sich, wie in oben genanntem Beispiel der MTA (Mail-Server) und der IMAP-Server, NICHT auf dem selben Server befinden und die Übergabe der e-Mail an dem IMAP-Server via LMTP erfolgen soll, wie z.B. hier beschrieben:

dann ist die Angabe der Option „lmtpd -a“ erforderlich, ansonsten kommt es zu nachfolgender Fehlermeldung (nur relevanter Ausschnitt):

...
Feb  6 14:25:44 rechner60 postfix/lmtp[5583]: 679B85F115: to=<root@tachtler.net>, relay=192.168.0.80[192.168.0.80]:24, delay=534, delays=534
/0.03/0.02/0,dsn=4.0.0, status=deferred (host 192.168.0.80[192.168.0.80] said: 430 Authentication required (in reply to MAIL FROM command))
...

Die Option -a, kann in der MAN-Page von lmtpd mit nachfolgendem Befehl nachgelesen werden (nur relevanter Ausschnitt):

# man lmtpd
...
       -a     Preauthorize  connections  initiated  on  an  internet socket, instead of requiring LMTP AUTH.
              This should only be used for connections coming from trusted hosts.
...

Die Aktivierung ermöglicht die Nutzung des Cyrus-IMAP-Server-Informationsdienstes, über den Informationen über eintreffende Nachrichten an ein weiteres Postfach weitergeleitet werden können:

...
  # this is only necessary if using notifications
# Tachtler
# default: #  notify    cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
  notify        cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
...

EVENTS{}

Der Bereich EVENTS{}, sind Dienste und Hilfsprogramme definiert, welche in regelmäßigen Abständen ausgeführt werden.

Hier soll in diesem Beispiel ein Dienst bzw. ein Hilfsprogramm hinzugefügt werden, welches sich squatter nennt. Dieses Programm legt für jede Mailbox einen sogenannten „Squat-Volltext-Index“ an. Dadurch kann der Mail-Client bei einer Suche die betreffende Nachricht innerhalb der Mailbox schneller finden.

...
EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30
 
  # this is only necessary if using duplicate delivery suppression,
  # Sieve or NNTP
  delprune      cmd="cyr_expire -E 3" at=0400
 
  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" at=0400
 
  # Tachtler
  # this enables to build a squat-index, for faster search results
  # for better performance start with a high nice value 
  squatter      cmd="/bin/nice -n 19 /usr/lib/cyrus-imapd/squatter -r *" period=180
}
...

:!: HINWEIS - Falls es bei nachfolgender Konfiguration des squatter Index-Dienstes zu einer Fehlermeldung wie nachfolgend dargestellt kommt:

(Nur relevanter Ausschnitt)

...
Nov 11 11:30:00 server-one squatter[22750]: indexing mailboxes
Nov 11 11:30:00 server-one squatter[22750]: error opening looking up
*: Mailbox does not exist
...

muss die Konfiguration, wie nachfolgend dargestellt angepasst werden:

(Nur relevanter Ausschnitt)

...
  # Tachtler
  # this enables to build a squat-index, for faster search results
  # for better performance start with a high nice value 
  squatter      cmd="/bin/nice -n 19 /usr/lib/cyrus-imapd/squatter -r user.*" period=180
...

:!: DANKSAGUNG - Vielen Dank an Wolfram Walther für diesen Hinweis!

/etc/imapd.conf

Die Konfigurationsdatei /etc/imapd.conf ist die Hauptkonfigurationsdatei des Cyrus-IMAP-Servers. Die Konfigurationsdateieinträge sind nach der Syntax

  • Schlüssel: Wert

aufgebaut.

Die Werte des jeweiligen Schlüsseln können bzw. müssen wie folgt dargestellt angegeben werden:

  • positiver Wert: 1, yes, on, t, true
  • negativer Wert: 0, no, off, f, false
  • Eintrag: <Text>

Die Standard Konfigurationsdatei, sieht wie nachfolgend dargestellt aus (vollständige Konfigurationsdatei):

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13

Nachfolgende Änderungen an der Konfigurationsdatei /etc/imapd.conf werden in diesem Beispiel durchgeführt (vollständige Konfigurationsdatei):

admins: cyrus
configdirectory: /var/lib/imap
# Tachtler
defaultdomain: tachtler.net
# Tachtler
# default: hashimapspool: true
hashimapspool: 1
# Tachtler
lmtp_downcase_rcpt: 1
partition-default: /var/spool/imap
# Tachtler
quotawarn: 90
# Tachtler
unixhierarchysep: 1
# Tachtler
username_tolower: 1
# Tachtler
timeout: 60
# Tachtler
# default: sasl_pwcheck_method: saslauthd
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: ldapdb
# Tachtler
# default: sasl_mech_list: PLAIN
sasl_mech_list: PLAIN DIGEST-MD5 CRAM-MD5 LOGIN
# Tachtler
sasl_ldapdb_uri: ldap://ldap.dmz.tachtler.net
sasl_ldapdb_id: SASLErsatzauthentifizierer
sasl_ldapdb_pw: geheim
sasl_ldapdb_mech: DIGEST-MD5
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmailtls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# Tachtler
virtdomains: userid
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13

Folgende Änderungen wurden mit nachfolgenden Hintergründen durchgeführt:

Angabe einer Standard-Domain, falls Postfächer für mehrere Domains verwaltet werden sollen:

# Tachtler
defaultdomain: tachtler.net

Änderung des Wertes für die Generierung eines Hash-Wertes für alle Postfächer, was zur Leistungssteigerung unter bestimmten Umständen führen kann:

# Tachtler
# default: hashimapspool: true
hashimapspool: 1

Umwandlung der e-Mail-Adresse des Empfängers in Kleinbuchstaben. Nicht ganz RFC-Konform, jedoch vereinfacht die Verwaltung:

# Tachtler
lmtp_downcase_rcpt: 1

Ausgabe einer Warnung beim Anmelden am Cyrus-IMAP-Server, wenn der definierte Prozentwert der Größe eines Postfaches bereits erreicht ist.

:!: HINWEIS - NUR sinnvoll, wenn eine Postfachgrößenbeschränkung (quota) definiert ist !!!:

# Tachtler
quotawarn: 90

Im Zusammenhang mir der Verwendung von virtuellen Domains, wird NICHT der Punkt als Trennzeichen bei der Abbildung einer Postfach-Struktur verwendet, sondern das unter UNIX-Betriebssystem übliche / -Zeichen (Unix-Separator) verwendet werden:

# Tachtler
unixhierarchysep: 1

Umwandlung des Benutzernamens in Kleinbuchstaben zur Vereinfachung der Benutzerverwaltung:

# Tachtler
username_tolower: 1

Setzen der „Session“-Zeit, wie lange eine Verbindung mit einem Client aufrecht erhalten wird:
(Standard, ohne eine Angabe in der Konfigurationsdatei ist 30 Minuten)

# Tachtler
timeout: 60

Wechseln der Authentifizierungsmethode von saslauthd auf auxprop, zur Nutzung einer Authentifizierung gegen eine OpenLDAP-Server:

# Tachtler
# default: sasl_pwcheck_method: saslauthd
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: ldapdb

UND

# Tachtler
# default: sasl_mech_list: PLAIN
sasl_mech_list: PLAIN DIGEST-MD5 CRAM-MD5 LOGIN
# Tachtler
sasl_ldapdb_uri: ldap://ldap.dmz.tachtler.net
sasl_ldapdb_id: SASLErsatzauthentifizierer
sasl_ldapdb_pw: geheim
sasl_ldapdb_mech: PLAIN DIGEST-MD5 CRAM-MD5 LOGIN

Ermöglicht den Umgang des Cyrus-IMAP-Servers mit virtuellen Domains:

:!: HINWEIS - Bitte NICHT virtdomains: yes|on verwenden, da hier die Anmeldung mit unterschiedlichen FQDN nicht funktionieren würde !!!

# Tachtler
virtdomains: userid

/etc/services

Nachfolgende Anpassungen müssen durchgeführt werden, da sonst auf dem Port 4190 der Daemon cyrus-master zur Verwaltung von Sieve-Scripten NICHT lauscht (nur relevanter Ausschnitt)!

...
# Tachtler
sieve           4190/tcp        sieve           # Sieve Mail Filter Daemon
...

/etc/openldap/slapd.conf

:!: WICHTIG - Es sind einige Konfigurationen am OpenLDAP-Server durchzuführen, deshalb MÜSSEN nachfolgende Änderungen unter nachfolgendem Link innerhalb dieses DokuWiki's am OpenLDAP-Server durchgeführt werden !!!

:!: WICHTIG - Falls die Bearbeitungsschritte wie im oben beschriebenen Link NICHT durchgeführt werden, funktioniert die Authentifizierung NICHT !!!

Erster Start

Jetzt kann der cyrus-imapd-Daemon/Dienst zum ersten mal gestartet werden was mit nachfolgendem Befehle durchgeführt werden kann:

# service cyrus-imapd start
Importing cyrus-imapd databases:                           [  OK  ]
Starting cyrus-imapd:                                      [  OK  ]

Eine Überprüfung der LOG-Einträge kann mit nachfolgendem Befehl durchgeführt werden:

# less /var/log/maillog
Dec 12 13:52:41 rechner80 master[19747]: setrlimit: Unable to set file descriptors limit to -1: Operation not permitted
Dec 12 13:52:41 rechner80 master[19747]: retrying with 1024 (current max)
Dec 12 13:52:41 rechner80 master[19747]: process started
Dec 12 13:52:41 rechner80 master[19748]: about to exec /usr/lib/cyrus-imapd/ctl_cyrusdb
Dec 12 13:52:41 rechner80 ctl_cyrusdb[19748]: recovering cyrus databases
Dec 12 13:52:41 rechner80 ctl_cyrusdb[19748]: skiplist: checkpointed /var/lib/imap/mailboxes.db (0 records, 144 bytes) in 0 seconds
Dec 12 13:52:41 rechner80 ctl_cyrusdb[19748]: skiplist: checkpointed /var/lib/imap/annotations.db (0 records, 144 bytes) in 0 seconds
Dec 12 13:52:41 rechner80 ctl_cyrusdb[19748]: done recovering cyrus databases
Dec 12 13:52:41 rechner80 master[19750]: about to exec /usr/lib/cyrus-imapd/idled
Dec 12 13:52:42 rechner80 master[19747]: unable to setsocketopt(IP_TOS): Operation not supported
Dec 12 13:52:42 rechner80 master[19747]: ready for work
Dec 12 13:52:42 rechner80 master[19768]: about to exec /bin/nice
Dec 12 13:52:42 rechner80 master[19769]: about to exec /usr/lib/cyrus-imapd/ctl_cyrusdb
Dec 12 13:52:42 rechner80 master[19772]: about to exec /usr/lib/cyrus-imapd/notifyd
Dec 12 13:52:42 rechner80 master[19770]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:42 rechner80 master[19771]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:42 rechner80 imap[19770]: executed
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: checkpointing cyrus databases
Dec 12 13:52:42 rechner80 notify[19772]: executed
Dec 12 13:52:42 rechner80 imaps[19771]: executed
Dec 12 13:52:42 rechner80 squatter[19768]: indexing mailboxes
Dec 12 13:52:42 rechner80 squatter[19768]: error opening looking up *: Mailbox does not exist
Dec 12 13:52:42 rechner80 squatter[19768]: done indexing mailboxes
Dec 12 13:52:42 rechner80 master[19747]: process 19768 exited, status 0
Dec 12 13:52:42 rechner80 master[19773]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:42 rechner80 imap[19773]: executed
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving log file: /var/lib/imap/db/log.0000000001
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving log file: /var/lib/imap/db/log.0000000001
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving log file: /var/lib/imap/db/log.0000000001
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving database file: /var/lib/imap/annotations.db
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving database file: /var/lib/imap/mailboxes.db
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: archiving log file: /var/lib/imap/db/log.0000000001
Dec 12 13:52:42 rechner80 ctl_cyrusdb[19769]: done checkpointing cyrus databases
Dec 12 13:52:42 rechner80 master[19747]: process 19769 exited, status 0
Dec 12 13:52:42 rechner80 master[19774]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:42 rechner80 imap[19774]: executed
Dec 12 13:52:44 rechner80 master[19777]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:44 rechner80 master[19778]: about to exec /usr/lib/cyrus-imapd/imapd
Dec 12 13:52:44 rechner80 imap[19777]: executed
Dec 12 13:52:44 rechner80 imap[19778]: executed

Überprüfung erfolgreicher Start

Um zu Überprüfen, ob der Start des cyrus-imapd-Daemons/Dienstes erfolgreich durchgeführt wurden, kann nachfolgender Befehl genutzt werden:

# netstat -tulpen | grep cyrus-master
tcp        0      0 0.0.0.0:24                  0.0.0.0:*                   LISTEN      0          40925      19747/cyrus-master
tcp        0      0 0.0.0.0:4190                0.0.0.0:*                   LISTEN      0          40919      19747/cyrus-master
tcp        0      0 0.0.0.0:993                 0.0.0.0:*                   LISTEN      0          40913      19747/cyrus-master
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      0          40905      19747/cyrus-master

oder auch dieser Befehl:

# service cyrus-imapd status
cyrus-imapd (pid  19747) is running...

Testanmeldung mit imtest

:!: HINWEIS Der nachfolgende Test setzt einen Benutzer im OpenLDAP-Server mit Namen

  • testuser voraus und dessen
  • Passwort muss zwingend im Klartext gespeichert sein !!!

Mit nachfolgendem Befehl wird der Benutzer testuser am Cyrus-IMAP-Mailserver mit Authentifizierung gegen einen OpenLDAP-Server angemeldet.

# imtest -p imap -a testuser -m DIGEST-MD5 localhost
S: * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR COMPRESS=DEFLATE] rechner80.dmz.tachtler.net Cyrus IMAP v2.3.16-Fedora-RPM-2.3.16-6.el6_1.3 server ready
C: A01 AUTHENTICATE DIGEST-MD5
S: + bm9uY2U9IkZkZDRjQUpjeHgvTXo2RkJMYU4xU0cvSGk4SkNWZHFxN3orVnFFY2lzb2s9IixyZWFsbT0idm1sMDAwMDgwLmRtei50YWNodGxlci5uZXQiLHFvcD0iYXV0aCxhdXRoLWludCxhdXRoLWNvbmYiLGNpcGhlcj0icmM0LTQwLHJjNC01NixyYzQsZGVzLDNkZXMiLG1heGJ1Zj00MDk2LGNoYXJzZXQ9dXRmLTgsYWxnb3JpdGhtPW1kNS1zZXNz
Please enter your password:
C: dXNlcm5hbWU9InRlc3R1c2VyIixyZWFsbT0idm1sMDAwMDgwLmRtei50YWNodGxlci5uZXQiLG5vbmNlPSJGZGQ0Y0FKY3h4L016NkZCTGFOMVNHL0hpOEpDVmRxcTd6K1ZxRWNpc29rPSIsY25vbmNlPSIzQkU5N3NPdG10MWQ3VStGalZwRVVWd2NqZG9mN1Y1UUx2eWczK2tyb3FrPSIsbmM9MDAwMDAwMDEscW9wPWF1dGgtY29uZixjaXBoZXI9cmM0LG1heGJ1Zj0xMDI0LGRpZ2VzdC11cmk9ImltYXAvbG9jYWxob3N0IixyZXNwb25zZT0yZjAzYTllZTdlYjZhY2RkMDA4Y2IxZjk3NmE2NmExZQ==
S: + cnNwYXV0aD02ZjBkNWY0ODg2MGMzOWMyZGNmZWY3YTBiODI1Mjk4Mg==
C:
S: A01 OK Success (privacy protection)
Authenticated.
Security strength factor: 128
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED AUTH=DIGEST-MD5 AUTH=CRAM-MD5 COMPRESS=DEFLATE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE SCAN IDLE LISTEXT LIST-SUBSCRIBED X-NETSCAPE URLAUTH
S: C01 OK Completed
c02 logout
* BYE LOGOUT received
c02 OK Completed
Connection closed.

Mailboxen einrichten

Aufgrund der bisher erfolgten Konfiguration, soll nun eine Mailbox (Postfach) eingerichtet werden, welche auch die Nutzung von virtuellen Domains unterstützt. Außerdem wurden, wie schon in der bereits erfolgten Konfiguration durchgeführt, Vorkehrungen getroffen, die auch die Verwendung eines Punktes als Trennzeichen im Benutzernamen erlauben.

Bevor mit der Neuanlage einer Mailbox (Postfach) begonnen werden kann, ist noch zu erwähnen, das hier der shell, oder auch comamnd line Programm

  • cyradm

zu Einsatz kommen soll.

Je nach Konfiguration, ist der Standardbenutzer zum Einsatz für das shell, bzw. comamnd line Programm cyradm ein Benutzer Namens

  • cyrus

:!: HINWEIS - Wenn alle Konfigurationen wie hier bereits beschrieben durchgeführt wurden, erfolgt die Authentifizierung

  • mit der Methode: DIGEST-MD5
  • es muss ein Benutzer cyrus im OpenLDAP
  • mit einem Klartext-Passwort

verfügbar sein!

Eine Anmeldung zur Nutzung des shell, bzw. comamnd line Programms cyradm mit dem Benutzer cyrus, ist daher erforderlich und kann mit nachfolgendem Befehl durchgeführt werden, es erscheint dann ein Prompt:

# cyradm -auth DIGEST-MD5 localhost -user cyrus
Password:
localhost>

Durch die Eingabe des Befehls help wird nachfolgende Auswahl an Befehlen als Abfrageergebnis zurückgeliefert:

# cyradm -auth DIGEST-MD5 localhost -user cyrus
Password:
localhost> help
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

Die Anlage einer Mailbox (Postfach), für den Benutzer klaus, kann nun mit nachfolgendem Befehl durchgeführt werden:

localhost> cm user/klaus@tachtler.net
localhost>

:!: HINWEIS - Es erfolgt keine Meldung für ein positives Ergebnis !!!

Ob die Mailbox (Postfach) tatsächlich angelegt wurde, kann mit nachfolgendem Befehl überprüft werden:

localhost> lm
user/klaus (\HasNoChildren)

Mailboxen Quota einrichten

Eine Anmeldung zur Nutzung des shell, bzw. comamnd line Programms cyradm mit dem Benutzer cyrus, ist auch hier erforderlich und kann mit nachfolgendem Befehl durchgeführt werden, es erscheint dann ein Prompt:

# cyradm -auth DIGEST-MD5 localhost -user cyrus
Password:
localhost>

Zur Überprüfung ob bereits ein Quota (Größenbeschränkung) für die Mailbox (Postfach) besteht, kann der nachfolgende Befehl genutzt werden:

localhost> lq user/klaus@tachtler.net

localhost>

:!: HINWEIS - Eine leere Ausgabe bedeutet, das keine Quota (Größenbeschränkung) für die Mailbox (Postfach) gesetzt ist !!!

Um nun eine Quota (Größenbeschränkung) für die Mailbox (Postfach) einzurichten, kann nachfolgender Befehl genutzt werden:

localhost> sq user/klaus@tachtler.net 1024000
quota:1024000
localhost>

:!: HINWEIS - Die eingerichtete Größenbeschränkung) für die Mailbox (Postfach) einspricht in diesem Beispiel 1 GigaByte !

Zur erneuten Überprüfung ob die Quota (Größenbeschränkung) für die Mailbox (Postfach) jetzt eingerichtet wurde, kann der wieder nachfolgende Befehl genutzt werden:

localhost> lq user/klaus@tachtler.net
 STORAGE 0/1024000 (0%)
localhost>

Mailboxen Ordner einrichten

Eine Anmeldung zur Nutzung des shell, bzw. comamnd line Programms cyradm mit dem Benutzer cyrus, ist auch hier erforderlich und kann mit nachfolgendem Befehl durchgeführt werden, es erscheint dann ein Prompt:

# cyradm -auth DIGEST-MD5 localhost -user cyrus
Password:
localhost>

Um die Mailbox (Postfach) eines Benutzer - hier des Benutzers klaus aufzulisten, kann nachfolgender Befehl genutzt werden:

localhost> lm user/klaus
user/klaus (\HasNoChildren)
localhost>

:!: HINWEIS - Die oben gezeigte Ausgabe offenbart, das keine Ordner innerhalb der Mailbox (Postfach) existieren!

Mit nachfolgendem Befehlen, können nachfolgende Ordner angelegt werden:

  • Entwürfe
  • Gesendete Nachrichten
  • Papierkorb
  • Spam

Hier die Befehel, für den Benutzer klaus:

localhost> cm user/klaus/"Entw&APw-rfe"
localhost> cm user/klaus/"Gesendete Nachrichten"
localhost> cm user/klaus/Papierkorb
localhost> cm user/klaus/Spam

Um die Mailbox (Postfach) und alle Unterordner eines Benutzer - hier des Benutzers klaus aufzulisten, kann nachfolgender Befehl genutzt werden:

localhost> lm user/klaus/*
user/klaus/Entw&APw-rfe (\HasNoChildren)
user/klaus/Gesendete Nachrichten (\HasNoChildren)
user/klaus/Papierkorb (\HasNoChildren)
user/klaus/Spam (\HasNoChildren)
localhost>

Abschließend kann nach dem Verlassen des shell, bzw. comamnd line Programms cyradm mit nachfolgendem Befehl:

localhost> quit

mit ebenfalls nachfolgend gezeigtem Befehl, eine Auflistung der Verzeichnisstruktur des Benutzers - hier klaus, durchgeführt werden:

# ll /var/spool/imap/k/user/klaus
total 28
-rw------- 1 cyrus mail    4 Dec 15 13:00 cyrus.cache
-rw------- 1 cyrus mail  184 Dec 15 13:03 cyrus.header
-rw------- 1 cyrus mail   96 Dec 15 13:00 cyrus.index
drwx------ 2 cyrus mail 4096 Dec 15 13:19 Entw&APw-rfe
drwx------ 2 cyrus mail 4096 Dec 15 13:20 Gesendete Nachrichten
drwx------ 2 cyrus mail 4096 Dec 15 13:20 Papierkorb
drwx------ 2 cyrus mail 4096 Dec 15 13:20 Spam

Mailboxen löschen

Eine Anmeldung zur Nutzung des shell, bzw. comamnd line Programms cyradm mit dem Benutzer cyrus, ist wiederum auch hier erforderlich und kann mit nachfolgendem Befehl durchgeführt werden, es erscheint dann ein Prompt:

# cyradm -auth DIGEST-MD5 localhost -user cyrus
Password:
localhost>

:!: HINWEIS - Damit der Benutzer/Administrator - hier der Benutzer cyrus die Mailbox (Postfach) auch löschen kann, benötigt dieser auch die entsprechenden Rechte zur Durchführung der Aktion.

Dieses Recht kann der Benutzer/Administrator - hier der Benutzer cyrus sich selbst für die Mailbox (Postfach) - hier die des Benutzers klaus mit nachfolgendem Befehl, selbst erteilen:

localhost> sam user/klaus@tachtler.net cyrus all
localhost>

:!: HINWEIS - Auch hier erfolgt keine Meldung für ein positives Ergebnis !!!

Die Abfrage, welche Rechte an der Mailbox (Postfach) des Benutzer klaus vergeben sind, kann mit nachfolgendem Befehl ermittelt werden:

localhost> lam user/klaus@tachtler.net
klaus lrswipkxtecda
cyrus lrswipkxtecda
localhost>

Somit steht dem Befehl, welcher zur Löschung einer Mailbox (Postfach) genutzt werden kann, und dessen erfolgreichen Ausführung, nichts mehr im Wege:

localhost> dm user/klaus@tachtler.net
localhost>

Ob die Mailbox (Postfach) noch existiert, oder tatsächlich gelöscht wurde, kann wiederum mit nachfolgendem Befehl überprüft werden:

localhost> lm
localhost>

:!: HINWEIS - Es sollte keine Mailbox (Postfach) mehr erscheinen!

Problembehebung

Fehler: DBERROR

Falls nachfolge Fehlermeldung im Log

  • /var/log/maillog
...
Feb  1 10:38:34 rechner80 master[574]: about to exec /usr/lib/cyrus-imapd/lmtpd
Feb  1 10:38:34 rechner80 lmtp[574]: executed
Feb  1 10:38:34 rechner80 lmtp[574]: DBERROR db4: Logging region out of memory; you may need to increase its size
Feb  1 10:38:34 rechner80 lmtp[574]: DBERROR: opening /var/lib/imap/deliver.db: Cannot allocate memory
Feb  1 10:38:34 rechner80 lmtp[574]: DBERROR: opening /var/lib/imap/deliver.db: cyrusdb error
Feb  1 10:38:34 rechner80 lmtp[574]: FATAL: lmtpd: unable to init duplicate delivery database
...

erscheinen sollte, bedeutet dies, dass der Standardwert für die Größe des cache Speichers der Log-Meldungen zu klein ist.

Mit nachfolgendem Befehl, kann die Standardgröße des Speichers für die Log-Meldungen abgefragt werden:

# db_stat -h /var/lib/imap/db -l | grep "region size"
96KB	Log region size 

:!: HINWEIS - Die Standardgröße beträgt hier nur 96 KiloByte (96.000 Byte) !!!

Zusätzlich kann mit nachfolgendem Befehl, noch die

  • Gesamte cache Speichergröße

und die

  • Pool bezogene Speichergröße

ermittelt werden. Auch diese Werte sind relativ knapp bemessen!

# db_stat -h /var/lib/imap/db -m | grep -i "cache size"
642KB 24B	Total cache size
648KB	Pool individual cache size

Fehler: DBERROR - Lösung

Abhilfe für dieses Problem, kann durch anlegen einer Konfigurationsdatei im Verzeichnis

  • /var/lib/imap/db

mit dem Namen

  • DB_CONFIG

geschaffen werden.

In diese neu anzulegende Konfigurationsdatei sind z.B. nachfolgende Konfigurationen einzutragen: (komplette Konfigurationsdatei)

set_cachesize 0 2097152 1
set_lg_regionmax 1048576

Diese Einträge erhöhen die nachfolgenden Werte wie folgt:

  • Gesamte cache Speichergröße auf 2 MB
  • Pool bezogene Speichergröße auf 2 MB
  • Log Speichergröße auf 1 MB

Um die neuen cache Speichergrößen zu aktivieren, ist nur eine Neustart des Cyrus erforderlich, was mit nachfolgendem Befehl erfolgen kann:

# service cyrus-imapd restart
Shutting down cyrus-imapd:                                 [  OK  ]
Exporting cyrus-imapd databases:                           [  OK  ]
Importing cyrus-imapd databases:                           [  OK  ]
Starting cyrus-imapd:                                      [  OK  ]

Anschließend können die nachfolgenden Befehle erneut abgefragt werden und eine Ausgabe, wie die nachfolgende, sollte dann erscheinen. (alle Befehle)

# cat /var/lib/imap/db/DB_CONFIG 
set_cachesize 0 2097152 1
set_lg_regionmax 1048576
# db_stat -h /var/lib/imap/db -l | grep "region size"
1MB 32KB	Log region size
# db_stat -h /var/lib/imap/db -m | grep -i "cache size"
2MB 514KB 24B	Total cache size
2MB 520KB	Pool individual cache size

Fehler: Quota inkorrekt

Falls die Quota-Berechnung nach z.B. einem restore nicht mehr stimmen sollte, kann dies mit nachfolgendem Befehl überprüft werden:

Als Beispiel ist hier der Benutzer klaus mit einem Postfach das in Wirklichkeit zu ca. 5% ausgelastet ist, falsch berechnet und zeigt nur ca. 0,24% an, was mit nachfolgender Abfrage überprüft werden kann:

cat /var/lib/imap/quota/k/user.klaus
236170
1024000

Fehler: Quota inkorrekt - Lösung

Nachfolgender Befehl korrigiert die Quota-Berechnung:

# /usr/lib/cyrus-imapd/quota -f
user.klaus: usage was 236170, now 53050155
   Quota   % Used     Used Root
 1024000        5    51806 user/klaus
 1024000        2    20540 user/petra
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/cyrus_centos_6.1415712962.txt.gz · Zuletzt geändert: 2014/11/11 14:36 von klaus