Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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] djangocentos:mailserver:der_cyrus_imap-server [20.04.2018 10:34. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 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  -                               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. 
 +
  
  • centos/mailserver/der_cyrus_imap-server.txt
  • Zuletzt geändert: 20.04.2018 10:34.
  • von 127.0.0.1