Hace algún tiempo, se lanzó una actualización para el servicio PAM.d en Linux Debian 12. Las actualizaciones para estos servicios son extremadamente raras, y después de la actualización, se observaron largos retrasos al intentar iniciar sesión:
ProFTPd
En nuestro caso, funciona a través del servicio xinetd y no es un servicio independiente, lo que significa que la autorización se realiza a través de PAM.d.
SSH
La opción en el archivo de configuración estaba habilitada por defecto:
UsePAM yes
Por lo tanto, ambos servicios dependen de la configuración de PAM.d.
Solución
La causa de los largos retrasos fue la presencia de la línea:
session optional pam_systemd.so
en el archivo de configuración
/etc/pam.d/common-session
El archivo debería verse así sin esa línea:
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of interactive sessions.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
session [default=1] pam_permit.so
# here's the fallback if no module succeeds
session requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required pam_unix.so
# end of pam-auth-update config
Tras realizar estos cambios, la autorización comenzó a funcionar rápidamente de nuevo sin retrasos.
Artículo relacionado: Causas y solución de problemas de largos retrasos al conectarse por SSH