On 24/01/2021 15:42, Jeff Abrahamson wrote:

I've set up a new dovecot+postfix instance with virtual (not system) users.

[...]

Thanks to several responses here (many thanks!) and much further hacking, I have moved further.

I now have two problems that I'm hitting my head on.  (I've posted my config below.)

1.  Delivery

I send mail to jeff@mobilitains.fr, which I think should be an authorised user.

Jan 24 17:19:02 nantes-m1 postfix/qmgr[8025]: 8640AA0C71: from=<jeff@p27.eu>, size=4737, nrcpt=1 (queue active)
Jan 24 17:19:02 nantes-m1 dovecot: lda(jeff)<10628><pbr+CgasDWCEKQAAvhw8tw>: Error: mkdir(/var/mail/vmail//jeff/mail) failed: Permission denied (euid=1000(jeff) egid=1001(jeff) missing +w perm: /var/mail/vmail/, dir owned by 4000:4000 mode=0755)
Jan 24 17:19:02 nantes-m1 dovecot: lda(jeff)<10628><pbr+CgasDWCEKQAAvhw8tw>: Error: mkdir(/var/mail/vmail//jeff/mail) failed: Permission denied (euid=1000(jeff) egid=1001(jeff) missing +w perm: /var/mail/vmail/, dir owned by 4000:4000 mode=0755)
Jan 24 17:19:02 nantes-m1 dovecot: lda(jeff)<10628><pbr+CgasDWCEKQAAvhw8tw>: Error: Mailbox INBOX: Failed to autocreate mailbox: Internal error occurred. Refer to server log for more information. [2021-01-24 17:19:02]
Jan 24 17:19:02 nantes-m1 dovecot: lda(jeff)<10628><pbr+CgasDWCEKQAAvhw8tw>: msgid=<45693641-2b61-815d-6129-feb9c4e3608a@p27.eu>: save failed to open mailbox INBOX: Mailbox INBOX: Failed to autocreate mailbox: Internal error occurred. Refer to server log for more information. [2021-01-24 17:19:02]
Jan 24 17:19:02 nantes-m1 postfix/local[10626]: 8640AA0C71: to=<jeff@nantes-m1.p27.eu>, orig_to=<jeff@mobilitains.fr>, relay=local, delay=593, delays=593/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure. Command output: lda(jeff): Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied )

Now I know what the words mean: it wants to create the mail directory where I've asked it to, in /var/mail/vmail/%d/%n/mail, and it's hitting a permission error, because that directory is owned by vmail and that bit of dovecot, apparently, doesn't have permission to read/write there.  I can see that some dovecot processes run as vmail, others as dovecot or dovenull, still others as root (!).  I'm unclear after much reading of docs what I should see here and what I should change.

[T] jeff@nantes-m1:postfix $ ps axfu | grep dovec
root         607  0.0  0.3   4612  3360 ?        Ss   10:12   0:00 /usr/sbin/dovecot -F
dovecot      637  0.0  0.1   4248  1072 ?        S    10:12   0:00  \_ dovecot/anvil
root        9852  0.0  0.2   4388  2940 ?        S    16:54   0:00  \_ dovecot/log
dovecot     9907  0.0  0.2   4396  2828 ?        S    16:54   0:00  \_ dovecot/stats
root        9908  0.0  0.4   5664  4188 ?        S    16:54   0:00  \_ dovecot/config
dovenull    9976  0.0  0.6   8476  6584 ?        S    16:58   0:00  \_ dovecot/imap-login
vmail       9978  0.0  0.5   6940  5572 ?        S    16:58   0:00  \_ dovecot/imap
dovenull   10023  0.0  0.6   8472  6584 ?        S    17:04   0:00  \_ dovecot/imap-login
vmail      10024  0.0  0.5   6884  5516 ?        S    17:04   0:00  \_ dovecot/imap
jeff       10952  0.0  0.0   8904   672 pts/1    S+   17:33   0:00  |           \_ grep --color=auto dovec
[T] jeff@nantes-m1:postfix $


2.  Authorisation on sending

Using thunderbird I try to send an email from my workstation as jeff@mobilitains.fr (myself, as this host sees it) to another user (myself somewhere else).

Jan 24 17:35:42 nantes-m1 postfix/submission/smtpd[10971]: connect from 10.244.88.92.rev.sfr.net[92.88.244.10]
Jan 24 17:35:42 nantes-m1 postfix/submission/smtpd[10971]: Anonymous TLS connection established from 10.244.88.92.rev.sfr.net[92.88.244.10]: TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)
Jan 24 17:35:42 nantes-m1 postfix/submission/smtpd[10971]: warning: SASL: Connect to private/auth failed: No such file or directory
Jan 24 17:35:42 nantes-m1 postfix/submission/smtpd[10971]: fatal: no SASL authentication mechanisms
Jan 24 17:35:43 nantes-m1 postfix/master[1634]: warning: process /usr/lib/postfix/sbin/smtpd pid 10971 exit status 1
Jan 24 17:35:43 nantes-m1 postfix/master[1634]: warning: /usr/lib/postfix/sbin/smtpd: bad command startup -- throttling

So I'm failing to connect, but the error about private/auth is quite unclear to me.  I think what I've configured is that plaintext auth is disabled unless on a SSL/TLS connection, and SSL/TLS connections are required, so plaintext over SSL/TLS is the rule.  There's an error related to smtpd startup, though I'm unclear what that means, since postfix is running.  I think it means it can't run smtpd to send the mail, but why and where configured is unclear to me.

[T] jeff@nantes-m1:conf.d $ cat 10-auth.conf | grep -vE '^#' | uniq

disable_plaintext_auth = yes

auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

auth_mechanisms = plain

!include auth-passwdfile.conf.ext
[T] jeff@nantes-m1:conf.d $
[T] jeff@nantes-m1:conf.d $ cat auth-passwdfile.conf.ext
# Authentication for passwd-file users. Included from 10-auth.conf.
#
# passwd-like file with specified location.
# <doc/wiki/AuthDatabase.PasswdFile.txt>
#
# This is heavily modified from the ubuntu dovecot distribution file.

passdb {
  driver = passwd-file
  # args = scheme=CRYPT username_format=%u /etc/dovecot/users
  # args = username_format=%u scheme=ssha512 /etc/dovecot/passwd.db
  args = username_format=%u scheme=blf-crypt /etc/dovecot/passwd.db
  deny = no
  master = no
  pass = no
  skip = never
  result_failure = continue
  result_internalfail = continue
  result_success = return-ok
}

userdb {
    driver = static
    args = uid=4000 gid=4000 home=/var/mail/vmail/%d/%n
}

[T] jeff@nantes-m1:conf.d $

My config:

[T] jeff@nantes-m1:~ $ doveconf -n
# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.7.2 ()
# OS: Linux 5.4.0-64-generic x86_64 Ubuntu 20.04.1 LTS ext4
# Hostname: nantes-m1.p27.eu
auth_debug = yes
auth_verbose = yes
mail_home = /var/mail/vmail/%d/%n
mail_location = maildir:/var/mail/vmail/%d/%n/mail:LAYOUT=fs
mail_privileged_group = mail
namespace inbox {
  inbox = yes
  location =
  mailbox Archive {
    auto = subscribe
    special_use = \Archive
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = username_format=%u scheme=blf-crypt /etc/dovecot/passwd.db
  driver = passwd-file
}
plugin {
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_after = /var/mail/vmail/sieve-after
  sieve_before = /var/mail/vmail/sieve-before
  sieve_dir = ~/sieve
}
protocols = " imap"
service auth {
  unix_listener /var/spool/postfix/private/dovecot-auth {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service imap-login {
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
ssl_cert = </etc/letsencrypt/live/nantes-m1.p27.eu/fullchain.pem
ssl_cipher_list = ALL:!DH:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
  args = uid=4000 gid=4000 home=/var/mail/vmail/%d/%n
  driver = static
}
verbose_ssl = yes
protocol lda {
  deliver_log_format = msgid=%m: %$
  mail_plugins = sieve
  postmaster_address = postmaster@{{ primary_domain }}
  quota_full_tempfail = yes
  rejection_reason = Your message to <%t> was automatically rejected:%n%r
}
protocol imap {
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags
  mail_max_userip_connections = 20
}
[T] jeff@nantes-m1:~ $
[T] jeff@nantes-m1:postfix $ postconf -Mf
smtp       inet  n       -       y       -       -       smtpd
submission inet  n       -       y       -       -       smtpd
    -o syslog_name=postfix/submission
    -o smtpd_tls_security_level=encrypt
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=
    -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
    -o milter_macro_daemon_name=ORIGINATING
smtps      inet  n       -       y       -       -       smtpd
    -o syslog_name=postfix/smtps
    -o smtpd_tls_wrappermode=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_reject_unlisted_recipient=no
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=
    -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
    -o milter_macro_daemon_name=ORIGINATING
...

-- 
Jeff Abrahamson
+33 6 24 40 01 57
+44 7920 594 255

http://p27.eu/jeff/
http://transport-nantes.com/