Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
centos:mailserver:der_cyrus_imap-server [08.12.2011 14:56. ] – [imapd.conf] django | centos:mailserver:der_cyrus_imap-server [20.04.2018 10:34. ] (aktuell) – Externe Bearbeitung 127.0.0.1 |
---|
| ====== Der Cyrus Hochleistungs-Mailserver mit Unterstützung für IMAP und SIEVE ====== |
| {{:centos:cyrus.jpg?100|Cyrus-Logo }} |
| |
| Der eMail-Server **//Cyrus//** ist ein Open-Source-Projekt der Carnegie Mellon University, welches ursprünglich für das Campus-Mail-System der Universität entwickelt wurde. In der Zwischenzeit ist er jedoch ein anerkannter und auch im professionellen Bereich eingesetzter MDA((**M**ail **D**elivery **A**gent)). Er unterstützt neben dem **POP3**((**P**ost **O**ffice **P**rotokoll 3)) auch das Protokoll **IMAP**((**I**nternet **M**essage **A**ccess **P**rotokoll)), auf welches wir in der weiteren Dokumentation weiter eingehen werden. **Cyrus** arbeitet mit diversen SMTP-Servern unter Linux/Unix zusammen und ist für das Zusammenspiel mit unserem Mailserver [[centos:mailserver:start|Postfix]] bestens gerüstet. Cyrus benutzt die //**Cyrus SASL Library**// - eine Implementierung von SASL - um mehrere Authentifizierungsmethoden zur Verfügung stellen zu können, wie z.B. Plain, CRAM-MD5, Digest-MD5, oder PAM. |
| |
| Über das Anwendungsprotokoll IMAP erlaubt der Cyrus-Server den Benutzern die Verwaltung von empfangenen E-Mails, die sich in einem Postfach auf dem Mailserver befinden. IMAP wurde im Jahr 1986 entworfen, um den Zugriff auf Mailboxen und Nachrichten so bereitzustellen, als befänden sich diese auf dem lokalen Rechner. Im Gegensatz zu POP3 verbleiben die eMails aber auf dem Mailserver und werden dort verwaltet. Für das Versenden der Nachrichten wird das Protokoll SMTP verwendet. Zur Kommunikation mit dem IMAP-Server horcht der Server auf dem **Port 143**. Die Definition von IMAP ist im RFC 3501 definiert worden. |
| ===== Installation ===== |
| Die Installation unseres MDA nutzen wir **yum**. |
| # yum install cyrus-imapd |
| Neben dem eigentlichen Programmpaket **cyrus-imapd** kommen noch die beiden Pakete **cyrus-imapd-perl** und **cyrus-imapd-utils** zur Verwendung. |
| Was uns das Programmpaket **cyrus-imapd** mitbringt entnehmen wir dem RPM. |
| <code># rpm -iql cyrus-imapd |
| Name : cyrus-imapd Relocations: (not relocatable) |
| ... |
| |
| ... |
| URL : http://asg.web.cmu.edu/cyrus/imapd/ |
| Summary : Ein Hochleistungs-Mailserver mit Unterstützung für IMAP, POP3, NNTP und SIEVE |
| 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 filesystem 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/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_expire |
| /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/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/rpm_set_permissions |
| /usr/lib/cyrus-imapd/sievec |
| /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/upd_groupcache |
| /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.7 |
| /usr/share/doc/cyrus-imapd-2.3.7/COPYRIGHT |
| /usr/share/doc/cyrus-imapd-2.3.7/README |
| /usr/share/doc/cyrus-imapd-2.3.7/README.HOWTO-recover-mailboxes.db |
| /usr/share/doc/cyrus-imapd-2.3.7/README.RPM |
| /usr/share/doc/cyrus-imapd-2.3.7/README.autocreate |
| /usr/share/doc/cyrus-imapd-2.3.7/README.autosievefolder |
| /usr/share/doc/cyrus-imapd-2.3.7/README.groupcache |
| /usr/share/doc/cyrus-imapd-2.3.7/README.skiplist_recovery |
| /usr/share/doc/cyrus-imapd-2.3.7/altnamespace.html |
| /usr/share/doc/cyrus-imapd-2.3.7/anoncvs.html |
| /usr/share/doc/cyrus-imapd-2.3.7/bugs.html |
| /usr/share/doc/cyrus-imapd-2.3.7/changes.html |
| /usr/share/doc/cyrus-imapd-2.3.7/conf |
| /usr/share/doc/cyrus-imapd-2.3.7/conf/cmu-backend.conf |
| /usr/share/doc/cyrus-imapd-2.3.7/conf/cmu-frontend.conf |
| /usr/share/doc/cyrus-imapd-2.3.7/conf/normal.conf |
| /usr/share/doc/cyrus-imapd-2.3.7/conf/prefork.conf |
| /usr/share/doc/cyrus-imapd-2.3.7/conf/small.conf |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/README |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/batchreconstruct |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/bsd2cyrus |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/cpmsg |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/cyrus_ldap_quota |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/cyrus_sharedbackup-0.1.tar.gz |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/folderxfer |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/imapcreate |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/inboxfer |
| /usr/share/doc/cyrus-imapd-2.3.7/contrib/skiplist.py |
| /usr/share/doc/cyrus-imapd-2.3.7/cyrusv2.mc |
| /usr/share/doc/cyrus-imapd-2.3.7/faq.html |
| /usr/share/doc/cyrus-imapd-2.3.7/feedback.html |
| /usr/share/doc/cyrus-imapd-2.3.7/index.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-admin-mb.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-auth.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-compile.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-configure.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-murder.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-netnews.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-perf.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-prereq.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-replication.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-sieve.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-snmpmon.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-testing.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-upgrade.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install-virtdomains.html |
| /usr/share/doc/cyrus-imapd-2.3.7/install.html |
| /usr/share/doc/cyrus-imapd-2.3.7/internal |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/bytecode |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/database-formats.html |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/hacking |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/internationalization.html |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/locking |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/mailbox-format.html |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/master-state-machine.fig |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/prot-events |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/prot.html |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/replication_examples |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/replication_protocol |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/specials |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/uuid |
| /usr/share/doc/cyrus-imapd-2.3.7/internal/var_directory_structure |
| /usr/share/doc/cyrus-imapd-2.3.7/m4 |
| /usr/share/doc/cyrus-imapd-2.3.7/m4/cyrus-imapd-procmail+cyrus.mc |
| /usr/share/doc/cyrus-imapd-2.3.7/m4/cyrus-imapd-sendmail-8.12.9-cyrusv2.m4 |
| /usr/share/doc/cyrus-imapd-2.3.7/m4/cyrus-procmailrc |
| /usr/share/doc/cyrus-imapd-2.3.7/m4/cyrus-user-procmailrc.template |
| /usr/share/doc/cyrus-imapd-2.3.7/mailing-list.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man |
| /usr/share/doc/cyrus-imapd-2.3.7/man.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/arbitron.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/chk_cyrus.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/ctl_cyrusdb.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/ctl_deliver.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/ctl_mboxlist.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cvt_cyrusdb.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cyr_expire.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cyradm.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cyrfetchnews.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cyrus-master.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/cyrus.conf.5.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/deliver.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/fud.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/idled.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/imapd.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/imapd.conf.5.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/imclient.3.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/imtest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/installsieve.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/ipurge.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/krb.equiv.5.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/lmtpd.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/lmtptest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/make_md5.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/mbexamine.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/mbpath.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/mupdatetest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/nntpd.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/nntptest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/notifyd.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/pop3d.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/pop3test.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/quota.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/reconstruct.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/rmnews.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/sieveshell.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/sivtest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/smmapd.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/smtptest.1.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/squatter.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/sync_client.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/sync_reset.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/sync_server.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/timsieved.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/tls_prune.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/man/unexpunge.8.html |
| /usr/share/doc/cyrus-imapd-2.3.7/murder.fig |
| /usr/share/doc/cyrus-imapd-2.3.7/murder.png |
| /usr/share/doc/cyrus-imapd-2.3.7/netnews.fig |
| /usr/share/doc/cyrus-imapd-2.3.7/netnews.png |
| /usr/share/doc/cyrus-imapd-2.3.7/notes.html |
| /usr/share/doc/cyrus-imapd-2.3.7/os.html |
| /usr/share/doc/cyrus-imapd-2.3.7/overview.html |
| /usr/share/doc/cyrus-imapd-2.3.7/questions.html |
| /usr/share/doc/cyrus-imapd-2.3.7/readme.html |
| /usr/share/doc/cyrus-imapd-2.3.7/sieve-protocol.html |
| /usr/share/doc/cyrus-imapd-2.3.7/sieve.html |
| /usr/share/doc/cyrus-imapd-2.3.7/specs.html |
| /usr/share/doc/cyrus-imapd-2.3.7/text |
| /usr/share/doc/cyrus-imapd-2.3.7/text/altnamespace |
| /usr/share/doc/cyrus-imapd-2.3.7/text/anoncvs |
| /usr/share/doc/cyrus-imapd-2.3.7/text/bugs |
| /usr/share/doc/cyrus-imapd-2.3.7/text/changes |
| /usr/share/doc/cyrus-imapd-2.3.7/text/faq |
| /usr/share/doc/cyrus-imapd-2.3.7/text/feedback |
| /usr/share/doc/cyrus-imapd-2.3.7/text/index |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-admin-mb |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-auth |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-compile |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-configure |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-murder |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-netnews |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-perf |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-prereq |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-replication |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-sieve |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-snmpmon |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-testing |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-upgrade |
| /usr/share/doc/cyrus-imapd-2.3.7/text/install-virtdomains |
| /usr/share/doc/cyrus-imapd-2.3.7/text/mailing-list |
| /usr/share/doc/cyrus-imapd-2.3.7/text/man |
| /usr/share/doc/cyrus-imapd-2.3.7/text/notes |
| /usr/share/doc/cyrus-imapd-2.3.7/text/os |
| /usr/share/doc/cyrus-imapd-2.3.7/text/overview |
| /usr/share/doc/cyrus-imapd-2.3.7/text/questions |
| /usr/share/doc/cyrus-imapd-2.3.7/text/readme |
| /usr/share/doc/cyrus-imapd-2.3.7/text/sieve |
| /usr/share/doc/cyrus-imapd-2.3.7/text/sieve-protocol |
| /usr/share/doc/cyrus-imapd-2.3.7/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_expire.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.8.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/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.8.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/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</code> |
| ===== Konfiguration ===== |
| ==== imapd.conf ==== |
| In der Konfigurationsdatei **/etc/imapd.conf** werden das Verhalten und die Verzeichnis(strukturen) des IMAP-Servers definiert. Mit dem Editor unserer Wahl bearbeiten und ergänzen wir die vom RPM mitgebrachten Defaultwerte. |
| # vim /etc/imapd.conf |
| <file bash /etc/imapd.conf># Konfigurationsverzeichnis der IMAP-Servers, in dem die Informationen |
| # wie die Berechtigungen, Quotas, und Informationen übder die |
| # Mailboxen gespeichert |
| configdirectory: /var/lib/imap |
| |
| # Die Default-Partition, in der alle neuen User angelegt werden |
| partition-default: /var/spool/imap |
| |
| # postmaster, gibt den Postmaster an, also den E-Mail Administrator. |
| postmaster: postmaster |
| |
| # Der Benutzer mit den Administratoren-Rechten |
| admins: cyrus |
| |
| # Sieve ist ein Filter, mit dem Nachrichten automatisch bei der |
| # zustellung in verschiedene Postfächer / Ordner einsortiert. |
| sievedir: /var/lib/imap/sieve |
| |
| # anonymen Benutzerzugang sperren, bedeutet, wie der Name schon sagt, |
| # dass sich alle Benutzer authentifizieren müssen. |
| allowanonymouslogin: no |
| |
| # Pfadangaben zu sendmail. Sieve verschickt über den Befehl sendmail |
| # Reject-, Redirect- und Vacation-Nachrichten |
| sendmail: /usr/sbin/sendmail |
| |
| hashimapspool: true |
| |
| # Passwörter mittels saslauth überprüfen |
| sasl_pwcheck_method: saslauthd |
| sasl_mech_list: PLAIN |
| |
| # Die default domain für den virtuellen Domain Support |
| defaultdomain: nausch.org |
| |
| # lmtpd gibt einen permanenten Fehlercode zurück, wenn die Quota einer |
| # User-Mailbox ausgereizt wurde. |
| lmtp_overquota_perm_failure: true |
| |
| # lmtpd konvertiert automatisch Empfängeradressen in Kleinbuchstaben |
| lmtp_downcase_rcpt: true |
| |
| # Ein Wert größer als Null setzt einen Quota. Ein Wert der nicht 0 ist, |
| # erlaubt dem Benutzer das anlegen seiner eigenen INBOX |
| autocreatequota: 1024000 |
| |
| # Postfach wird angelegt, wenn per lmtpd eine Nachricht angeliefert wird, |
| # für die noch kein Inbox besteht |
| createonpost: true |
| |
| # 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 |
| |
| # Ist diese Option auf " yes" gesetzt, würde Cyrus keine E-Mails im |
| # 8 Bit Format annehmen. Ist sie auf "no", so wandelt Cyrus die |
| # Zeichen in 7 Bit um. |
| reject8bit: no |
| |
| # Sobald 90% der Quota erreicht ist, gibt der Server Warnmeldungen aus |
| quotawarn: 90 |
| |
| # Nach 30 Sekunden IMAP-Untätigkeit den Benutzer automatisch abmelden |
| timeout: 30 |
| |
| # Normalerweise trennt Cyrus IMAP Ordern mit einem ".". Mit der Option: |
| # "unixhierarchysep", kann man die Ordner mit einem "/" trennen lassen. |
| # Wichtig wird diese Option sobald Benutzernamen Punkte enthalten. |
| unixhierarchysep: true |
| |
| # Konvertieren der Usernamen in Kleinbuchstaben vor dem Login/Authentifizierung |
| username_tolower: true |
| |
| # Virtuellen Domain Supprt aktivieren |
| virtdomains: yes |
| |
| # TLS-Einstellungen bei Bedarf aktivieren |
| # Kommentarzeichen entfernen und Zertifikate generieren |
| #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 |
| </file> |
| |
| ==== cyrus.conf ==== |
| In der Konfigurationsdatei **/etc/cyrus.conf** wird der Cyrus-Master-Server konfiguriert und festgelegt, welche Dienste der Server anbieten soll. Mit unserem Standardeditor bearbeiten wir diese Datei und deaktivieren alle ungewollten Dienste. |
| # vim /etc/cyrus.conf |
| <file bash /etc/cyrus.conf># standard standalone server implementation |
| |
| START { |
| # do not delete this entry! |
| recover cmd="ctl_cyrusdb -r" |
| |
| # this is only necessary if using idled for IMAP IDLE |
| idled cmd="idled" |
| } |
| |
| # 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 |
| # nachfolgende drei Zeilen deaktiviert, da wir "nur" imap und sieve nutzen wollen und werden |
| # am 05.02.09 durch Django |
| # imaps cmd="imapd -s" listen="imaps" prefork=1 |
| # pop3 cmd="pop3d" listen="pop3" prefork=3 |
| # 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 |
| # lmtp cmd="lmtpd" listen="lmtp" prefork=0 |
| lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1 |
| |
| # this is only necessary if using notifications |
| # aktiviert am 05.02.09 durch Django wegen, ja wegen was eigentlich? |
| notify cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1 |
| } |
| |
| 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 |
| |
| # eingefügt am 05.02.09 durch Django, wegen was genau? ;) |
| # squat it |
| squatter cmd="squatter -r *" period=30 |
| } |
| </file> |
| ==== Postfix ==== |
| === master.conf === |
| In der **/etc/postfix/master.cf** ist für cyrus mit der Zustellmethode **deliver** bereits alles vorbereitet. |
| <code># # vim /etc/postfix/master.cf |
| |
| # Cyrus 2.1.5 (Amos Gouaux) |
| # Also specify in main.cf: cyrus_destination_recipient_limit=1 |
| cyrus unix - n n - - pipe |
| user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user} |
| ... |
| </code> |
| === main.cf === |
| In der **/etc/postfix/main.cf** ändern wir nunmehr folgende Optionen ab. |
| <code># vim /etc/postfix/main.cf |
| |
| ... |
| ### für cyrus aktiviert am 07.02.09 |
| mailbox_transport = cyrus |
| cyrus_destination_recipient_limit=1 |
| ... |
| |
| ... |
| |
| ### für cyrus aktiviert am 07.02.09 |
| relay_domains = $mydestination |
| ... |
| </code> |
| Ein anschließender **service postfix restart** setzt den neuen Zustellprozess in Richtung **cyrus-imapd** in Bewegung. |
| <code>Feb 7 21:33:54 nss postfix/smtpd[11549]: connect from mail-out.m-online.net[212.18.0.10] |
| Feb 7 21:33:55 nss postfix/policyd-weight[10094]: weighted check: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .mnet-mail. - helo: .mail-out.m-online. - helo-domain: .m-online.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; <client=212.18.0.10> <helo=mail-out.m-online.net> <from=django@mnet-mail.de> <to=michael@nausch.org>; rate: -8.5 |
| Feb 7 21:33:55 nss postfix/policyd-weight[10094]: decided action=PREPEND X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .mnet-mail. - helo: .mail-out.m-online. - helo-domain: .m-online.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -8.5; <client=212.18.0.10> <helo=mail-out.m-online.net> <from=django@mnet-mail.de> <to=michael@nausch.org>; delay: 0s |
| Feb 7 21:33:55 nss postgrey[5913]: action=pass, reason=triplet found, client_name=mail-out.m-online.net, client_address=212.18.0.10, sender=django@mnet-mail.de, recipient=michael@nausch.org |
| Feb 7 21:33:55 nss postgrey[5913]: cleaning up old logs... |
| Feb 7 21:33:55 nss postfix/smtpd[11549]: NOQUEUE: client=mail-out.m-online.net[212.18.0.10] |
| Feb 7 21:33:55 nss amavis[16872]: (16872-15) ESMTP::10024 /var/amavis/tmp/amavis-20090207T153554-16872: <django@mnet-mail.de> -> <michael@nausch.org> SIZE=1515 BODY=7BIT Received: from mx1.nausch.org ([127.0.0.1]) by localhost (amavis.nausch.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP for <michael@nausch.org>; Sat, 7 Feb 2009 21:33:55 +0100 (CET) |
| Feb 7 21:33:55 nss amavis[16872]: (16872-15) Actual message size 1933 B greater than the declared 1515 B |
| Feb 7 21:33:55 nss amavis[16872]: (16872-15) Checking: zsKnoq9aUnu9 [212.18.0.10] <django@mnet-mail.de> -> <michael@nausch.org> |
| Feb 7 21:33:55 nss amavis[16872]: (16872-15) p001 1 Content-Type: text/plain, size: 20 B, name: |
| Feb 7 21:33:56 nss postfix/smtpd[11590]: connect from localhost.localdomain[127.0.0.1] |
| Feb 7 21:33:56 nss postfix/smtpd[11590]: 6921311587C5: client=mail-out.m-online.net[212.18.0.10] |
| Feb 7 21:33:56 nss postfix/cleanup[11591]: 6921311587C5: message-id=<20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de> |
| Feb 7 21:33:56 nss postfix/smtpd[11590]: disconnect from localhost.localdomain[127.0.0.1] |
| Feb 7 21:33:56 nss postfix/qmgr[10037]: 6921311587C5: from=<django@mnet-mail.de>, size=2376, nrcpt=1 (queue active) |
| Feb 7 21:33:56 nss amavis[16872]: (16872-15) FWD via SMTP: <django@mnet-mail.de> -> <michael@nausch.org>,BODY=7BIT 250 2.6.0 Ok, id=16872-15, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6921311587C5 |
| Feb 7 21:33:56 nss amavis[16872]: (16872-15) Passed CLEAN, [212.18.0.10] [88.217.187.21] <django@mnet-mail.de> -> <michael@nausch.org>, Message-ID: <20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de>, mail_id: zsKnoq9aUnu9, Hits: 0.685, size: 1933, queued_as: 6921311587C5, 479 ms |
| Feb 7 21:33:56 nss postfix/smtpd[11549]: disconnect from mail-out.m-online.net[212.18.0.10] |
| Feb 7 21:33:56 nss amavis[16872]: (16872-15) TIMING [total 483 ms] - SMTP greeting: 2 (0%)0, SMTP EHLO: 0 (0%)0, SMTP pre-MAIL: 0 (0%)0, SMTP pre-DATA-flush: 2 (0%)1, SMTP DATA: 14 (3%)4, check_init: 1 (0%)4, digest_hdr: 0 (0%)4, digest_body: 0 (0%)4, gen_mail_id: 0 (0%)4, mime_decode: 6 (1%)6, get-file-type1: 9 (2%)7, decompose_part: 1 (0%)8, parts_decode: 0 (0%)8, check_header: 2 (0%)8, AV-scan-1: 2 (0%)9, spam-wb-list: 1 (0%)9, SA parse: 3 (1%)9, SA check: 393 (81%)91, update_cache: 5 (1%)92, decide_mail_destiny: 1 (0%)92, fwd-connect: 12 (3%)94, fwd-xforward: 0 (0%)94, fwd-mail-pip: 8 (2%)96, fwd-rcpt-pip: 0 (0%)96, fwd-data-chkpnt: 0 (0%)96, write-header: 1 (0%)96, fwd-data-contents: 0 (0%)96, fwd-end-chkpnt: 7 (1%)98, prepare-dsn: 1 (0%)98, main_log_entry: 7 (2%)99, update_snmp: 1 (0%)100, SMTP pre-response: 0 (0%)100, SMTP response: 1 (0%)100, unlink-1-files: 0 (0%)100, rundown: 0 (0%)100 |
| Feb 7 21:33:56 nss lmtpunix[27033]: accepted connection |
| Feb 7 21:33:56 nss lmtpunix[27033]: lmtp connection preauth'd as postman |
| Feb 7 21:33:56 nss master[11595]: about to exec /usr/lib/cyrus-imapd/lmtpd |
| Feb 7 21:33:56 nss lmtpunix[11595]: executed |
| Feb 7 21:33:56 nss lmtpunix[27033]: IOERROR: fstating sieve script /var/lib/imap/sieve/b/bigchief/defaultbc: No such file or directory |
| Feb 7 21:33:56 nss lmtpunix[27033]: duplicate_check: <20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de> user.bigchief 0 |
| Feb 7 21:33:56 nss lmtpunix[27033]: duplicate_check: <20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de> user.bigchief 0 |
| Feb 7 21:33:56 nss lmtpunix[27033]: mystore: starting txn 2147483651 |
| Feb 7 21:33:56 nss lmtpunix[27033]: mystore: committing txn 2147483651 |
| Feb 7 21:33:56 nss lmtpunix[27033]: duplicate_mark: <20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de> user.bigchief 1234038836 3086757888 |
| Feb 7 21:33:56 nss lmtpunix[27033]: Delivered: <20090207213353.lo18hy6z6s8ow8c8@webmail.mnet-online.de> to mailbox: user.bigchief |
| Feb 7 21:33:56 nss postfix/pipe[11593]: 6921311587C5: to=<bigchief@nausch.org>, orig_to=<michael@nausch.org>, relay=cyrus, delay=0.1, delays=0.01/0.01/0/0.08, dsn=2.0.0, status=sent (delivered via cyrus service) |
| Feb 7 21:33:56 nss postfix/qmgr[10037]: 6921311587C5: removed</code> |
| |
| ===== Programmstart ===== |
| In RPM wird uns ein Startupscript mitgeliefert - über dieses starten wir unseren IMAP-Server. |
| # service cyrus-imapd start |
| cyrus-imapd Datenbanken importieren: [ OK ] |
| cyrus-imapd starten: [ OK ] |
| Ein Test offenbart uns, ob der Server läuft. |
| <code># lsof -i tcp:imap2 |
| COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME |
| cyrus-mas 8008 cyrus 11u IPv6 2128031 TCP *:imap (LISTEN) |
| cyrus-mas 8008 cyrus 14u IPv4 2128033 TCP *:imap (LISTEN) |
| imapd 8020 cyrus 4u IPv6 2128031 TCP *:imap (LISTEN) |
| imapd 8024 cyrus 4u IPv4 2128033 TCP *:imap (LISTEN) |
| imapd 8052 cyrus 4u IPv6 2128031 TCP *:imap (LISTEN) |
| imapd 8053 cyrus 4u IPv4 2128033 TCP *:imap (LISTEN) |
| imapd 8094 cyrus 4u IPv6 2128031 TCP *:imap (LISTEN) |
| imapd 8095 cyrus 4u IPv6 2128031 TCP *:imap (LISTEN) |
| imapd 8096 cyrus 4u IPv6 2128031 TCP *:imap (LISTEN) |
| imapd 8097 cyrus 4u IPv4 2128033 TCP *:imap (LISTEN) |
| imapd 8098 cyrus 4u IPv4 2128033 TCP *:imap (LISTEN) |
| imapd 8099 cyrus 4u IPv4 2128033 TCP *:imap (LISTEN)</code> |
| Übder den Port **143** bzw. der Angabe **imap2** können wir via telnet mit unseren IMAP-Server verbinden. |
| <code># telnet nss imap2 |
| Trying ::1... |
| Connected to nss.nausch.org (::1). |
| Escape character is '^]'. |
| * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID] nss.nausch.org Cyrus IMAP4 v2.3.7-Invoca-RPM-2.3.7-2.el5 server ready |
| ^] |
| telnet> quit |
| Connection closed.</code> |
| ===== automatisches Starten des Dienste beim Systemstart ===== |
| Damit der imap2-Daemon automatisch bei jedem Systemstart startet kann die Einrichtung des Start-Scriptes über folgenden Befehle erreicht werden: |
| # chkconfig cyrus-imapd on |
| Die Überprüfungung ob der IMAP-Server wirklich bei jedem Systemstart automatisch mit gestartet werden, erfolgt durch: |
| # chkconfig --list | grep imap |
| cyrus-imapd 0:Aus 1:Aus 2:Ein 3:Ein 4:Ein 5:Ein 6:Aus |
| ===== System-/Logintest mit imtest ===== |
| Mit dem Programm **imtest** aus dem Paket **//cyrus-imapd-utils//** können wir den Zugriff auf unseren IMAP-Server testen. |
| <code>[luser@nss ~]$ imtest imap |
| S: * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID] nss.nausch.org Cyrus IMAP4 v2.3.7-Invoca-RPM-2.3.7-2.el5 server ready |
| C: C01 CAPABILITY |
| S: * CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID 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 IDLE LISTEXT LIST-SUBSCRIBED X-NETSCAPE URLAUTH |
| S: C01 OK Completed |
| Please enter your password: |
| C: L01 LOGIN luser {12} |
| S: + go ahead |
| C: <omitted> |
| S: L01 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED 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 IDLE LISTEXT LIST-SUBSCRIBED X-NETSCAPE URLAUTH] User logged in |
| Authenticated. |
| Security strength factor: 0 |
| C: logout |
| * BYE LOGOUT received |
| C: OK Completed |
| Connection closed.</code> |
| ===== Cyrus-Administration ===== |
| ==== cyradm ==== |
| Zur Verwaltung unserer Mailboxen steht und **cyradm** aus dem Paket **cyrus-imapd-utils** zur Verfügung. Dank unserer Systemvorgaben in der **// /etc/imapd.conf//** beschränkt sich jedoch die Arbeit hier auf sehr sehr wenig. |
| |
| Gestartet wird der Zuzgang von der Konsole über: |
| <code># cyradm -auth login nausch.org -user cyrus |
| IMAP Password: |
| nausch.org> </code> |
| Die Authentifizierung läuft dabei via **saslauth** gegen unseren **LDAP**-Server. |
| Eine Übersicht der möglichen Befehle erhält man durch Eingabe von **help** oder einem **?**. |
| <code>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</code> |
| Wollte man eine neue Mailbox selber anlegen so benutzt man **cm** oder **createmailbox**. |
| nausch.org> cm user/username |
| Dies brauchen wir ja nicht per Hand erledigen, da dies automatisch passiert, sobald eine eMail von Postfix an den Cyrus-IMAP-Server übergeben wird, oder sich der User mit dem IMAP-server verbindet. |
| Damit eine Mailbox gelöscht werden kann, muss zuerst die Berechtigung für den Administrator **cyrus** übergeben werden. |
| nausch.org> sam user/testuser cyrus all |
| nausch.org> dm user/testuser |
| Die Quota einer Mailbox frägt man mittels **lq** ab. |
| nausch.org> lq user/django |
| STORAGE 682958/2048000 (33.34755859375%) |
| Verändert wird die Quota mittels **sq**. |
| <code>nausch.org> sq user/django 4096000 |
| quota:4096000 |
| nausch.org> lq user/django |
| STORAGE 682963/4096000 (16.6739013671875%)</code> |
| |
| ==== GUIs für cyradm ==== |
| Als mögliche Alternative könnte man auch [[http://www.web-cyradm.org/|Web-cyradm]] oder [[http://openmailadmin.ossdl.de/|Openmailadmin]] verwenden. Doch eigentlich ist das für unseren Anwendungsfall eher nur ein Gimmick und Dank unserer Konfigurationsoptionen in der **/etc/imapd.conf** brauchen wir derartigen Overhead gar nicht. |
| |
| |