From 5939ce51d7527784e5a53c1f1f4b16aaf189ead2 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 23 May 2016 01:58:48 +0200 Subject: Dovecot imapc: use the version from jessie-backports. Since many bug have been fixed since 2.2.13, and we really want passthrough search on the caching proxy. --- .../files/etc/dovecot/conf.d/10-auth.conf | 2 +- .../files/etc/dovecot/conf.d/10-logging.conf | 86 +++++++++++++++++++++- .../files/etc/dovecot/conf.d/10-mail.conf | 22 +++++- .../files/etc/dovecot/conf.d/10-master.conf | 4 +- .../files/etc/dovecot/conf.d/15-mailboxes.conf | 77 ++++++++++++++++++- roles/IMAP-proxy/tasks/main.yml | 7 +- .../templates/etc/dovecot/conf.d/20-imapc.conf.j2 | 3 +- 7 files changed, 188 insertions(+), 13 deletions(-) mode change 120000 => 100644 roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf mode change 120000 => 100644 roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf (limited to 'roles') diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-auth.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-auth.conf index 1abea0c..ec8704f 100644 --- a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-auth.conf +++ b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-auth.conf @@ -7,7 +7,7 @@ # matches the local IP (ie. you're connecting from the same computer), the # connection is considered secure and plaintext authentication is allowed. # See also ssl=required setting. -disable_plaintext_auth = yes +#disable_plaintext_auth = yes # Authentication cache size (e.g. 10M). 0 means it's disabled. Note that # bsdauth, PAM and vpopmail require cache_key to be set for caching to be used. diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf deleted file mode 120000 index fc1f820..0000000 --- a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf +++ /dev/null @@ -1 +0,0 @@ -../../../../../IMAP/files/etc/dovecot/conf.d/10-logging.conf \ No newline at end of file diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf new file mode 100644 index 0000000..848fe69 --- /dev/null +++ b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-logging.conf @@ -0,0 +1,85 @@ +## +## Log destination. +## + +# Log file to use for error messages. "syslog" logs to syslog, +# /dev/stderr logs to stderr. +#log_path = syslog + +# Log file to use for informational messages. Defaults to log_path. +#info_log_path = +# Log file to use for debug messages. Defaults to info_log_path. +#debug_log_path = + +# Syslog facility to use if you're logging to syslog. Usually if you don't +# want to use "mail", you'll use local0..local7. Also other standard +# facilities are supported. +#syslog_facility = mail + +## +## Logging verbosity and debugging. +## + +# Log unsuccessful authentication attempts and the reasons why they failed. +#auth_verbose = no + +# In case of password mismatches, log the attempted password. Valid values are +# no, plain and sha1. sha1 can be useful for detecting brute force password +# attempts vs. user simply trying the same password over and over again. +# You can also truncate the value to n chars by appending ":n" (e.g. sha1:6). +#auth_verbose_passwords = no + +# Even more verbose logging for debugging purposes. Shows for example SQL +# queries. +#auth_debug = no + +# In case of password mismatches, log the passwords and used scheme so the +# problem can be debugged. Enabling this also enables auth_debug. +#auth_debug_passwords = no + +# Enable mail process debugging. This can help you figure out why Dovecot +# isn't finding your mails. +#mail_debug = no + +# Show protocol level SSL errors. +#verbose_ssl = no + +# mail_log plugin provides more event logging for mail processes. +plugin { + # Events to log. Also available: flag_change append + #mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename + # Available fields: uid, box, msgid, from, subject, size, vsize, flags + # size and vsize are available only for expunge and copy events. + #mail_log_fields = uid box msgid size +} + +## +## Log formatting. +## + +# Prefix for each line written to log file. % codes are in strftime(3) +# format. +log_timestamp = "%Y-%m-%d %H:%M:%S " + +# Space-separated list of elements we want to log. The elements which have +# a non-empty variable value are joined together to form a comma-separated +# string. +#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c + +# Login log format. %s contains login_log_format_elements string, %$ contains +# the data we want to log. +#login_log_format = %$: %s + +# Log prefix for mail processes. See doc/wiki/Variables.txt for list of +# possible variables you can use. +#mail_log_prefix = "%s(%u): " + +# Format to use for logging mail deliveries. See doc/wiki/Variables.txt for +# list of all variables you can use. Some of the common ones include: +# %$ - Delivery status message (e.g. "saved to INBOX") +# %m - Message-ID +# %s - Subject +# %f - From address +# %p - Physical size +# %w - Virtual size +#deliver_log_format = msgid=%m: %$ diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-mail.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-mail.conf index 53e45b5..2264719 100644 --- a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-mail.conf +++ b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-mail.conf @@ -75,6 +75,8 @@ namespace inbox { # Namespace handles its own subscriptions. If set to "no", the parent # namespace handles them (empty prefix should always have this as "yes") #subscriptions = yes + + # See 15-mailboxes.conf for definitions of special mailboxes. } # Example shared namespace configuration @@ -124,10 +126,22 @@ mail_gid = imapproxy # or ~user/. #mail_full_filesystem_access = no -# Dictionary for key=value mailbox attributes. Currently used by URLAUTH, but -# soon intended to be used by METADATA as well. +# Dictionary for key=value mailbox attributes. This is used for example by +# URLAUTH and METADATA extensions. #mail_attribute_dict = +# A comment or note that is associated with the server. This value is +# accessible for authenticated users through the IMAP METADATA server +# entry "/shared/comment". +#mail_server_comment = "" + +# Indicates a method for contacting the server administrator. According to +# RFC 5464, this value MUST be a URI (e.g., a mailto: or tel: URL), but that +# is currently not enforced. Use for example mailto:admin@example.com. This +# value is accessible for authenticated users through the IMAP METADATA server +# entry "/shared/admin". +#mail_server_admin = + ## ## Mail processes ## @@ -198,7 +212,7 @@ first_valid_uid = 1 # 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. -mail_plugins = virtual zlib +#mail_plugins = ## ## Mailbox handling optimizations @@ -215,7 +229,7 @@ mailbox_list_index = yes # When IDLE command is running, mailbox is checked once in a while to see if # there are any new mails or other changes. This setting defines the minimum -# time to wait between those checks. Dovecot can also use dnotify, inotify and +# time to wait between those checks. Dovecot can also use inotify and # kqueue to find out immediately when changes occur. #mailbox_idle_check_interval = 30 secs diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-master.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-master.conf index 6ac62ec..76c7ed0 100644 --- a/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-master.conf +++ b/roles/IMAP-proxy/files/etc/dovecot/conf.d/10-master.conf @@ -16,7 +16,7 @@ default_internal_user = dovecot service imap-login { inet_listener imap { - address = 127.0.0.1 ::1 + address = 127.0.0.1 port = 143 ssl = no } @@ -64,7 +64,7 @@ service auth { # permissions (e.g. 0777 allows everyone full permissions). unix_listener auth-userdb { #mode = 0666 - #user = $default_internal_user + #user = #group = } diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf deleted file mode 120000 index 1883eda..0000000 --- a/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf +++ /dev/null @@ -1 +0,0 @@ -../../../../../IMAP/files/etc/dovecot/conf.d/15-mailboxes.conf \ No newline at end of file diff --git a/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf b/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf new file mode 100644 index 0000000..8366e95 --- /dev/null +++ b/roles/IMAP-proxy/files/etc/dovecot/conf.d/15-mailboxes.conf @@ -0,0 +1,76 @@ +## +## Mailbox definitions +## + +# Each mailbox is specified in a separate mailbox section. The section name +# specifies the mailbox name. If it has spaces, you can put the name +# "in quotes". These sections can contain the following mailbox settings: +# +# auto: +# Indicates whether the mailbox with this name is automatically created +# implicitly when it is first accessed. The user can also be automatically +# subscribed to the mailbox after creation. The following values are +# defined for this setting: +# +# no - Never created automatically. +# create - Automatically created, but no automatic subscription. +# subscribe - Automatically created and subscribed. +# +# special_use: +# A space-separated list of SPECIAL-USE flags (RFC 6154) to use for the +# mailbox. There are no validity checks, so you could specify anything +# you want in here, but it's not a good idea to use flags other than the +# standard ones specified in the RFC: +# +# \All - This (virtual) mailbox presents all messages in the +# user's message store. +# \Archive - This mailbox is used to archive messages. +# \Drafts - This mailbox is used to hold draft messages. +# \Flagged - This (virtual) mailbox presents all messages in the +# user's message store marked with the IMAP \Flagged flag. +# \Junk - This mailbox is where messages deemed to be junk mail +# are held. +# \Sent - This mailbox is used to hold copies of messages that +# have been sent. +# \Trash - This mailbox is used to hold messages that have been +# deleted. +# +# comment: +# Defines a default comment or note associated with the mailbox. This +# value is accessible through the IMAP METADATA mailbox entries +# "/shared/comment" and "/private/comment". Users with sufficient +# privileges can override the default value for entries with a custom +# value. + +# NOTE: Assumes "namespace inbox" has been defined in 10-mail.conf. +namespace inbox { + # These mailboxes are widely used and could perhaps be created automatically: + mailbox Drafts { + auto = create + special_use = \Drafts + } + mailbox Junk { + auto = create + special_use = \Junk + } + mailbox Trash { + auto = create + special_use = \Trash + } + mailbox Sent { + auto = subscribe + special_use = \Sent + } + + # If you have a virtual "All messages" mailbox: + mailbox virtual/All { + special_use = \All + comment = All my messages + } + + # If you have a virtual "Flagged" mailbox: + mailbox virtual/Flagged { + special_use = \Flagged + comment = All my flagged messages + } +} diff --git a/roles/IMAP-proxy/tasks/main.yml b/roles/IMAP-proxy/tasks/main.yml index 93a5181..50cfc2d 100644 --- a/roles/IMAP-proxy/tasks/main.yml +++ b/roles/IMAP-proxy/tasks/main.yml @@ -1,6 +1,9 @@ - name: Install Dovecot - #apt: pkg={{ item }} default_release={{ ansible_lsb.codename }}-backports - apt: pkg={{ item }} + # WARNING: "The destination servers don't need to be running Dovecot, + # but you should make sure that the Dovecot proxy doesn't advertise + # more capabilities than the destination server can handle." + # http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/Proxy + apt: pkg={{ item }} default_release={{ ansible_lsb.codename }}-backports with_items: - dovecot-core - dovecot-imapd diff --git a/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2 b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2 index 39dbbd6..6284f67 100644 --- a/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2 +++ b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2 @@ -14,5 +14,4 @@ mail_prefetch_count = 25 # The list of valid features can be found at # https://github.com/dovecot/core/blob/master/src/lib-storage/index/imapc/imapc-settings.c # (in the struct 'imapc_feature_list imapc_feature_list') -imapc_features = rfc822.size fetch-headers -#imapc_features = rfc822.size fetch-headers search +imapc_features = rfc822.size fetch-headers search -- cgit v1.2.3