Hello everyone,
From what I understand of the documentation, it is impossible to
log in to the dovecot server as root, or as any user not in the
interval between first_valid_uid and last_valid_uid.
I have been able to verify this.
However, when we have a postfix server on the same machine, that
delegates authentication to dovecot SASL according to the
configuration described at
https://doc.dovecot.org/configuration_manual/howto/postfix_and_dovecot_sasl/,
we can indeed log in as root on the postfix server.
Proof (/var/log/mail.log with auth=debug) :
Mar 13 20:16:37 ricorambo dovecot: auth: Debug: client in:
AUTH#0111#011PLAIN#011service=smtp#011nologin#011lip=#011rip=#011secured#011resp=
Mar 13 20:16:37 ricorambo dovecot: auth: Debug:
pam(root,): Performing passdb lookup
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
Loading modules from directory: /usr/lib/dovecot/modules/auth
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
Module loaded:
/usr/lib/dovecot/modules/auth/lib20_auth_var_expand_crypt.so
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): Server accepted
connection (fd=13)
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): Sending version
handshake
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
Handling PASSV request
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
pam(root,): Performing passdb lookup
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
pam(root,): lookup service=dovecot
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
pam(root,): #1/1 style=1 msg=Password:
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
pam(root,): Finished passdb lookup
Mar 13 20:16:37 ricorambo dovecot: auth-worker(136499): Debug:
conn unix:auth-worker (pid=136444,uid=111): auth-worker<1>:
Finished
Mar 13 20:16:37 ricorambo dovecot: auth: Debug:
pam(root,): Finished passdb lookup
Mar 13 20:16:37 ricorambo dovecot: auth: Debug:
auth(root,): Auth request finished
Mar 13 20:16:37 ricorambo dovecot: auth: Debug: client passdb out:
OK#0111#011user=root#011
At this moment, the smtps client connecting to postfix produces
"Authentication successful" and we can continue.
In contrast, when we try to login to dovecot directly as root, we
have the following :
Mar 13 20:28:38 ricorambo dovecot: auth: Debug: client in:
AUTH#0111#011PLAIN#011service=imap#011secured=tls#011session=#011lip=#011rip=#011lport=993#011rport=52004#011local_name=mail.ricorambo.su#011resp=
Mar 13 20:28:38 ricorambo dovecot: auth: Debug:
pam(root,,): Performing passdb lookup
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
Loading modules from directory: /usr/lib/dovecot/modules/auth
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
Module loaded:
/usr/lib/dovecot/modules/auth/lib20_auth_var_expand_crypt.so
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): Server accepted
connection (fd=13)
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): Sending version
handshake
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
Handling PASSV request
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
pam(root,,): Performing passdb lookup
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
pam(root,,): lookup service=dovecot
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
pam(root,,): #1/1 style=1 msg=Password:
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
pam(root,,): Finished passdb lookup
Mar 13 20:28:38 ricorambo dovecot: auth-worker(137089): Debug:
conn unix:auth-worker (pid=137079,uid=111): auth-worker<1>:
Finished
Mar 13 20:28:38 ricorambo dovecot: auth: Debug:
pam(root,,): Finished passdb lookup
Mar 13 20:28:38 ricorambo dovecot: auth: Debug:
auth(root,,): Auth request finished
Mar 13 20:28:38 ricorambo dovecot: auth: Debug: client passdb out:
OK#0111#011user=root#011#011original_user=r...@ricorambo.su
Mar 13 20:28:38 ricorambo dovecot: auth: Debug: master in:
REQUEST#
Mar 13 20:28:38 ricorambo dovecot: auth: Debug:
passwd(root,,): Performing userdb lookup
Mar 13 20:28:38 ricorambo dov