¿Se puede utilizar PAM con Postfix y Dovecot SASL?

¿Se puede utilizar PAM con Postfix y Dovecot SASL?

he configuradoSufijousarPalomar SASLconPAMy usuarios de Unix, y Dovecot LDA (LMTP) para almacenamiento de buzones de correo local. Después de algunas pruebas, resulta que el correo entrante se rechaza por el siguiente motivo:

Error: la búsqueda de passdb falló para [usuario]: los passdb configurados no admiten búsquedas de credenciales

Esto es a la vez problemático y preocupante: opté por la autenticación basada en PAM porque todas las fuentes que encontré sugirieron que es la forma más simple y confiable. Es difícil para mí solucionar lo que está mal en este momento; no estoy seguro de si realmente es un problema con PAM o si hay algún problema con mi configuración.

Registros

La doveadmprueba de búsqueda:

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

Registro de depuración de Dovecot después de la prueba de búsqueda:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

Configuración relevante

El /etc/dovecot/conf.d/10-auth.confarchivo:

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

El /etc/dovecot/conf.d/auth-system.conf.extarchivo:

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

El /etc/pam.d/dovecotarchivo es el predeterminado que viene con el paquete Dovecot de Rocky Linux (que es igual a RHEL y es igual a Fedora):

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

Sin embargo, también probé la configuración sugerida por el funcionario.Documentación de Dovecot PAMy no arrojó ningún resultado diferente. Confío en el resto de mi configuración, ya que pasé un tiempo considerable estudiando las opciones, pero todavía apenas entiendo la configuración de PAM...

Todos los registros apuntan a que el problema está en el propio Dovecot SASL, no en la configuración de Postfix o Dovecot. Cualquier sugerencia sería muy apreciada.

Respuesta1

No tengo idea si esta es la solución adecuada al problema (ahora vuelvo y leocomentario de anxen mi publicación original me hace preguntarme si lo es), pero logré que tanto la búsqueda como la autenticación funcionaran agregando una segunda passdbentrada a la configuración de Dovecot.

En la configuración Dovecot, precedí alBase de datos de contraseñas PAMentrada con uncontraseñabase de datos de contraseñasentrada:

# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
         # Passwd can be used both as a passdb and a userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

Esto hace que las búsquedas de usuarios sean doveadm auth lookup [user]exitosas. sin embargo, elcontraseñala base de datos no puedeautenticarusuarios, ya que las contraseñas ya no se almacenan en el /etc/passwdarchivo en los sistemas Unix. Cuando eso sucede, la búsqueda continúa con la base de datos de contraseñas PAM, que autentica correctamente al usuario. Esto se puede probar con el doveadm auth test [user]comando.


Agregué esto como una respuesta aceptada, porque la solución/solución alternativa actualmente funcionó para mí. Si alguien tiene alguna sugerencia o sabe cómo se podría resolver esto de una mejor manera, estaré encantado de aceptarla. Siendo solo la base de datos PAM la configuración predeterminada enLinux rocoso(prácticamente RHEL), me sorprende que no funcione de inmediato.

información relacionada