Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c7:dovecot_7 [30.07.2014 21:34. ] – angelegt django | centos:mail_c7:dovecot_7 [22.07.2019 15:04. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Dovecot, Shared Folder und Shared Namespace ====== | ====== Dovecot, Shared Folder und Shared Namespace ====== | ||
+ | {{: | ||
+ | ===== Grundlegende Informationen ===== | ||
+ | Für Benutzergruppen und **TEAM**s((**T**oll **E**in **A**nderer **M**achts)) werden desöfteren gemeinsam genutzte Mailaccounts angefragt. Bei diesen Mailaccounts hat jeder der Beteiligten die Nutzerdaten, | ||
+ | |||
+ | Als Alternative zu diesen gemeinsam genutzten Mailkonten gibt es eine weitere Möglichkeit, | ||
+ | Auch für Vertreterregelungen können vertrauenswürdige Personen Zugriff auf den eigenen Posteingang erhalten, die Nachrichten darin vorzusortieren, | ||
+ | |||
+ | ===== Konfiguration ===== | ||
+ | Damit unsere Nutzer unseres Dovecot-Servers diese gemeinsam genutzten Ordner nutzen können, müssen wir die Funktion **//shared folders//** noch konfigurieren. | ||
+ | ==== Dictionary ==== | ||
+ | Die Information, | ||
+ | - **Rechte** Der virtuelle User **vmail** hat bereits alle Rechte an dem Verzeichnis. Wir müssen also nicht extra Rechte an einem anderen bestehenden Verzeichnis " | ||
+ | - **Backup** Da wir das Verzeichnis // | ||
+ | |||
+ | <WRAP center round tip> | ||
+ | Wir verzichten daher auf die Einrichtungen eines separaten Verzeichnisses, | ||
+ | </ | ||
+ | |||
+ | Damit Dovecot nun weiß wo das zentrale Dictionary zu finden ist, tragen wir diese Information in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <file / | ||
+ | ## Mailbox access control lists. | ||
+ | ## | ||
+ | |||
+ | # vfile backend reads ACLs from " | ||
+ | # You can also optionally give a global ACL directory path where ACLs are | ||
+ | # applied to all users' mailboxes. The global ACL directory contains | ||
+ | # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter | ||
+ | # specifies how many seconds to wait between stat()ing dovecot-acl file | ||
+ | # to see if it changed. | ||
+ | plugin { | ||
+ | # Django : 2014-08-08 | ||
+ | # default: #acl = vfile:/ | ||
+ | acl = vfile | ||
+ | } | ||
+ | |||
+ | # To let users LIST mailboxes shared by other users, Dovecot needs a | ||
+ | # shared mailbox dictionary. For example: | ||
+ | plugin { | ||
+ | # Django : 2014-08-08 | ||
+ | # default: # | ||
+ | acl_shared_dict = file:/ | ||
+ | } | ||
+ | </ | ||
+ | ==== Socket für userdb Anfragen ==== | ||
+ | Meldet sich ein Nutzer bei unserem Dovecot-Server an, muss der IMAP-Prozess dieses Nutzers über eine **userdb**-Anfrage das Homeverzeichnis desjenigen Nutzers in Erfahrung bringen, der eines seiner Verzeichnisse teilt. Hierzu tragen wir die nötigen Informationen in der Konfigurationsdatei // | ||
+ | |||
+ | # vim / | ||
+ | <code bash> | ||
+ | |||
+ | service auth { | ||
+ | # auth_socket_path points to this userdb socket by default. It's typically | ||
+ | # used by dovecot-lda, | ||
+ | # full permissions to this socket are able to get a list of all usernames and | ||
+ | # get the results of everyone' | ||
+ | # | ||
+ | # The default 0666 mode allows anyone to connect to the socket, but the | ||
+ | # userdb lookups will succeed only if the userdb returns an " | ||
+ | # matches the caller process' | ||
+ | # socket' | ||
+ | # | ||
+ | # To give the caller full permissions to lookup all users, set the mode to | ||
+ | # something else than 0666 and Dovecot lets the kernel enforce the | ||
+ | # permissions (e.g. 0777 allows everyone full permissions). | ||
+ | unix_listener auth-userdb { | ||
+ | # Django : 2014-08-08 | ||
+ | # Authentication Socket für userdb-Anfragen bei Nutzung von shared folders | ||
+ | # default: #mode = 0666 | ||
+ | # #user = | ||
+ | # #group = | ||
+ | user = vmail | ||
+ | group = vmail | ||
+ | } | ||
+ | |||
+ | # Postfix smtp-auth | ||
+ | # | ||
+ | # mode = 0666 | ||
+ | #} | ||
+ | |||
+ | # Auth process is run as this user. | ||
+ | #user = $default_internal_user | ||
+ | |||
+ | # Django : 2014-05-23 | ||
+ | # default: unset | ||
+ | # Port 3659 für Postfix-Authentifizierung definiert | ||
+ | inet_listener { | ||
+ | | ||
+ | port = 3659 | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Mailplugin und Shared Namespace ==== | ||
+ | Damit das Plugin **acl** in allen Modulen geladen werden kann, tragen wir es in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <code bash>... | ||
+ | |||
+ | # Space separated list of plugins to load for all services. Plugins specific to | ||
+ | # IMAP, LDA, etc. are added to this list in their own .conf files. | ||
+ | # Django : 2014-08-05 | ||
+ | # default: # | ||
+ | # | ||
+ | # Django : 2014-08-06 - Quotaregelung aktiviert | ||
+ | # last : mail_plugins = zlib | ||
+ | mail_plugins = zlib quota | ||
+ | # Django : 2014-08-08 - ACL-Plugin für Shared Folders | ||
+ | mail_plugins = zlib quota acl | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Damit die geteilten Verzeischnisse beim Mailclient unserer Kunden eingebunden und angezeigt werden benötigen wir noch einen eigenen Namensraum, der bereits in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <code bash>... | ||
+ | |||
+ | # Django : 2014-08-08 | ||
+ | # default: unset | ||
+ | # Example shared namespace configuration | ||
+ | #namespace { | ||
+ | #type = shared | ||
+ | #separator = / | ||
+ | |||
+ | # Mailboxes are visible under " | ||
+ | # %%n, %%d and %%u are expanded to the destination user. | ||
+ | #prefix = shared/%%u/ | ||
+ | |||
+ | # Mail location for other users' mailboxes. Note that %variables and ~/ | ||
+ | # expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the | ||
+ | # destination user's data. | ||
+ | #location = maildir: | ||
+ | |||
+ | # Use the default namespace for saving subscriptions. | ||
+ | # | ||
+ | |||
+ | # List the shared/ namespace only if there are visible shared mailboxes. | ||
+ | #list = children | ||
+ | #} | ||
+ | # Should shared INBOX be visible as " | ||
+ | # | ||
+ | |||
+ | namespace { | ||
+ | type = shared | ||
+ | separator = / | ||
+ | prefix = shared/%%u/ | ||
+ | location = maildir: | ||
+ | inbox = no | ||
+ | hidden = no | ||
+ | list = children | ||
+ | subscriptions = yes | ||
+ | ignore_on_failure = no | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Somit werden geteilte Ordner im Namensraum // | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== IMAP_ACL Plugin ==== | ||
+ | Damit die Nutzer unseres Dovecot-Servers Verzeichnisse teilen und die dazu nötigen Berechtigungen über das IMAP-Protokoll setzen können, müssen wir das **imap_acl** Plugin beim Protokoll **IMAP** natürlich noch aktivieren. Dazu tragen wir es in der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <code bash>... | ||
+ | |||
+ | protocol imap { | ||
+ | # Space separated list of plugins to load (default is global mail_plugins). | ||
+ | # | ||
+ | # Django : 2014-08-06 Quota-Informationen via IMAP zur Verfügung stellen | ||
+ | # | ||
+ | # Django : 2014-08-08 ACL-Verwaltung via IMAP zur Verfügung stellen | ||
+ | mail_plugins = $mail_plugins imap_quota imap_acl | ||
+ | |||
+ | # Maximum number of IMAP connections allowed for a user from each IP address. | ||
+ | # NOTE: The username is compared case-sensitively. | ||
+ | # | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ===== Aktivierung der Konfiguration ===== | ||
+ | Damit unsere Konfigurationsänderungen auch aktiv werden, bedarf es noch eines Reload unseres Dovecot-Daemon. | ||
+ | # systemctl reload dovecot | ||
+ | |||
+ | |||
+ | ===== Freigaben auf Seiten des Kontoinhabers/ | ||
+ | Beim Setzen der **ACL**s stellt uns **IMAP** folgende Rechte zur Verfügung. | ||
+ | |||
+ | |||
+ | ^ Kürzel | ||
+ | | **a** | admin | Auf diesen Ordner können durch den Nutzer **ACL**s gesetzt werden (Adminrechte). | ||
+ | | **e** | expunge | ||
+ | | **i** | insert | ||
+ | | **k** | create | ||
+ | | **l** | lookup | ||
+ | | **p** | post | In dem Ordner kann Dovecot (via **lda** oder **LMTP**) Nachrichten ablegen. | ||
+ | | **r** | read | Der Ordner kann zum Lesen ausgewählt werden. | ||
+ | | **s** | write-seen | ||
+ | | **t** | write-deleted | ||
+ | | **w** | write | Außer den beiden Flags **\Deleted** und **\Seen** können die Flags der eMails durch den Nutzer gesetzt und gelöscht werden. | ||
+ | | **x** | delete | ||
+ | |||
+ | Wir brauchen uns aber nicht groß beim Setzen und Ändern unserer Ordnerfreigaben auf den Konsole beschäftigen, | ||
+ | |||
+ | ==== kMail ==== | ||
+ | Die Verwaltung von **ACL**s geht bei **kMail**// "out of the box"// | ||
+ | === Ordner freigeben / ACL definieren === | ||
+ | Zum Freigeben eines Ordners klicken wir mit der Rechten Maustaste auf den freizugebenden Ordner und wählen dann den Menüpunkt **[Ordnereigenschaften]** an . | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Zum Neuanlegen einer Zugriffsregelung wählen wir den Menüpunkt **[Eintrag hinzufügen]** aus. Zum ändern vorhandener ACLs wählen wir die Schaltfläche **[Eintrag bearbeiten]** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über fest vorgegebene Nutzerrechte wird bei kMail der Zugriuff auf freizugebende Ordner realisiert. Die definierten Rollen wurden folgenden Rechten zugeordnet. | ||
+ | |||
+ | ^ ACL-Recht | ||
+ | | Nachschlagen | ||
+ | | Lesen | | ||
+ | | Gelesen speichern | ||
+ | | Einfügen | ||
+ | | Posten | ||
+ | | Flag " | ||
+ | | Anlegen | ||
+ | | Löschen | ||
+ | | Verwalten | ||
+ | |||
+ | Haben wir unsere Auswahl getroffen und die Rechte gesetzt, speichern wir unsere Auswahl mit einem Klick auf die Schaltfläche **[__O__K]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Mit Anwahl der Schaltfläche **[__O__K]** verlassen wir den Dialog zum Setzen der **ACL**s. | ||
+ | |||
+ | {{ : | ||
+ | === Ordner / Shared Folder einbinden === | ||
+ | |||
+ | Zum Einbinden eines shared folders klicken wir mit der rechten Maustaste auf den Posteingangskorb und wählen den Menüpunkt **[Serverseitige Abonnements]** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Anschließend wählen wir den gewünschten freigegebenen Ordner aus, setzen das Häkchen **[✔]** und klicken auf die Schaltflöche **[__O__K]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Der freigegebene Ordner des anderen Users wird uns ab sofort unter dem Namensraum // | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | ==== Thunderbird ==== | ||
+ | Um mit Thunderbird ACLs definieren und bearbeiten zu können, benötigt man das Plugin **Imap-ACL-Extension**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | === Ordner freigeben / ACL definieren === | ||
+ | Zum Freigeben eines Ordners klicken wir mit der rechten Maustaste auf den entsprechenden Ordner und wählen den Menüpunkt **Eigenschaften** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Auf dem Reiter **Freigabe** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Zum Setzen von neuen Benutzerrechten klicken wir auf die Schaltfläche **[Neu]**. Möchten wir bestehende ACLs bearbeiten, wählen wir die Schaltfläche **[Ändern]** an. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier können wir jedes einzelne Recht durch Setzen eines Häkchens **[✔]** setzen. | ||
+ | |||
+ | {{ : | ||
+ | === Ordner / Shared Folder einbinden === | ||
+ | |||
+ | Zum Einbinden eines **shared folders** klicken wir mit der rechten Maustaste auf den Posteingangskorb und wählen den Menüpunkt **[__A__bonnieren]** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Anschließend wählen wir den freigegebenen Ordner des anderen Mailboxusers aus, setzen das Häkchen **[✔]** in der betreffenden Checkbox aus und klicken aif die Schaltfläche **[Abonnieren]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Ab jetzt wird der freigegeben Ordner im Namensraum **// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Horde Framework / Webmailer ==== | ||
+ | Das Freigeben von Ordnern ist beim Webmailer **IMP** des Horde Projektes denkbar intuitiv und einfach gestaltet. | ||
+ | |||
+ | === Ordner freigeben / ACL definieren === | ||
+ | Möchte man einen Ordner freigeben, so klickt man mit der rechten Mausztaste auf das betreffende Ordnersymbol. Es erscheint dann ein Auswahlfenster mit den möglichen Aktionen. Dort wählen wir dann den Punkt **//ACL bearbeiten// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | In das Feld Benutzer tragen wir nun den Ameldenamen/ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wir können dann jedes der möglichen Rechte einfach durch Anwahl der Checkboxen bzw. durch Setzen eines Häkchens auswählen. Fährt man mit der Maus über eins der Rechte, erscheint eine kurze Beschreibung des jeweiligen Rechtes. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Alternativ kann man natürlich auch durch Auswahl der vorbereiteten Vorlagen, die benötigten Rechte zu einer Aktion auswählen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Haben wir alle Einstellungen vorgenommen, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | === Ordner / Shared Folder einbinden === | ||
+ | |||
+ | Um einen freigegebenen Ordner eines anderen Nutzers einzubinden, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wir sehen nun den Namensraum **// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dazu klicken wir auf das Icon bis der benötigte Ordner des anderen Mailboxnutzers erscheint. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||
- | // … coming soon!// :-) | ||