Re: Question about doveadm altmove

2021-03-21 Thread justina colmena ~biz
On Sunday, March 21, 2021 12:16:28 PM AKDT María Arrea wrote:
> Hello.
>  
> We are running dovecot 2.3.13. Full doveconf -n output below
>  
> In 2.3.14 Changelog I found this:
>  
> * Remove XZ/LZMA write support. Read support will be removed in future
> release. 
> We are using mdbox + XZ/LZMA for alternate storage (messages older than 2
> weeks are moved to ALT storage via cron job), so we must convert from XZ to
> another thing (maybe zstd or bz2). 

Why can't you just pipe the output of "doveadm altmove" command through an 
external command to do the XZ/LZMA compression if dovecot no longer supports 
it internally?

From doveadm-altmove (1):
> This  command  can  be  used  with sdbox or mdbox storage to move mails to 
alternative
>   storage path when :ALT= is specified for the mail location.

And that's set in stone.

https://en.wikipedia.org/wiki/XZ_Utils

So what are the issues with xz? Security? Crashes or viruses on expanding 
invalid archives?

signature.asc
Description: This is a digitally signed message part.


Re: Is it possible to use per user keys with mail-crypt-plugin when using passwd-file backend?

2021-03-21 Thread Davy Landman
Thanks for your idea, indeed, this is the trick.

I added `override_fields = userdb_mail_crypt_private_password=%w
userdb_mail_crypt_save_version=2` to the passdb config and it works

On Sat, Mar 20, 2021 at 10:43 PM Aki Tuomi 
wrote:

>
> > On 20/03/2021 22:43 Davy Landman  wrote:
> >
> >
> > I've been reading quite a bit of discussions, the manual and a few often
> linked posts about mail-crypt-plugin, but most of them seem to assume a sql
> db backing. But if you are using a passwd file userdb, is it possible to
> make the per-user-key mode of the mail-crypt-plugin work?
> >
> > I like the trick of passing in the key via an extra calculated/virtual
> column in the query (even allows for hashing the password for example). But
> I cannot see how this can work with the passwd backing?
> >
> > Any pointers would be appreciated.
> >
> > Kind regards,
> > Davy
> >
> >
> >
>
> passdb {
>   driver = passwd-file
>   args = ...
>   override_fields = userdb_mail_crypt_private_password=%{sha256:password}
> }
>
> might work
>
> Aki
>


Question about doveadm altmove

2021-03-21 Thread María Arrea
Hello.

 

We are running dovecot 2.3.13. Full doveconf -n output below

 

In 2.3.14 Changelog I found this:

 


* Remove XZ/LZMA write support. Read support will be removed in future release.


 

We are using mdbox + XZ/LZMA for alternate storage (messages older than 2 weeks are moved to ALT storage via cron job), so we must convert from XZ to another thing (maybe zstd or bz2).

 

Our cron job script:

 

/usr/bin/doveadm  -o mdbox_rotate_interval=14d -o mdbox_purge_preserve_alt=no -o mdbox_rotate_size=250m -o zlib_save=xz -o zlib_save_level=9 altmove -u $user

 

 

My first try to accomplish this conversion, without downtime, is this

 

* Pick an user

* Move all ALT messages from that user mailbox to MAIN storage location (doveadm altmove -r)

* Use doveadm altmove with zstd to recompress messages to ALT

 

 

I have picked an user, and tried this:

 

 /usr/bin/doveadm altmove -r -u myuser all

 

 

But it did not work. I expected with that command to move ALL messages from ALT storage to main storage, but 0 messages moved, checked with du -ksh

 

What is the proper way to recompress messages in ALT storage in mdbox?

 

doveconf -n output:

 

 


auth_cache_negative_ttl = 10 secs
auth_cache_size = 10 M
auth_cache_ttl = 2 mins
auth_master_user_separator = *
auth_worker_max_count = 5500
base_dir = /var/run/dovecot/
default_client_limit = 5000
default_process_limit = 6500
disable_plaintext_auth = no
imap_capability = +XLIST
imap_client_workarounds = tb-extra-mailbox-sep delay-newmail tb-lsub-flags
imap_id_log = *
imap_max_line_length = 92 k
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_fsync = never
mail_gid = entrega
mail_home = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario
mail_location = mdbox:/buzones_primarios/%2.26Hn/%2.200Hn/%n:ALT=/buzones_secundarios/%2.26Hn/%2.200Hn/%n:INDEX=/indices_correo/%2.26Hn/%2.200Hn/%n:ITERINDEX
mail_log_prefix = "%s(%u)<%{session}>: "
mail_max_userip_connections = 2500
mail_plugins = " zlib acl quota virtual"
mail_uid = entrega
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date
mdbox_rotate_interval = 1 days
mdbox_rotate_size = 60 M
namespace {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox SPAM {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/deny
  deny = yes
  driver = passwd-file
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
passdb {
  args = /etc/usuario_maestro.txt
  driver = passwd-file
  master = yes
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
plugin {
  acl = vfile
  lda_mailbox_autosubscribe = yes
  quota = dict:Cuota de usuario::file:/indices_correo/cuotas/%n
  quota_rule2 = Trash:storage=+10%%
  quota_warning = storage=90%% aviso_cuota 90 %u
  sieve = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/dovecot.sieve
  sieve_dir = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/sieve/
  sieve_max_redirects = 20
  zlib_save = gz
  zlib_save_level = 1
}
pop3_no_flag_updates = yes
protocols = pop3 imap sieve
service anvil {
  client_limit = 25000
}
service auth {
  client_limit = 32000
  unix_listener auth-master {
    user = entrega
  }
  unix_listener auth-userdb {
    user = entrega
  }
  user = root
}
service aviso_cuota {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener aviso_cuota {
    mode = 0666
  }
  user = entrega
}
service config {
  process_min_avail = 4
}
service imap-login {
  executable = /usr/libexec/dovecot/imap-login
  group = dovenull
  process_min_avail = 2
  service_count = 0
  vsz_limit = 1 G
}
service imap {
  executable = /usr/libexec/dovecot/imap
  process_limit = 8000
  process_min_avail = 12
  vsz_limit = 1 G
}
service managesieve-login {
  executable = /usr/libexec/dovecot/managesieve-login
  inet_listener sieve {
    port = 2000
  }
  process_limit = 2000
  vsz_limit = 1 G
}
service managesieve {
  executable = /usr/libexec/dovecot/managesieve
  process_limit = 5000
}
service pop3-login {
  executable = /usr/libexec/dovecot/pop3-login
  process_limit = 5000
  process_min_avail = 2
  service_count = 0
  vsz_limit = 1 G
}
service pop3 {
  executable = /usr/libexec/dovecot/pop3
  process_limit = 5000
}
service stats {
  fifo_listener stats-mail {
    mode = 0600
    user = entrega
  }
}
ssl_ca = 
ssl_cert = 
ssl_cipher_list = ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
userdb {
  args = /etc/dovecot/dovecot-ldap-userdb.conf
  driver = 

Re: How to use xapian with non-text attachments

2021-03-21 Thread André Rodier
Hello,

The version packaged on Bullseye is slightly out of date, I have filled
a bug report:

https://bugs.debian.org/985654

Thanks to the maintainers for their hard work!

André

On Sun, 2021-03-21 at 10:51 +, André Rodier wrote:
> Hello,
> 
> I am developing a hosting platform on Debian Bullseye, with Dovecot
> amongst other tools.
> 
> I am trying to use the xapian full test search plugin, but I can see
> the attachments are skipped:
> 
> This is what I have in the logs when running the indexing in verbose
> mode:
> 
> ---
> 
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_check_access
> doveadm(camille): Info: FTS Xapian: Memory stats : Used = 56 MB, Free
> =
> 66 MB
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_index_hdr
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_query
> doveadm(camille): Info: FTS Xapian: Query= uid:"44"
> doveadm(camille): Info: FTS Xapian: Ngram(S) -> 63 items (total 0 KB)
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_unset_build_key
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Message-
> Id,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_build_more
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_check_access
> doveadm(camille): Info: FTS Xapian: Memory stats : Used = 56 MB, Free
> =
> 66 MB
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_index_hdr
> doveadm(camille): Info: FTS Xapian: fts_backend_xapian_query
> doveadm(camille): Info: FTS Xapian: Query= uid:"44"
> doveadm(camille): Info: FTS Xapian: Ngram(XMID) -> 4 items (total 0
> KB)
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_unset_build_key
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=X-
> Mailer,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'xmailer'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=MIME-
> Version,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'mimeversion'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Type,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contenttype'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Authentication-
> Results,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'authenticationresults'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=X-AV-
> Checked,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'xavchecked'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Type,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contenttype'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part
> (Header=(null),Type=text/plain,Disposition=(null))
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_build_more
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_unset_build_key
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Type,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contenttype'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Description,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contentdescription'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Disposition,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contentdisposition'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: FTS Xapian: New part (Header=Content-
> Transfer-
> Encoding,Type=(null),Disposition=(null))
> doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
> 'contenttransferencoding'
> doveadm(camille): Info: FTS Xapian:
> fts_backend_xapian_update_set_build_key
> doveadm(camille): Info: 

How to use xapian with non-text attachments

2021-03-21 Thread André Rodier
Hello,

I am developing a hosting platform on Debian Bullseye, with Dovecot
amongst other tools.

I am trying to use the xapian full test search plugin, but I can see
the attachments are skipped:

This is what I have in the logs when running the indexing in verbose
mode:

---
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_check_access
doveadm(camille): Info: FTS Xapian: Memory stats : Used = 56 MB, Free =
66 MB
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_index_hdr
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_query
doveadm(camille): Info: FTS Xapian: Query= uid:"44"
doveadm(camille): Info: FTS Xapian: Ngram(S) -> 63 items (total 0 KB)
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_unset_build_key
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Message-
Id,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_build_more
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_check_access
doveadm(camille): Info: FTS Xapian: Memory stats : Used = 56 MB, Free =
66 MB
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_index_hdr
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_query
doveadm(camille): Info: FTS Xapian: Query= uid:"44"
doveadm(camille): Info: FTS Xapian: Ngram(XMID) -> 4 items (total 0 KB)
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_unset_build_key
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=X-
Mailer,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing) 'xmailer'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=MIME-
Version,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'mimeversion'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-
Type,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contenttype'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Authentication-
Results,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'authenticationresults'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=X-AV-
Checked,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'xavchecked'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-
Type,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contenttype'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part
(Header=(null),Type=text/plain,Disposition=(null))
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_build_more
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_unset_build_key
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-
Type,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contenttype'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-
Description,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contentdescription'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-
Disposition,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contentdisposition'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part (Header=Content-Transfer-
Encoding,Type=(null),Disposition=(null))
doveadm(camille): Info: FTS Xapian: Unknown header (indexing)
'contenttransferencoding'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_build_key
doveadm(camille): Info: FTS Xapian: New part
(Header=(null),Type=text/csv,Disposition=attachment;
filename="file.csv")
doveadm(camille): Info: FTS Xapian: Skipping part of type 'text/csv'
and disposition 'attachment; filename="file.csv"'
doveadm(camille): Info: FTS Xapian:
fts_backend_xapian_update_set_mailbox
doveadm(camille): Info: FTS Xapian: Unset box 'INBOX'
(c0d4e304584e5460dae3075d7e67)
doveadm(camille): Info: FTS Xapian: fts_backend_xapian_oldbox
doveadm(camille): Info: